32 lines
868 B
Python
32 lines
868 B
Python
#!/usr/bin/env python
|
|
|
|
import unittest, os, re
|
|
from xml.dom import minidom
|
|
from glob import glob
|
|
from htmlentitydefs import name2codepoint as n2cp
|
|
|
|
class DocsTest(unittest.TestCase):
|
|
|
|
def test_well_formed(self):
|
|
def substitute_entity(match):
|
|
ent = match.group(1)
|
|
try:
|
|
return "&#%d;" % n2cp[ent]
|
|
except:
|
|
return "&%s;" % ent
|
|
|
|
for doc in glob('docs/*'):
|
|
if os.path.isdir(doc): continue
|
|
if doc.endswith('.css') or doc.endswith('.js'): continue
|
|
|
|
source = open(doc).read()
|
|
source = re.sub('&(\w+);', substitute_entity, source)
|
|
|
|
try:
|
|
minidom.parseString(source)
|
|
except:
|
|
self.fail('Not well formed: ' + doc);
|
|
break
|
|
else:
|
|
self.assertTrue(True);
|