summaryrefslogtreecommitdiffstats
path: root/testsuite/Testschema/test_schema.py
diff options
context:
space:
mode:
Diffstat (limited to 'testsuite/Testschema/test_schema.py')
-rw-r--r--testsuite/Testschema/test_schema.py11
1 files changed, 8 insertions, 3 deletions
diff --git a/testsuite/Testschema/test_schema.py b/testsuite/Testschema/test_schema.py
index cd9b74cdf..138468a91 100644
--- a/testsuite/Testschema/test_schema.py
+++ b/testsuite/Testschema/test_schema.py
@@ -34,13 +34,18 @@ NSMAP = dict(xs=XS)
class TestSchemas(Bcfg2TestCase):
schema_url = "http://www.w3.org/2001/XMLSchema.xsd"
+ catalog_file = os.path.expanduser("~/.cache/xml/catalog.xml")
@skipUnless(HAS_XMLLINT, "xmllint not installed")
def test_valid(self):
+ env = os.environ.copy()
+ if os.path.exists(self.catalog_file):
+ print('Using cached schema files.')
+ env["SGML_CATALOG_FILES"] = self.catalog_file
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)
+ xmllint = Popen(['xmllint', '--xinclude', '--noout', '--catalogs',
+ '--schema', self.schema_url] + schemas,
+ stdout=PIPE, stderr=STDOUT, env=env)
print(xmllint.communicate()[0].decode())
self.assertEqual(xmllint.wait(), 0)