コード例 #1
0
def showDiff(achieved, expected, indent=''):
    diff = Differ().compare(
        expected.splitlines(),
        achieved.splitlines()
    )
    for each in diff:
        if each[0] == '+':
            print(indent+succeed(each))
        elif each[0] == '-':
            print(indent+info(each))
        elif each[0] == '?':
            print(indent+status(each))
        else:
            print(indent+each)
コード例 #2
0
ファイル: test.inform.py プロジェクト: KenKundert/inform
def showDiff(achieved, expected, indent=''):
    diff = Differ().compare(
        expected.splitlines(),
        achieved.splitlines()
    )
    for each in diff:
        if each[0] == '+':
            print(indent+succeed(each))
        elif each[0] == '-':
            print(indent+info(each))
        elif each[0] == '?':
            print(indent+status(each))
        else:
            print(indent+each)
コード例 #3
0
ファイル: test.scripting.py プロジェクト: KenKundert/ec
        print(info('    Result  : invalid return code:'), pipe.returncode)
    elif expectedResult != result:
        failures += 1
        print(fail('Failure detected (%s):' % failures))
        print(info('    Given:'), stimulus)
        print(info('    Result  :'), '\n' + result)
        print(info('    Expected:'))
        for r, e in zip(result, expectedResult):
            if r == e:
                print(e, end='')
            else:
                print(fail(e), end='')
        print()

    elif printResults:
        print(succeed('    Result:'), result)
        for message in messages:
            print(succeed('    Message received:'), message)
        for warning in warnings:
            print(succeed('    Warning received:'), warning)

# Print test summary {{{1
numTests = len(testCases)
assert testsRun == numTests, "%s of %s tests run" % (testsRun, numTests)
if printSummary:
    print('%s: %s tests run, %s failures detected.' % (
        fail('FAIL') if failures else succeed('PASS'), testsRun, failures
    ))

writeSummary(testsRun, failures)
sys.exit(int(bool(failures)))
コード例 #4
0
ファイル: test.main.py プロジェクト: KenKundert/abraxas
# Run tests {{{1
for case in testCases:

    testsRun += 1
    if printTests:
        print(status("Trying %d (%s):" % (testsRun, case.name)), case.stimulus)

    failure = case.run()

    if failure:
        failures += 1
        name, stimulus, result, expected, kind = failure
        print(fail("Unexpected %s (%s):" % (kind, failures)))
        print(info("    Case    :"), name)
        print(info("    Given   :"), stimulus)
        print(info("    Result  :"), result)
        print(info("    Expected:"), expected)

# Print test summary {{{1
numTests = 76
assert testsRun == numTests, "Incorrect number of tests run (%s of %s)." % (testsRun, numTests)
if printSummary:
    print(
        "%s: %s tests run, %s failures detected." % (fail("FAIL") if failures else succeed("PASS"), testsRun, failures)
    )

writeSummary(testsRun, failures)
sys.exit(int(bool(failures)))

# vim: set sw=4 sts=4 et:
コード例 #5
0
    succeed,
    fail,
    status,
    pythonCmd,
    coverageCmd,
)
import doctest
import sys

# Initialization {{{1
fast, printSummary, printTests, printResults, colorize, parent, coverage = cmdLineOpts(
)

# use the inform color package before unloading it.
failure = fail('FAIL:')
success = succeed('PASS:'******'Trying:')


# Unload the inform module so that it is reloaded during the doctests
# This is needed because doctest replaces stdout with its own stream so it
# can capture the output of the program being tested. Inform was imported from
# runtests, and it already saved away stdout. By unloading it here, it will be
# imported again after doctest has replaced stdout.
def unload_inform():
    to_delete = [m for m in sys.modules.keys() if m.startswith('inform')]
    for module in to_delete:
        del sys.modules[module]


if coverage is False:
コード例 #6
0
for case in testCases:
    testsRun += 1
    if printTests:
        print(status('Trying %d (%s):' % (testsRun, case.name)), case.stimulus)

    failure = case.run()

    if failure:
        failures += 1
        name, stimulus, result, expected, kind = failure
        print(fail('Unexpected %s (%s):' % (kind, failures)))
        print(info('    Case    :'), name)
        print(info('    Given   :'), format(stimulus))
        print(info('    Result  :'), format(result))
        print(info('    Expected:'), format(expected))
        if result and expected:
            print(info('    Diff:'))
            showDiff(result, expected, indent=8*' ')


# Print test summary {{{1
numTests = len(testCases)
assert testsRun == numTests, "Incorrect number of tests run (%s of %s)." % (testsRun, numTests)
if printSummary:
    print('%s: %s tests run, %s failures detected.' % (
        fail('FAIL') if failures else succeed('PASS'), testsRun, failures
    ))

writeSummary(testsRun, failures)
sys.exit(int(bool(failures)))
コード例 #7
0
                                )
                            )
            if warnings != expectedWarnings:
                for warning in warnings:
                    if warning not in expectedWarnings:
                        print("%s: %s" % (
                            info('    Warning not expected'), warning)
                        )
                for warning in expectedWarnings:
                    if warning not in warnings:
                        print("%s: %s" % (
                            info('    Expected warning not received'), warning
                        ))

        elif printResults:
            print("%s: %s" % (succeed('    Result'), result))
            try:
                for message in messages:
                    print("%s: %s" % (succeed('    Message received'), message))
            except TypeError:
                pass  # occurs if messages is True
            for warning in warnings:
                print("%s: %s" % (succeed('    Warning received'), warning))
    except CalculatorError as err:
        calc.restoreStack()
        if expectedError != err.getMessage():
            failures += 1
            print("%s:" % fail('Failure detected (%s)' % failures))
            print("%s: %s" % (info('    Given'), stimulus))
            print("%s: %s" % (info('    Result  '), err.message))
            print("%s: %s" % (info('    Expected'), expectedError))
コード例 #8
0
ファイル: test.inform.py プロジェクト: KenKundert/inform
    if printTests:
        print(status('Trying %d (%s):' % (testsRun, case.name)), case.stimulus)

    failure = case.run()

    if failure:
        failures += 1
        name, stimulus, result, expected, kind = failure
        print(fail('Unexpected %s (%s):' % (kind, failures)))
        print(info('    Case    :'), name)
        print(info('    Given   :'), format(stimulus))
        print(info('    Result  :'), format(result))
        print(info('    Expected:'), format(expected))
        if result and expected:
            print(info('    Diff:'))
            showDiff(result, expected, indent=8*' ')


# Print test summary {{{1
numTests = len(testCases)
assert testsRun == numTests, "Incorrect number of tests run (%s of %s)." % (testsRun, numTests)
if printSummary:
    print('%s: %s tests run, %s failures detected.' % (
        fail('FAIL') if failures else succeed('PASS'), testsRun, failures
    ))

writeSummary(testsRun, failures)
sys.exit(int(bool(failures)))

# vim: set sw=4 sts=4 et: