From 36bf79739c6a3be5b82d4c4eb69535439a2b7b1d Mon Sep 17 00:00:00 2001 From: Michael Hanselmann <hansmi@google.com> Date: Fri, 4 Sep 2009 13:52:00 +0200 Subject: [PATCH] Add simple unittest for manpages Signed-off-by: Michael Hanselmann <hansmi@google.com> Reviewed-by: Luca Bigliardi <shammash@google.com> --- test/docs_unittest.py | 32 ++++++++++++++++++++++++++++++++ 1 file changed, 32 insertions(+) diff --git a/test/docs_unittest.py b/test/docs_unittest.py index 0ede50b8c..447061f1e 100755 --- a/test/docs_unittest.py +++ b/test/docs_unittest.py @@ -24,6 +24,7 @@ import unittest import re +from ganeti import _autoconf from ganeti import utils from ganeti import cmdlib from ganeti.rapi import connector @@ -115,5 +116,36 @@ class TestDocs(unittest.TestCase): utils.CommaJoin(undocumented))) +class TestManpages(unittest.TestCase): + """Manpage tests""" + + @staticmethod + def _ReadManFile(name): + return utils.ReadFile("%s/man/%s.sgml" % + (testutils.GetSourceDir(), name)) + + @staticmethod + def _LoadScript(name): + return utils.LoadModule("scripts/%s" % name) + + def test(self): + for script in _autoconf.GNT_SCRIPTS: + self._CheckManpage(script, + self._ReadManFile(script), + self._LoadScript(script).commands.keys()) + + def _CheckManpage(self, script, mantext, commands): + missing = [] + + for cmd in commands: + pattern = "<cmdsynopsis>\s*<command>%s</command>" % re.escape(cmd) + if not re.findall(pattern, mantext, re.S): + missing.append(cmd) + + self.failIf(missing, + msg=("Manpage for '%s' missing documentation for %s" % + (script, utils.CommaJoin(missing)))) + + if __name__ == "__main__": unittest.main() -- GitLab