diff options
author | Michael Adam <obnox@samba.org> | 2015-07-22 15:16:16 +0200 |
---|---|---|
committer | Jeremy Allison <jra@samba.org> | 2015-07-31 01:55:32 +0200 |
commit | 3de5d2992588a6485e113034a39429c8dfb8fb75 (patch) | |
tree | 00b41b66a6fee9cc3c035fec23ca0370bbc003cc /python | |
parent | b138d57c4da208d256fcc003256841d67461e19a (diff) | |
download | samba-3de5d2992588a6485e113034a39429c8dfb8fb75.tar.gz |
tests:docs: common initialization in docs test.
Just load the structures once at startup.
Signed-off-by: Michael Adam <obnox@samba.org>
Reviewed-by: Jeremy Allison <jra@samba.org>
Diffstat (limited to 'python')
-rw-r--r-- | python/samba/tests/docs.py | 78 |
1 files changed, 35 insertions, 43 deletions
diff --git a/python/samba/tests/docs.py b/python/samba/tests/docs.py index ded0c20cba5..4e5f1fccbdc 100644 --- a/python/samba/tests/docs.py +++ b/python/samba/tests/docs.py @@ -151,34 +151,45 @@ class SmbDotConfTests(TestCase): finally: f.close() + self.topdir = os.path.abspath(samba.source_tree_topdir()) + + try: + self.documented = set(get_documented_parameters(self.topdir)) + except: + self.fail("Unable to load documented parameters") + + try: + self.parameters = set(get_implementation_parameters(self.topdir)) + except: + self.fail("Unable to load implemented parameters") + + try: + self.defaults = set(get_documented_tuples(self.topdir)) + except: + self.fail("Unable to load parameters") + + try: + self.defaults_all = set(get_documented_tuples(self.topdir, False)) + except: + self.fail("Unable to load parameters") + + def tearDown(self): super(SmbDotConfTests, self).tearDown() os.unlink(self.smbconf) os.unlink(self.blankconf) def test_unknown(self): - topdir = os.path.abspath(samba.source_tree_topdir()) - try: - documented = set(get_documented_parameters(topdir)) - except e: - self.fail("Unable to load parameters") - parameters = set(get_implementation_parameters(topdir)) # Filter out parametric options, since we can't find them in the parm # table - documented = set([p for p in documented if not ":" in p]) - unknown = documented.difference(parameters) + documented = set([p for p in self.documented if not ":" in p]) + unknown = documented.difference(self.parameters) if len(unknown) > 0: self.fail(self._format_message(unknown, "Parameters that are documented but not in the implementation:")) def test_undocumented(self): - topdir = os.path.abspath(samba.source_tree_topdir()) - try: - documented = set(get_documented_parameters(topdir)) - except: - self.fail("Unable to load parameters") - parameters = set(get_implementation_parameters(topdir)) - undocumented = parameters.difference(documented) + undocumented = self.parameters.difference(self.documented) if len(undocumented) > 0: self.fail(self._format_message(undocumented, "Parameters that are in the implementation but undocumented:")) @@ -203,16 +214,10 @@ class SmbDotConfTests(TestCase): self._test_empty(['bin/samba-tool', 'testparm']) def _test_default(self, program): - topdir = os.path.abspath(samba.source_tree_topdir()) - try: - defaults = set(get_documented_tuples(topdir)) - except: - self.fail("Unable to load parameters") - bindir = os.path.join(topdir, "bin") failset = set() count = 0 - for tuples in defaults: + for tuples in self.defaults: param, default, context, param_type = tuples if param in self.special_cases: continue @@ -225,7 +230,7 @@ class SmbDotConfTests(TestCase): self.fail("%s has no valid context" % param) p = subprocess.Popen(program + ["-s", self.smbconf, "--section-name", section, "--parameter-name", param], - stdout=subprocess.PIPE, stderr=subprocess.PIPE, cwd=topdir).communicate() + stdout=subprocess.PIPE, stderr=subprocess.PIPE, cwd=self.topdir).communicate() if p[0].upper().strip() != default.upper(): if not (p[0].upper().strip() == "" and default == '""'): doc_triple = "%s\n Expected: %s" % (param, default) @@ -236,16 +241,10 @@ class SmbDotConfTests(TestCase): "Parameters that do not have matching defaults:")) def _set_defaults(self, program): - topdir = os.path.abspath(samba.source_tree_topdir()) - try: - defaults = set(get_documented_tuples(topdir)) - except: - self.fail("Unable to load parameters") - bindir = os.path.join(topdir, "bin") failset = set() count = 0 - for tuples in defaults: + for tuples in self.defaults: param, default, context, param_type = tuples if param in ['printing']: @@ -261,7 +260,7 @@ class SmbDotConfTests(TestCase): p = subprocess.Popen(program + ["-s", self.smbconf, "--section-name", section, "--parameter-name", param, "--option", "%s = %s" % (param, default)], - stdout=subprocess.PIPE, stderr=subprocess.PIPE, cwd=topdir).communicate() + stdout=subprocess.PIPE, stderr=subprocess.PIPE, cwd=self.topdir).communicate() if p[0].upper().strip() != default.upper(): if not (p[0].upper().strip() == "" and default == '""'): doc_triple = "%s\n Expected: %s" % (param, default) @@ -286,16 +285,11 @@ class SmbDotConfTests(TestCase): 'octal': '0567', 'ustring': 'ustring2', 'enum':'', 'boolean-auto': '', 'char': 'b', 'list': 'd, e, f'} - topdir = os.path.abspath(samba.source_tree_topdir()) - try: - defaults = set(get_documented_tuples(topdir, False)) - except Exception,e: - self.fail("Unable to load parameters" + e) - bindir = os.path.join(topdir, "bin") + failset = set() count = 0 - for tuples in defaults: + for tuples in self.defaults_all: param, default, context, param_type = tuples if param in ['printing', 'copy', 'include', 'log level']: @@ -324,7 +318,7 @@ class SmbDotConfTests(TestCase): p = subprocess.Popen(program + ["-s", self.smbconf, "--section-name", section, "--parameter-name", param, "--option", "%s = %s" % (param, value_to_use)], - stdout=subprocess.PIPE, stderr=subprocess.PIPE, cwd=topdir).communicate() + stdout=subprocess.PIPE, stderr=subprocess.PIPE, cwd=self.topdir).communicate() if p[0].upper().strip() != value_to_use.upper(): # currently no way to distinguish command lists if param_type == 'list': @@ -354,7 +348,7 @@ class SmbDotConfTests(TestCase): p = subprocess.Popen(program + ["-s", tempconf, "--suppress-prompt", "--option", "%s = %s" % (param, value_to_use)], - stdout=subprocess.PIPE, stderr=subprocess.PIPE, cwd=topdir).communicate() + stdout=subprocess.PIPE, stderr=subprocess.PIPE, cwd=self.topdir).communicate() os.unlink(tempconf) @@ -388,10 +382,8 @@ class SmbDotConfTests(TestCase): "Parameters that were unexpectedly not set:")) def _test_empty(self, program): - topdir = os.path.abspath(samba.source_tree_topdir()) - p = subprocess.Popen(program + ["-s", self.blankconf, "--suppress-prompt"], - stdout=subprocess.PIPE, stderr=subprocess.PIPE, cwd=topdir).communicate() + stdout=subprocess.PIPE, stderr=subprocess.PIPE, cwd=self.topdir).communicate() output = "" for line in p[0].splitlines(): |