Package: taptaptap
name:taptaptapAuthor:Lukas ProkopDate:Feb-Apr 2014, Jul 2018license:BSD 3-clauseVersion:1.2.1issues:http://github.com/meisterluk/taptaptap/issuesTest Anything Protocol handling for cats *rawwr*Table of contentsCompatibilityChangelogThe File FormatTestsuite & ExamplesCommand line toolsPicklingWhen to usetaptaptaptaptaptapprovides parsers, writers and APIs to handle the Test Anything Protocol (TAP). The implementation focuses on the most-current TAP version 13. TAP originates from the Perl community, but is a general format to document runs of testsuites. The reference to cats is just a pun for the noise of cats sneaking on floors.Compatibilitytaptaptapis only supposed to be working with python 2.7 (due to with statements and argparse).
It fully supports unicode.
It has been tested with Xubuntu 18.04 (Linux 4.15 x86_64) on 2.7.15rc1. A version for python 3.x is available as packagetaptaptap3.Changelog1.2.1:declare encoding in setup.py, README updates1.2.0:Bugfix: do not drop memo in TapBailout,
shebangs: “python” → “python2”,
Bugfix: initialize next_number with 1,
Bugfix: issue #11.1.3:tapmerge: support merging more than 2 TAP files,
support “-” to denote stdin1.1.2:TapWriter: do not reuse TapWriter instance in TapCreator1.1.1:TapWriter: support data handling in TapBailout1.1.0:procedural API writes to stderr not stdout,
bugfix TapCreator: Fix number of testcase determination1.0.5:bugfix procedural API: write version even if default version1.0.4:more tests, fix output/source bug in testsuite1.0.3:install_requires in setup.py1.0.2:introduce requirements.txt1.0.1:Unicode improvements1.0.0:First stable release, packaging improvements, full testsuite0.8.0:Unstable release, minimal testsuiteThe File FormatA basic introduction is given by Wikipedia. The format was specified by the Perl community.The Wikipedia articleOriginal specificationTest::HarnessTestsuite & Examplestaptaptapcomes with a testsuite, which covers many special cases of the TAP format and tests the provided APIs. Please don’t hesitate to report anyissues.You can run thetaptaptaptestcases yourself using:./run.shin the tests directory. The testsuite also shows some API usage examples, but I want to provide some here. The procedural API is well-suited if you are in the python REPL:from taptaptap.proc import plan, ok, not_ok, out
plan(tests=10)
ok('Starting the robot')
not_ok('Starting the engine')
not_ok('Find the object', skip='Setup required')
not_ok('Terminate', skip='Setup required')

out()The output looks like this:1..10
ok - Starting the robot
not ok - Starting the engine
not ok - Find the object  # SKIP Setup required
not ok - Terminate  # SKIP Setup requiredBe aware that the state is stored within the module. This is not what you want if you are outside the REPL. TheTapWriterclass is more convenient in this case:import taptaptap

writer = taptaptap.TapWriter()
writer.plan(1, 3)
writer.ok('This testcase went fine')
writer.ok('And another one')
writer.ok('And also the last one')If you like python’s generators, you want to useSimpleTapCreator:@taptaptap.SimpleTapCreator
def runTests():
    yield True
    yield True
    yield False

print runTests()Giving us:1..3
ok
ok
not okOr take a look at the more sophisticatedTapCreator. If you are a real expert, you can useTapDocumentdirectly, which covers all possibilities of TAP.Command line toolsYou can also invoketaptaptapdirectly from the command line:python -m taptaptap.__main__ some_tap_file_to_validate.tapThis command will parse the file and write the file in a way how it was understood by the module. The exit code indicates its validity:0Everything fine.1The TAP file is missing some testcases or contains failed testcases.2A bailout was raised. So the testing environment crashed during the run.PicklingAll objects are pickable.When to usetaptaptapDoestaptaptapsuite your needs?
It does, if you are looking for a parser and validator for your TAP documents and you don’t want to care about details and just need a gentle API.best regards,
meisterluk