import sys import os.path as path basename = path.dirname(path.dirname(path.abspath(__file__))) sys.path.append(path.join(basename,'src')) from feedvalidator.i18n.en import messages from feedvalidator.logging import Warning, Error template = '''

%s

XXX

XXX

''' def missing(): result = [] for key, value in messages.items(): if issubclass(key,Error): dir = 'error' elif issubclass(key,Warning): dir = 'warning' else: continue xml = path.join(basename, 'docs-xml', dir, key.__name__+'.xml') html = path.join(basename, 'docs', dir, key.__name__+'.html') if not path.exists(html) or not path.exists(xml): base = key.__bases__[0] while base not in [Error,Warning]: if path.exists(path.join(basename, 'docs', dir, base.__name__+'.html')) and \ path.exists(path.join(basename, 'docs-xml', dir, base.__name__+'.xml')): break base = base.__bases__[0] else: result.append((dir, key.__name__, value, xml, html)) return result import unittest class MissingMessagesTest(unittest.TestCase): def test_messages(self): self.assertEqual([], ["%s/%s" % (dir,id) for dir, id, msg, xml, html in missing()]) def buildTestSuite(): suite = unittest.TestSuite() loader = unittest.TestLoader() suite.addTest(loader.loadTestsFromTestCase(MissingMessagesTest)) return suite if __name__ == '__main__': import re for dir, id, msg, xml, html in missing(): msg = re.sub("%\(\w+\)\w?", "foo", msg) if not path.exists(html): open(html,'w').write('') if not path.exists(xml): print xml open(xml,'w').write(template.lstrip() % msg)