Skip to main content

Test Anything Protocol handling for cats

Project description

name:

taptaptap

Author:

Lukas Prokop

Date:
Feb-Apr 2014, Jul 2018, Oct 2024
license:

BSD 3-clause

Version:
3.1.0
issues:

http://github.com/meisterluk/taptaptap3/issues

Test Anything Protocol handling for cat lovers *rawwr*

taptaptap3 provides 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 and “3” is part of “<3”, thus “lovers”.

Compatibility

taptaptap3 is only supposed to be working with python 3.5 upwards. It was written for python 2.7 as package taptaptap and this implementation is the modern port to python3. It has been tested with Python 3.12.6 on Arch Linux (Linux 6.10 on x86_64)

The File Format

A basic introduction is given by Wikipedia. The format was specified by the Perl community.

Testsuite & Examples

taptaptap3 comes with a testsuite, which covers many special cases of the TAP format and tests the provided APIs. Please don’t hesitate to report any issues.

You can run the taptaptap3 testcases yourself using:

./run.sh

in 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 taptaptap3.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 required

Be aware that the state is stored within the module. This is not what you want if you are outside the REPL. The TapWriter class is more convenient in this case:

import taptaptap3

writer = taptaptap3.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 use SimpleTapCreator:

@taptaptap3.SimpleTapCreator
def runTests():
    yield True
    yield True
    yield False

print runTests()

Giving us:

1..3
ok
ok
not ok

Or take a look at the more sophisticated TapCreator. If you are a real expert, you can use TapDocument directly, which covers all possibilities of TAP.

Command line tools

You can also invoke taptaptap3 directly from the command line:

tapvalidate some_tap_file_to_validate.tap

This 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:

0

Everything fine.

1

The TAP file is missing some testcases or contains failed testcases.

2

A bailout was raised. So the testing environment crashed during the run.

Pickling

All objects are pickable.

When to use taptaptap3

Does taptaptap3 suite 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

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

taptaptap3-3.1.0.tar.gz (34.5 kB view details)

Uploaded Source

Built Distribution

taptaptap3-3.1.0-py3-none-any.whl (25.0 kB view details)

Uploaded Python 3

File details

Details for the file taptaptap3-3.1.0.tar.gz.

File metadata

  • Download URL: taptaptap3-3.1.0.tar.gz
  • Upload date:
  • Size: 34.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.1 CPython/3.12.6

File hashes

Hashes for taptaptap3-3.1.0.tar.gz
Algorithm Hash digest
SHA256 3364822f7d664957f232b02e37cd4a18899d94b8166038fa0a118557262d73c0
MD5 c1629c81dd7d592a72d7dc52f49f93b4
BLAKE2b-256 9d6ac1f1e1a94019069fd64569a8b3bd072657562d59391e86a22dc42dfb9459

See more details on using hashes here.

File details

Details for the file taptaptap3-3.1.0-py3-none-any.whl.

File metadata

  • Download URL: taptaptap3-3.1.0-py3-none-any.whl
  • Upload date:
  • Size: 25.0 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.1 CPython/3.12.6

File hashes

Hashes for taptaptap3-3.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 51f8168fc8743fb75dfd9a11dc096eedc3d6f01a71b557fcc2c70975d6adb9a5
MD5 43dfd2a208c63c3b68ed2000d02cc348
BLAKE2b-256 3eb72a93b2c1b1813a838bb03b8c81d3dbae5912d220e30fb472b8ad6d656c8b

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page