summaryrefslogtreecommitdiff
path: root/python
diff options
context:
space:
mode:
authorMichael Adam <obnox@samba.org>2015-07-22 15:16:16 +0200
committerJeremy Allison <jra@samba.org>2015-07-31 01:55:32 +0200
commit3de5d2992588a6485e113034a39429c8dfb8fb75 (patch)
tree00b41b66a6fee9cc3c035fec23ca0370bbc003cc /python
parentb138d57c4da208d256fcc003256841d67461e19a (diff)
downloadsamba-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.py78
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():