# Unix SMB/CIFS implementation. # Copyright (C) Jelmer Vernooij 2007-2012 # # Tests for documentation. # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 3 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program. If not, see . # """Tests for presence of documentation.""" import samba import samba.tests import os import re import subprocess class TestCase(samba.tests.TestCase): def _format_message(self, parameters, message): parameters = list(parameters) parameters.sort() return message + '\n\n %s' % ('\n '.join(parameters)) def get_documented_parameters(sourcedir): p = subprocess.Popen( ["xsltproc", "--xinclude", "--param", "smb.context", "ALL", "generate-context.xsl", "parameters.all.xml"], stdout=subprocess.PIPE, cwd=os.path.join(sourcedir, "docs-xml", "smbdotconf")) out, err = p.communicate() assert p.returncode == 0, "returncode was %r" % p.returncode for l in out.splitlines(): m = re.match(' 0: self.fail(self._format_message(unknown, "Parameters that are documented but not in the implementation:")) undocumented = parameters.difference(documented) if len(undocumented) > 0: self.fail(self._format_message(undocumented, "Parameters that are in the implementation but undocumented:"))