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 = '''
'''
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)