blob: f72caefc465722850cc8415c91a4970b7e27d979 [file] [log] [blame]
# Copyright 2019 The Fuchsia Authors. All rights reserved.
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.
from RECIPE_MODULES.fuchsia.release.api import ReleaseVersion
from recipe_engine.recipe_api import Property
DEPS = [
'recipe_engine/properties',
]
PROPERTIES = {
'major': Property(kind=int, help='Major number.'),
'date': Property(kind=str, help='Date as YYYYMMDD.'),
'release': Property(kind=int, help='Release number.'),
'candidate': Property(kind=int, help='Candidate number.'),
}
def RunSteps(api, major, date, release, candidate):
version_a = ReleaseVersion(
major=major, date=date, release=release, candidate=candidate)
version_string = str(version_a)
ReleaseVersion.from_string(version_string)
version_b = ReleaseVersion(
major=major, date=date, release=release, candidate=candidate)
assert version_a == version_b
version_a.candidate += 1
assert version_a > version_b
version_b.release += 1
assert version_b > version_a
version_a.major += 1
assert version_a > version_b
def GenTests(api):
yield (api.test('pass') +
api.properties(major=0, date='20191019', release=0, candidate=1))
yield (api.test('negative_major') +
api.properties(major=-1, date='20191019', release=0, candidate=1) +
api.expect_exception('AssertionError'))
yield (api.test('major_digits_exceeds') +
api.properties(major=10, date='20191019', release=0, candidate=1) +
api.expect_exception('AssertionError'))
yield (api.test('short_date') +
api.properties(major=0, date='2019', release=0, candidate=1) +
api.expect_exception('AssertionError'))
yield (api.test('long_date') +
api.properties(major=0, date='2019101920', release=0, candidate=1) +
api.expect_exception('AssertionError'))
yield (api.test('negative_release') +
api.properties(major=0, date='20191019', release=-1, candidate=1) +
api.expect_exception('AssertionError'))
yield (api.test('zero_candidate') +
api.properties(major=0, date='20191019', release=0, candidate=0) +
api.expect_exception('AssertionError'))
yield (api.test('negative_candidate') +
api.properties(major=0, date='20191019', release=0, candidate=-1) +
api.expect_exception('AssertionError'))