Revision cd315ad9 test/py/cfgupgrade_unittest.py

b/test/py/cfgupgrade_unittest.py
78 78
  def _LoadConfig(self):
79 79
    return serializer.LoadJson(utils.ReadFile(self.config_path))
80 80

  
81
  def _LoadTestDataConfig(self, filename):
82
    return serializer.LoadJson(testutils.ReadTestData(filename))
83

  
81 84
  def _CreateValidConfigDir(self):
82 85
    utils.WriteFile(self.noded_cert_path, data="")
83 86
    utils.WriteFile(self.known_hosts_path, data="")
......
140 143
    utils.WriteFile(self.config_path, data=serializer.DumpJson({}))
141 144
    self.assertRaises(Exception, _RunUpgrade, self.tmpdir, False, True)
142 145

  
146
  def _TestUpgradeFromFile(self, filename, dry_run):
147
    cfg = self._LoadTestDataConfig(filename)
148
    self._TestUpgradeFromData(cfg, dry_run)
149

  
143 150
  def _TestSimpleUpgrade(self, from_version, dry_run,
144 151
                         file_storage_dir=None,
145 152
                         shared_file_storage_dir=None):
......
352 359
  def testUpgradeFrom_2_6(self):
353 360
    self._TestSimpleUpgrade(constants.BuildVersion(2, 6, 0), False)
354 361

  
362
  def testUpgradeFrom_2_7(self):
363
    self._TestSimpleUpgrade(constants.BuildVersion(2, 7, 0), False)
364

  
365
  def testUpgradeFullConfigFrom_2_7(self):
366
    self._TestUpgradeFromFile("cluster_config_2.7.json", False)
367

  
355 368
  def testUpgradeCurrent(self):
356 369
    self._TestSimpleUpgrade(constants.CONFIG_VERSION, False)
357 370

  
......
366 379
    self._TestSimpleUpgrade(constants.CONFIG_VERSION, False)
367 380
    self._RunDowngradeUpgrade()
368 381

  
382
  def testDowngradeFullConfig(self):
383
    """Test for upgrade + downgrade combination."""
384
    # This test can work only with the previous version of a configuration!
385
    # For 2.7, downgrading returns the original file only if group policies
386
    # don't override instance specs, so we need to use an ad-hoc configuration.
387
    oldconfname = "cluster_config_downgraded_2.7.json"
388
    self._TestUpgradeFromFile(oldconfname, False)
389
    _RunUpgrade(self.tmpdir, False, True, downgrade=True)
390
    oldconf = self._LoadTestDataConfig(oldconfname)
391
    newconf = self._LoadConfig()
392
    self.assertEqual(oldconf, newconf)
393

  
394
  def testDowngradeFullConfigBackwardFrom_2_7(self):
395
    """Test for upgrade + downgrade + upgrade combination."""
396
    self._TestUpgradeFromFile("cluster_config_2.7.json", False)
397
    self._RunDowngradeUpgrade()
398

  
369 399
  def _RunDowngradeTwice(self):
370 400
    """Make sure that downgrade is idempotent."""
371 401
    _RunUpgrade(self.tmpdir, False, True, downgrade=True)
......
378 408
    self._TestSimpleUpgrade(constants.CONFIG_VERSION, False)
379 409
    self._RunDowngradeTwice()
380 410

  
411
  def testDowngradeTwiceFullConfigFrom_2_7(self):
412
    self._TestUpgradeFromFile("cluster_config_2.7.json", False)
413
    self._RunDowngradeTwice()
414

  
381 415
  def testUpgradeDryRunFrom_2_0(self):
382 416
    self._TestSimpleUpgrade(constants.BuildVersion(2, 0, 0), True)
383 417

  

Also available in: Unified diff