def validate_testcases(dirname): print(u'Testcase validation\n') gs = GrammarStore() print(u'\nRunning Testcases') testcases = os.path.join(dirname, u'Testcases') for name in os.listdir(testcases): if name != u'.DS_Store' and os.path.splitext(name)[1] != u'.xml': testfile = os.path.join(testcases, name) checkfile = os.path.splitext(testfile)[0] + u'.xml' if os.path.isfile(testfile): if os.path.isfile(checkfile): with open(checkfile, u'rt') as f: check = f.read() try: with open(testfile, u'rt') as f: debug_stream = StringIO() fmt = DebugFormatter(debug_stream) gs.parse_document(testfile, f, fmt) if check == debug_stream.getvalue(): print(u'✓ success: %s' % name) else: print(u'✗ failure, output has changed: %s' % name) except: print(u'✗ failure, exception: %s' % name) else: print(u'✗ failure, no check file for: %s' % name)
def usage(name): print(u'''%s -h|test|create <testcase>|debug <testcase>''' % name) if __name__ == u'__main__': if len(sys.argv) > 1: if len(sys.argv) == 2 and sys.argv[1] == u'test': dirname = os.path.dirname(os.path.realpath(sys.argv[0])) validate_testcases(dirname) elif len(sys.argv) == 3 and sys.argv[1] == u'debug' or sys.argv[1] == u'create': testfile = sys.argv[2] checkfile = os.path.splitext(testfile)[0] + u'.xml' gs = GrammarStore() ts = ThemeStore() debug_stream = StringIO() fmt = DebugFormatter(debug_stream, theme=ts.themes.values()[0]) with open(testfile, u'rt') as f: gs.parse_document(testfile, f, fmt) # validate all content against original document original = u'' with open(testfile, u'rt') as f: original = f.read() if fmt.content == original: print(u'✓ content is identical') else: print(u'✗ content is not identical to original')
def usage(name): print(u'''%s -h|test|create <testcase>|debug <testcase>''' % name) if __name__ == u'__main__': if len(sys.argv) > 1: if len(sys.argv) == 2 and sys.argv[1] == u'test': dirname = os.path.dirname(os.path.realpath(sys.argv[0])) validate_testcases(dirname) elif len(sys.argv) == 3 and sys.argv[1] == u'debug' or sys.argv[ 1] == u'create': testfile = sys.argv[2] checkfile = os.path.splitext(testfile)[0] + u'.xml' gs = GrammarStore() ts = ThemeStore() debug_stream = StringIO() fmt = DebugFormatter(debug_stream, theme=ts.themes.values()[0]) with open(testfile, u'rt') as f: gs.parse_document(testfile, f, fmt) # validate all content against original document original = u'' with open(testfile, u'rt') as f: original = f.read() if fmt.content == original: print(u'✓ content is identical') else: print(u'✗ content is not identical to original')
from theme import ThemeStore from grammar import GrammarStore from html_formatter import HTMLFormatter if __name__ == u'__main__': ts = ThemeStore() if len(sys.argv) != 4 and len(sys.argv) != 5: print(u'Usage: %s [theme] <input> <html> <css>' % os.path.basename(__file__)) print(u'Themes:') for t in ts.themes.keys(): print(u' %s' % t) else: ts = ThemeStore() gs = GrammarStore() theme = ts.themes.values()[0] if len(sys.argv) == 5: theme = ts.get_theme(sys.argv[1]) infn = sys.argv[2] htmlfn = sys.argv[3] cssfn = sys.argv[4] else: infn = sys.argv[1] htmlfn = sys.argv[2] cssfn = sys.argv[3] with open(infn, u'rt') as f: html = open(htmlfn, u'wt+') html.write(u'''<!DOCTYPE html>