From dd196ce73618390736bd9df9ab41e97996ee7e9b Mon Sep 17 00:00:00 2001 From: "Chris St. Pierre" Date: Tue, 16 Oct 2012 09:22:49 -0400 Subject: added unit tests to test for schema validity --- testsuite/Testschema/test_schema.py | 40 +++++++++++++++++++++++++++++++++++++ 1 file changed, 40 insertions(+) create mode 100644 testsuite/Testschema/test_schema.py (limited to 'testsuite/Testschema') diff --git a/testsuite/Testschema/test_schema.py b/testsuite/Testschema/test_schema.py new file mode 100644 index 000000000..56fe76205 --- /dev/null +++ b/testsuite/Testschema/test_schema.py @@ -0,0 +1,40 @@ +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 * + +# path to Bcfg2 schema directory +srcpath = os.path.abspath(os.path.join(os.path.dirname(__file__), "..", "..", + "schemas")) + +# test for xmllint existence +try: + Popen(['xmllint'], stdout=PIPE, stderr=STDOUT).wait() + HAS_XMLLINT = True +except OSError: + HAS_XMLLINT = False + + +class TestSchemas(Bcfg2TestCase): + schema_url = "http://www.w3.org/2001/XMLSchema.xsd" + + @skipUnless(HAS_XMLLINT, "xmllint not installed") + def test_valid(self): + schemas = [s for s in glob.glob(os.path.join(srcpath,'*.xsd'))] + xmllint = Popen(['xmllint', '--xinclude', '--noout', '--schema', + self.schema_url] + schemas, + stdout=PIPE, stderr=STDOUT) + print(xmllint.communicate()[0]) + self.assertEqual(xmllint.wait(), 0) -- cgit v1.2.3-1-g7c22