HTOOLS = _autoconf.HTOOLS
# The hail iallocator
IALLOC_HAIL = "hail"
+
+# Do not re-export imported modules
+del re, _vcsversion, _autoconf
import unittest
import re
+import itertools
from ganeti import constants
from ganeti import locking
+from ganeti import utils
import testutils
self.failUnless(constants.OP_PRIO_HIGH > constants.OP_PRIO_HIGHEST)
+class TestExportedNames(unittest.TestCase):
+ _VALID_NAME_RE = re.compile(r"^[A-Z][A-Z0-9_]+$")
+ _BUILTIN_NAME_RE = re.compile(r"^__\w+__$")
+ _EXCEPTIONS = frozenset([
+ "SplitVersion",
+ "BuildVersion",
+ ])
+
+ def test(self):
+ wrong = \
+ set(itertools.ifilterfalse(self._BUILTIN_NAME_RE.match,
+ itertools.ifilterfalse(self._VALID_NAME_RE.match,
+ dir(constants))))
+ wrong -= self._EXCEPTIONS
+ self.assertFalse(wrong,
+ msg=("Invalid names exported from constants module: %s" %
+ utils.CommaJoin(sorted(wrong))))
+
+
class TestParameterNames(unittest.TestCase):
"""HV/BE parameter tests"""
VALID_NAME = re.compile("^[a-zA-Z_][a-zA-Z0-9_]*$")