-
Notifications
You must be signed in to change notification settings - Fork 2
Expand file tree
/
Copy pathREADME
More file actions
86 lines (61 loc) · 2.11 KB
/
README
File metadata and controls
86 lines (61 loc) · 2.11 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
.. OZI
Classifier: License-Expression :: Apache-2.0 WITH LLVM-exception
Classifier: License-File :: LICENSE.txt
..
Part of TAP-Producer.
See LICENSE.txt in the project root for details.
============
TAP-Producer
============
Producer for Test Anything Protocol output in Python.
.. code-block::
from tap_producer import TAP
with TAP() as t:
t.ok('passed')
t.ok('also passed')
The TAP class automatically counts test points at call time for TAP version 12, 13, and 14.
.. code-block::
from tap_producer import TAP
@TAP(plan=1, version=14)
def f() -> None:
TAP.ok('reason')
f()
TAP can also be used as a function decorator.
.. code-block::
from tap_producer import TAP
TAP.version(14)
TAP.ok('passed')
TAP.end()
The TAP class can also be used as a purely functional API. Normally TAP calls ``end()`` on its own.
.. code-block::
from tap_producer import TAP
with TAP() as t:
t.ok('passed').comment('debug information')
if FAIL_CONDITION:
t.not_ok('did not pass')
t.bail_out()
TAP using version 12 supports plan, ok, not ok, diagnostic comment, and bail out
functionality.
.. code-block::
with TAP(version=13).subtest('subtest') as st:
st.plan(count=1, skip_count=0).ok('ok', {'yaml-key': 'yaml-val'})
TAP version 13 supports the aforementioned as well as subtest context manager
and YAML diagnostic output.
.. code-block::
from tap_producer import TAP
with TAP() as t:
with t.suppress():
t.ok('passed but suppressed')
with t.strict()
t.not_ok('this is now a Python exception')
TAP-Producer also includes two decorators, a suppress context manager for
suppressing TAP output and a strict context manager for raising not ok test
cases to Python errors.
License
-------
Licensed Apache-2.0 WITH LLVM-exception, no NOTICE file needed if you want
to vendor TAP-Producer into your project, see LICENSE.txt for more information.
.. image:: https://raw.githubusercontent.com/sigstore/community/main/artwork/badge/sigstore_codesigned_purple.png
:align: right
:height: 140
:target: https://www.sigstore.dev/