return "can only downgrade one minor version at a time"
return None
+
+
+def ShouldCfgdowngrade(version, current=CURRENT_VERSION):
+ """Decide whether cfgupgrade --downgrade should be called.
+
+ Given the current version and the version to change to, decide
+ if in the transition process cfgupgrade --downgrade should
+ be called
+
+ @param version: The version to upgrade to as (major, minor, revision)
+ @type version: tuple
+ @param current: The versino to upgrade from as (major, minor, revision)
+ @type current: tuple
+ @rtype: bool
+ @return: True, if cfgupgrade --downgrade should be called.
+
+ """
+ return version[0] == current[0] and version[1] == current[1] - 1
self.assertEquals(version.UpgradeRange((2,10,0), current=(2,9,0)),
"automatic upgrades only supported from 2.10 onwards")
+class ShouldCfgdowngradeTest(unittest.TestCase):
+ def testShouldCfgDowngrade(self):
+ self.assertTrue(version.ShouldCfgdowngrade((2,9,3), current=(2,10,0)))
+ self.assertTrue(version.ShouldCfgdowngrade((2,9,0), current=(2,10,4)))
+ self.assertFalse(version.ShouldCfgdowngrade((2,9,0), current=(2,11,0)))
+ self.assertFalse(version.ShouldCfgdowngrade((2,9,0), current=(3,10,0)))
+ self.assertFalse(version.ShouldCfgdowngrade((2,10,0), current=(3,10,0)))
+
if __name__ == "__main__":
testutils.GanetiTestProgram()