diff --git a/Makefile.am b/Makefile.am index d50b7c2b4be0a2956f33e6bef8fabb2485f6149a..9fa69646172bbb634f6c89a3430d4bf2f9a714e8 100644 --- a/Makefile.am +++ b/Makefile.am @@ -341,6 +341,7 @@ python_tests = \ test/ganeti.rapi.resources_unittest.py \ test/ganeti.serializer_unittest.py \ test/ganeti.ssh_unittest.py \ + test/ganeti.uidpool_unittest.py \ test/ganeti.utils_unittest.py \ test/ganeti.workerpool_unittest.py \ test/docs_unittest.py \ diff --git a/test/ganeti.config_unittest.py b/test/ganeti.config_unittest.py index 25fa7eda040b22bfbd2404645f2241af723cecb4..a57a3b70935b50bded107c2b9ad2a94d5a6fcb4d 100755 --- a/test/ganeti.config_unittest.py +++ b/test/ganeti.config_unittest.py @@ -76,6 +76,7 @@ class TestConfigRunner(unittest.TestCase): master_netdev=constants.DEFAULT_BRIDGE, cluster_name="cluster.local", file_storage_dir="/tmp", + uid_pool=[], ) master_node_config = objects.Node(name=me.name, diff --git a/test/ganeti.uidpool_unittest.py b/test/ganeti.uidpool_unittest.py new file mode 100755 index 0000000000000000000000000000000000000000..638c8b250713583420a5183c707683c97ca317e6 --- /dev/null +++ b/test/ganeti.uidpool_unittest.py @@ -0,0 +1,73 @@ +#!/usr/bin/python +# + +# Copyright (C) 2010 Google Inc. +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, but +# WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA +# 0.0510-1301, USA. + + +"""Script for unittesting the uidpool module""" + + +import unittest + +from ganeti import constants +from ganeti import uidpool +from ganeti import errors + +import testutils + + +class TestUidPool(testutils.GanetiTestCase): + """Uid-pool tests""" + + def setUp(self): + self.old_uid_min = constants.UIDPOOL_UID_MIN + self.old_uid_max = constants.UIDPOOL_UID_MAX + constants.UIDPOOL_UID_MIN = 1 + constants.UIDPOOL_UID_MAX = 10 + + def tearDown(self): + constants.UIDPOOL_UID_MIN = self.old_uid_min + constants.UIDPOOL_UID_MAX = self.old_uid_max + + def testParseUidPool(self): + self.assertEqualValues( + uidpool.ParseUidPool('1-100,200,'), + [(1, 100), (200, 200)]) + + def testCheckUidPool(self): + # UID < UIDPOOL_UID_MIN + self.assertRaises(errors.OpPrereqError, + uidpool.CheckUidPool, + [(0, 0)]) + # UID > UIDPOOL_UID_MAX + self.assertRaises(errors.OpPrereqError, + uidpool.CheckUidPool, + [(11, 11)]) + # lower boundary > higher boundary + self.assertRaises(errors.OpPrereqError, + uidpool.CheckUidPool, + [(2, 1)]) + + def testFormatUidPool(self): + self.assertEqualValues( + uidpool.FormatUidPool([(1, 100), (200, 200)]), + '1-100, 200'), + + +if __name__ == '__main__': + testutils.GanetiTestProgram()