示例#1
0
    def test_function(self):
        TestCase = namedtuple('TestCase', ['v1', 'v2'])
        greater_test_cases = [
            TestCase('1.0.0-0', '2.0.0-0'),
            TestCase('1.0.0-0', '1.1.0-0'),
            TestCase('1.0.0-0', '1.0.1-0'),
            TestCase('1.0.0-0', '1.0.0-1'),
            TestCase('1.0.0', '1.0.0-1'),
        ]
        equal_test_case = TestCase('1.1.1-0', '1.1.1-0')
        less_test_cases = [
            TestCase('2.0.0-0', '1.0.0-0'),
            TestCase('1.1.0-0', '1.0.0-0'),
            TestCase('1.0.1-0', '1.0.0-0'),
            TestCase('1.0.0-1', '1.0.0-0'),
            TestCase('1.0.0-1', '1.0.0'),
        ]

        for test_case in greater_test_cases:
            self.assertEqual(
                1,
                magma_upgrader.compare_package_versions(
                    test_case.v1, test_case.v2))
        for test_case in less_test_cases:
            self.assertEqual(
                -1,
                magma_upgrader.compare_package_versions(
                    test_case.v1, test_case.v2))
        self.assertEqual(
            0,
            magma_upgrader.compare_package_versions(equal_test_case.v1,
                                                    equal_test_case.v2))
示例#2
0
    def test_bad_version_strings(self):
        test_cases = [
            '1.0-0',
            '1-0',
            '1',
            'a.b.c-d',
        ]
        for ver in test_cases:
            try:
                magma_upgrader.compare_package_versions('1.0.0-0', ver)
                self.fail('An exception should have been raised')
            except ValueError as e:
                self.assertEqual(
                    'Could not parse target package version {}'.format(ver),
                    str(e),
                )

            try:
                magma_upgrader.compare_package_versions(ver, '1.0.0-0')
                self.fail('An exception should have been raised')
            except ValueError as e:
                self.assertEqual(
                    'Could not parse current package version {}'.format(ver),
                    str(e),
                )
示例#3
0
 async def get_upgrade_intent(self) -> UpgradeIntent:
     """
     Returns the desired version for the gateway.
     We don't support downgrading, and so checks are made to update
     only if the target version is higher than the current version.
     """
     tgt_version = self.service.mconfig.package_version
     curr_version = self.service.version
     if (tgt_version == "0.0.0-0"
             or compare_package_versions(curr_version, tgt_version) <= 0):
         tgt_version = curr_version
     return UpgradeIntent(stable=VersionT(tgt_version), canary=VersionT(""))