From 2bac48c4739a5bde46489d14dd3c20c52fb9d894 Mon Sep 17 00:00:00 2001 From: Adeodato Simo <dato@google.com> Date: Thu, 9 Dec 2010 16:45:55 +0000 Subject: [PATCH] Add some unit tests for ConfigWriter.AddNodeGroup() Signed-off-by: Adeodato Simo <dato@google.com> Reviewed-by: Michael Hanselmann <hansmi@google.com> --- test/ganeti.config_unittest.py | 35 ++++++++++++++++++++++++++++++++++ 1 file changed, 35 insertions(+) diff --git a/test/ganeti.config_unittest.py b/test/ganeti.config_unittest.py index 4221e92ae..a21bfa6da 100755 --- a/test/ganeti.config_unittest.py +++ b/test/ganeti.config_unittest.py @@ -204,6 +204,41 @@ class TestConfigRunner(unittest.TestCase): cfg.Update(node, None) self.assertEqual(cfg.GetNdParams(node), my_ndparams) + def testAddGroupFillsFieldsIfMissing(self): + cfg = self._get_object() + group = objects.NodeGroup(name="test", members=[]) + cfg.AddNodeGroup(group, "my-job") + self.assert_(utils.UUID_RE.match(group.uuid)) + self.assertEqual(constants.ALLOC_POLICY_PREFERRED, group.alloc_policy) + + def testAddGroupPreservesFields(self): + cfg = self._get_object() + group = objects.NodeGroup(name="test", members=[], + alloc_policy=constants.ALLOC_POLICY_LAST_RESORT) + cfg.AddNodeGroup(group, "my-job") + self.assertEqual(constants.ALLOC_POLICY_LAST_RESORT, group.alloc_policy) + + def testAddGroupDoesNotPreserveFields(self): + cfg = self._get_object() + group = objects.NodeGroup(name="test", members=[], + serial_no=17, ctime=123, mtime=456) + cfg.AddNodeGroup(group, "my-job") + self.assertEqual(1, group.serial_no) + self.assert_(group.ctime > 1200000000) + self.assert_(group.mtime > 1200000000) + + def testAddGroupCanSkipUUIDCheck(self): + cfg = self._get_object() + uuid = cfg.GenerateUniqueID("my-job") + group = objects.NodeGroup(name="test", members=[], uuid=uuid, + serial_no=17, ctime=123, mtime=456) + + self.assertRaises(errors.ConfigurationError, + cfg.AddNodeGroup, group, "my-job") + + cfg.AddNodeGroup(group, "my-job", check_uuid=False) # Does not raise. + self.assertEqual(uuid, group.uuid) + class TestTRM(unittest.TestCase): EC_ID = 1 -- GitLab