Example #1
0
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)
Example #2
0
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)
Example #3
0
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')
Example #4
0
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')
Example #5
0
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>
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>