From 28a7318f2dd3b8d93bb461e0889f509312760718 Mon Sep 17 00:00:00 2001 From: Iustin Pop <iustin@google.com> Date: Thu, 11 Nov 2010 10:38:44 +0100 Subject: [PATCH] Add unittests for TemporaryReservationManager And fix an error message. Signed-off-by: Iustin Pop <iustin@google.com> Reviewed-by: Michael Hanselmann <hansmi@google.com> --- lib/config.py | 4 ++-- test/ganeti.config_unittest.py | 20 ++++++++++++++++++++ 2 files changed, 22 insertions(+), 2 deletions(-) diff --git a/lib/config.py b/lib/config.py index c72ca6227..669dadafb 100644 --- a/lib/config.py +++ b/lib/config.py @@ -88,8 +88,8 @@ class TemporaryReservationManager: def Reserve(self, ec_id, resource): if self.Reserved(resource): - raise errors.ReservationError("Duplicate reservation for resource: %s." % - (resource)) + raise errors.ReservationError("Duplicate reservation for resource '%s'" + % str(resource)) if ec_id not in self._ec_reserved: self._ec_reserved[ec_id] = set([resource]) else: diff --git a/test/ganeti.config_unittest.py b/test/ganeti.config_unittest.py index 984bfff62..51284a782 100755 --- a/test/ganeti.config_unittest.py +++ b/test/ganeti.config_unittest.py @@ -37,6 +37,8 @@ from ganeti import objects from ganeti import utils from ganeti import netutils +from ganeti.config import TemporaryReservationManager + import testutils import mocks @@ -186,5 +188,23 @@ class TestConfigRunner(unittest.TestCase): CheckSyntax, {mode: m_bridged, link: ''}) +class TestTRM(unittest.TestCase): + EC_ID = 1 + + def testEmpty(self): + t = TemporaryReservationManager() + t.Reserve(self.EC_ID, "a") + self.assertFalse(t.Reserved(self.EC_ID)) + self.assertTrue(t.Reserved("a")) + self.assertEqual(len(t.GetReserved()), 1) + + def testDuplicate(self): + t = TemporaryReservationManager() + t.Reserve(self.EC_ID, "a") + self.assertRaises(errors.ReservationError, t.Reserve, 2, "a") + t.DropECReservations(self.EC_ID) + self.assertFalse(t.Reserved("a")) + + if __name__ == '__main__': testutils.GanetiTestProgram() -- GitLab