summaryrefslogtreecommitdiffstats
path: root/testsuite/Testsrc/testmisc.py
diff options
context:
space:
mode:
authorChris St. Pierre <chris.a.st.pierre@gmail.com>2012-09-24 14:51:36 -0400
committerChris St. Pierre <chris.a.st.pierre@gmail.com>2012-09-25 11:58:48 -0400
commit3f16355e18cdceb37828a00a8181d9cc60815cd0 (patch)
treee2b38114e0a06d3c7b28ad4ef5c15793e21eb2b3 /testsuite/Testsrc/testmisc.py
parent47aebb16f15fe6f8ce29d8c6b105f10d8d64c295 (diff)
downloadbcfg2-3f16355e18cdceb37828a00a8181d9cc60815cd0.tar.gz
bcfg2-3f16355e18cdceb37828a00a8181d9cc60815cd0.tar.bz2
bcfg2-3f16355e18cdceb37828a00a8181d9cc60815cd0.zip
fixed tests for pylint changes
Diffstat (limited to 'testsuite/Testsrc/testmisc.py')
-rw-r--r--testsuite/Testsrc/testmisc.py178
1 files changed, 0 insertions, 178 deletions
diff --git a/testsuite/Testsrc/testmisc.py b/testsuite/Testsrc/testmisc.py
deleted file mode 100644
index 41a91caff..000000000
--- a/testsuite/Testsrc/testmisc.py
+++ /dev/null
@@ -1,178 +0,0 @@
-import os
-import re
-import sys
-import glob
-from subprocess import Popen, PIPE, STDOUT
-
-# add all parent testsuite directories to sys.path to allow (most)
-# relative imports in python 2.4
-_path = os.path.dirname(__file__)
-while _path != '/':
- if os.path.basename(_path).lower().startswith("test"):
- sys.path.append(_path)
- if os.path.basename(_path) == "testsuite":
- break
- _path = os.path.dirname(_path)
-from common import can_skip, skip, skipIf, skipUnless, Bcfg2TestCase
-
-try:
- import django
- HAS_DJANGO = True
-except ImportError:
- HAS_DJANGO = False
-
-# path to Bcfg2 src directory
-srcpath = os.path.abspath(os.path.join(os.path.dirname(__file__), "..", "..",
- "src"))
-
-# path to pylint rc file
-rcfile = os.path.abspath(os.path.join(os.path.dirname(__file__), "..",
- "pylintrc.conf"))
-
-# test for pylint existence
-try:
- Popen(['pylint'], stdout=PIPE, stderr=STDOUT).wait()
- HAS_PYLINT = True
-except OSError:
- HAS_PYLINT = False
-
-
-# perform a full range of code checks on the listed files.
-full_checks = {
- "lib/Bcfg2/Server": ["Lint",
- "Plugin",
- "BuiltinCore.py",
- "CherryPyCore.py",
- "Core.py"],
- "lib/Bcfg2/Server/Plugins": ["Bundler.py",
- "Bzr.py",
- "Cfg",
- "Cvs.py",
- "DBStats.py",
- "Darcs.py",
- "Defaults.py",
- "FileProbes.py",
- "Fossil.py",
- "Git.py",
- "GroupPatterns.py",
- "Guppy.py",
- "Hg.py",
- "Ohai.py",
- "Packages",
- "Probes.py",
- "Properties.py",
- "PuppetENC.py",
- "Rules.py",
- "SEModules.py",
- "ServiceCompat.py",
- "Svn.py",
- "Svn2.py",
- "TemplateHelper.py",
- "Trigger.py",
- ],
- "lib/Bcfg2/Client/Tools": ["POSIX"],
- }
-
-# perform full code checks on the listed executables
-sbin_checks = {
- "sbin": ["bcfg2-server", "bcfg2-yum-helper"]
- }
-
-# perform limited, django-safe checks on the listed files
-django_checks = {
- "lib/Bcfg2/Server": ["Reports", "models.py"]
- }
-
-# perform no checks at all on the listed files
-no_checks = {
- "lib/Bcfg2/Client/Tools": ["APT.py", "RPMng.py", "rpmtools.py"],
- "lib/Bcfg2/Server": ["Snapshots", "Hostbase"]
- }
-
-
-class TestPylint(Bcfg2TestCase):
- pylint_cmd = ["pylint", "--rcfile", rcfile]
-
- # regex to find errors and fatal errors
- error_re = re.compile(r':\d+:\s+\[[EF]\d{4}')
-
- # build the blacklist
- blacklist = []
- for parent, modules in no_checks.items():
- blacklist.extend([os.path.join(srcpath, parent, m) for m in modules])
-
- def _get_paths(self, pathlist):
- paths = []
- for parent, modules in pathlist.items():
- paths.extend([os.path.join(srcpath, parent, m) for m in modules])
- return list(set(paths) - set(self.blacklist))
-
- @skipIf(not os.path.exists(srcpath), "%s does not exist" % srcpath)
- @skipIf(not os.path.exists(rcfile), "%s does not exist" % rcfile)
- @skipUnless(HAS_PYLINT, "pylint not found, skipping")
- def test_lib_full(self):
- self._pylint_full(self._get_paths(full_checks))
-
- @skipIf(not os.path.exists(srcpath), "%s does not exist" % srcpath)
- @skipIf(not os.path.exists(rcfile), "%s does not exist" % rcfile)
- @skipUnless(HAS_PYLINT, "pylint not found, skipping")
- def test_sbin_full(self):
- self._pylint_full(self._get_paths(sbin_checks),
- extra_args=["--module-rgx",
- "[a-z_-][a-z0-9_-]*$"])
-
- def _pylint_full(self, paths, extra_args=None):
- """ test select files for all pylint errors """
- if extra_args is None:
- extra_args = []
- args = self.pylint_cmd + extra_args + \
- ["-f", "parseable"] + \
- [os.path.join(srcpath, p) for p in paths]
- pylint = Popen(args, stdout=PIPE, stderr=STDOUT)
- print(pylint.communicate()[0])
- self.assertEqual(pylint.wait(), 0)
-
- @skipIf(not os.path.exists(srcpath), "%s does not exist" % srcpath)
- @skipIf(not os.path.exists(rcfile), "%s does not exist" % rcfile)
- @skipUnless(HAS_PYLINT, "pylint not found, skipping")
- def test_sbin_errors(self):
- flist = list(set(os.path.join(srcpath, p)
- for p in glob.glob("sbin/*")) - set(self.blacklist))
- return self._pylint_errors(flist)
-
- @skipUnless(HAS_DJANGO, "Django not found, skipping")
- @skipIf(not os.path.exists(srcpath), "%s does not exist" % srcpath)
- @skipIf(not os.path.exists(rcfile), "%s does not exist" % rcfile)
- @skipUnless(HAS_PYLINT, "pylint not found, skipping")
- def test_django_errors(self):
- return self._pylint_errors(self._get_paths(django_checks),
- extra_args=["-d", "E1101"])
-
- @skipIf(not os.path.exists(srcpath), "%s does not exist" % srcpath)
- @skipIf(not os.path.exists(rcfile), "%s does not exist" % rcfile)
- @skipUnless(HAS_PYLINT, "pylint not found, skipping")
- def test_lib_errors(self):
- ignore = []
- for fname_list in django_checks.values() + no_checks.values():
- ignore.extend(fname_list)
- return self._pylint_errors(["lib/Bcfg2"],
- extra_args=["--ignore", ",".join(ignore)])
-
- def _pylint_errors(self, paths, extra_args=None):
- """ test all files for fatals and errors """
- if extra_args is None:
- extra_args = []
- args = self.pylint_cmd + extra_args + \
- ["-f", "parseable", "-d", "R0801,E1103"] + \
- [os.path.join(srcpath, p) for p in paths]
- pylint = Popen(args, stdout=PIPE, stderr=STDOUT)
- output = pylint.communicate()[0]
- rv = pylint.wait()
-
- for line in output.splitlines():
- #print line
- if self.error_re.search(line):
- print(line)
- # pylint returns a bitmask, where 1 means fatal errors
- # were encountered and 2 means errors were encountered.
- self.assertEqual(rv & 3, 0)