| # 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')) |