From fa166f6735ca30122270046c623e9705a76cb066 Mon Sep 17 00:00:00 2001
From: Bernardo Dal Seno <bdalseno@google.com>
Date: Thu, 11 Apr 2013 01:06:24 +0200
Subject: [PATCH] Split functions in cfupgrade unit tests

This makes easier to test real configurations.

Signed-off-by: Bernardo Dal Seno <bdalseno@google.com>
Reviewed-by: Helga Velroyen <helgav@google.com>
---
 test/py/cfgupgrade_unittest.py | 18 +++++++++++++++---
 1 file changed, 15 insertions(+), 3 deletions(-)

diff --git a/test/py/cfgupgrade_unittest.py b/test/py/cfgupgrade_unittest.py
index 311a68f47..ae16eb555 100755
--- a/test/py/cfgupgrade_unittest.py
+++ b/test/py/cfgupgrade_unittest.py
@@ -156,6 +156,11 @@ class TestCfgupgrade(unittest.TestCase):
       "instances": {},
       "nodegroups": {},
       }
+    self._TestUpgradeFromData(cfg, dry_run)
+
+  def _TestUpgradeFromData(self, cfg, dry_run):
+    assert "version" in cfg
+    from_version = cfg["version"]
     self._CreateValidConfigDir()
     utils.WriteFile(self.config_path, data=serializer.DumpJson(cfg))
 
@@ -350,22 +355,29 @@ class TestCfgupgrade(unittest.TestCase):
   def testUpgradeCurrent(self):
     self._TestSimpleUpgrade(constants.CONFIG_VERSION, False)
 
-  def testDowngrade(self):
-    self._TestSimpleUpgrade(constants.CONFIG_VERSION, False)
+  def _RunDowngradeUpgrade(self):
     oldconf = self._LoadConfig()
     _RunUpgrade(self.tmpdir, False, True, downgrade=True)
     _RunUpgrade(self.tmpdir, False, True)
     newconf = self._LoadConfig()
     self.assertEqual(oldconf, newconf)
 
-  def testDowngradeTwice(self):
+  def testDowngrade(self):
     self._TestSimpleUpgrade(constants.CONFIG_VERSION, False)
+    self._RunDowngradeUpgrade()
+
+  def _RunDowngradeTwice(self):
+    """Make sure that downgrade is idempotent."""
     _RunUpgrade(self.tmpdir, False, True, downgrade=True)
     oldconf = self._LoadConfig()
     _RunUpgrade(self.tmpdir, False, True, downgrade=True)
     newconf = self._LoadConfig()
     self.assertEqual(oldconf, newconf)
 
+  def testDowngradeTwice(self):
+    self._TestSimpleUpgrade(constants.CONFIG_VERSION, False)
+    self._RunDowngradeTwice()
+
   def testUpgradeDryRunFrom_2_0(self):
     self._TestSimpleUpgrade(constants.BuildVersion(2, 0, 0), True)
 
-- 
GitLab