pytest-tap 3.4__tar.gz → 3.5__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- pytest_tap-3.5/.gitignore +71 -0
- {pytest-tap-3.4 → pytest_tap-3.5}/AUTHORS +1 -0
- {pytest-tap-3.4/src/pytest_tap.egg-info → pytest_tap-3.5}/PKG-INFO +24 -13
- pytest-tap-3.4/PKG-INFO → pytest_tap-3.5/docs/releases.rst +11 -25
- pytest_tap-3.5/pyproject.toml +83 -0
- pytest_tap-3.5/pytest_tap/__init__.py +1 -0
- {pytest-tap-3.4/src → pytest_tap-3.5}/pytest_tap/plugin.py +43 -7
- pytest_tap-3.5/tests/__init__.py +0 -0
- {pytest-tap-3.4 → pytest_tap-3.5}/tests/test_help.py +1 -0
- {pytest-tap-3.4 → pytest_tap-3.5}/tests/test_plugin.py +28 -0
- pytest-tap-3.4/MANIFEST.in +0 -4
- pytest-tap-3.4/README.rst +0 -57
- pytest-tap-3.4/docs/releases.rst +0 -91
- pytest-tap-3.4/setup.cfg +0 -21
- pytest-tap-3.4/setup.py +0 -53
- pytest-tap-3.4/src/pytest_tap/__init__.py +0 -1
- pytest-tap-3.4/src/pytest_tap.egg-info/SOURCES.txt +0 -19
- pytest-tap-3.4/src/pytest_tap.egg-info/dependency_links.txt +0 -1
- pytest-tap-3.4/src/pytest_tap.egg-info/entry_points.txt +0 -2
- pytest-tap-3.4/src/pytest_tap.egg-info/not-zip-safe +0 -1
- pytest-tap-3.4/src/pytest_tap.egg-info/requires.txt +0 -2
- pytest-tap-3.4/src/pytest_tap.egg-info/top_level.txt +0 -1
- {pytest-tap-3.4 → pytest_tap-3.5}/LICENSE +0 -0
- {pytest-tap-3.4 → pytest_tap-3.5}/tests/test_xdist.py +0 -0
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
# Byte-compiled / optimized / DLL files
|
|
2
|
+
__pycache__/
|
|
3
|
+
*.py[cod]
|
|
4
|
+
*$py.class
|
|
5
|
+
|
|
6
|
+
# C extensions
|
|
7
|
+
*.so
|
|
8
|
+
|
|
9
|
+
# Distribution / packaging
|
|
10
|
+
.Python
|
|
11
|
+
env/
|
|
12
|
+
build/
|
|
13
|
+
develop-eggs/
|
|
14
|
+
dist/
|
|
15
|
+
downloads/
|
|
16
|
+
eggs/
|
|
17
|
+
.eggs/
|
|
18
|
+
lib/
|
|
19
|
+
lib64/
|
|
20
|
+
parts/
|
|
21
|
+
sdist/
|
|
22
|
+
var/
|
|
23
|
+
*.egg-info/
|
|
24
|
+
.installed.cfg
|
|
25
|
+
*.egg
|
|
26
|
+
|
|
27
|
+
# PyInstaller
|
|
28
|
+
# Usually these files are written by a python script from a template
|
|
29
|
+
# before PyInstaller builds the exe, so as to inject date/other infos into it.
|
|
30
|
+
*.manifest
|
|
31
|
+
*.spec
|
|
32
|
+
|
|
33
|
+
# Installer logs
|
|
34
|
+
pip-log.txt
|
|
35
|
+
pip-delete-this-directory.txt
|
|
36
|
+
|
|
37
|
+
# Unit test / coverage reports
|
|
38
|
+
htmlcov/
|
|
39
|
+
.tox/
|
|
40
|
+
.coverage
|
|
41
|
+
.coverage.*
|
|
42
|
+
.cache
|
|
43
|
+
nosetests.xml
|
|
44
|
+
coverage.xml
|
|
45
|
+
*,cover
|
|
46
|
+
.hypothesis/
|
|
47
|
+
.pytest_cache
|
|
48
|
+
|
|
49
|
+
# Translations
|
|
50
|
+
*.mo
|
|
51
|
+
|
|
52
|
+
# Django stuff:
|
|
53
|
+
*.log
|
|
54
|
+
|
|
55
|
+
# Sphinx documentation
|
|
56
|
+
docs/_build/
|
|
57
|
+
|
|
58
|
+
# PyBuilder
|
|
59
|
+
target/
|
|
60
|
+
|
|
61
|
+
#Ipython Notebook
|
|
62
|
+
.ipynb_checkpoints
|
|
63
|
+
|
|
64
|
+
# Vim
|
|
65
|
+
*.sw*
|
|
66
|
+
|
|
67
|
+
# TAP
|
|
68
|
+
*.tap
|
|
69
|
+
|
|
70
|
+
# Virtual environments
|
|
71
|
+
venv/
|
|
@@ -1,26 +1,27 @@
|
|
|
1
|
-
Metadata-Version: 2.
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
2
|
Name: pytest-tap
|
|
3
|
-
Version: 3.
|
|
3
|
+
Version: 3.5
|
|
4
4
|
Summary: Test Anything Protocol (TAP) reporting plugin for pytest
|
|
5
|
-
|
|
6
|
-
Author: Matt Layman
|
|
7
|
-
Author-email: matthewlayman@gmail.com
|
|
5
|
+
Author-email: Matt Layman <matthewlayman@gmail.com>
|
|
8
6
|
License: BSD
|
|
9
|
-
|
|
10
|
-
|
|
7
|
+
License-File: AUTHORS
|
|
8
|
+
License-File: LICENSE
|
|
9
|
+
Keywords: TAP,pytest,unittest
|
|
11
10
|
Classifier: Development Status :: 5 - Production/Stable
|
|
12
11
|
Classifier: Framework :: Pytest
|
|
13
12
|
Classifier: Intended Audience :: Developers
|
|
14
13
|
Classifier: License :: OSI Approved :: BSD License
|
|
15
14
|
Classifier: Operating System :: OS Independent
|
|
16
|
-
Classifier: Programming Language :: Python :: 3.7
|
|
17
|
-
Classifier: Programming Language :: Python :: 3.8
|
|
18
15
|
Classifier: Programming Language :: Python :: 3.9
|
|
19
16
|
Classifier: Programming Language :: Python :: 3.10
|
|
20
|
-
Classifier: Programming Language :: Python ::
|
|
17
|
+
Classifier: Programming Language :: Python :: 3.11
|
|
18
|
+
Classifier: Programming Language :: Python :: 3.12
|
|
19
|
+
Classifier: Programming Language :: Python :: 3.13
|
|
21
20
|
Classifier: Topic :: Software Development :: Testing
|
|
22
|
-
|
|
23
|
-
|
|
21
|
+
Requires-Python: >=3.9
|
|
22
|
+
Requires-Dist: pytest>=3.0
|
|
23
|
+
Requires-Dist: tap-py<4.0,>=3.2
|
|
24
|
+
Description-Content-Type: text/x-rst
|
|
24
25
|
|
|
25
26
|
pytest-tap is a reporting plugin for pytest that outputs
|
|
26
27
|
`Test Anything Protocol (TAP) <http://testanything.org/>`_ data.
|
|
@@ -33,10 +34,20 @@ for more information or to follow this plugin's development.
|
|
|
33
34
|
Additional developer documentation about Python and TAP is on
|
|
34
35
|
`Read the Docs <https://tappy.readthedocs.io/>`_.
|
|
35
36
|
|
|
36
|
-
|
|
37
37
|
Releases
|
|
38
38
|
========
|
|
39
39
|
|
|
40
|
+
Version 3.5, January 30, 2025
|
|
41
|
+
-----------------------------
|
|
42
|
+
|
|
43
|
+
* Diagnostics now output logs, stdout, stderr for failed tests.
|
|
44
|
+
Use the standard ``--show-capture`` flag to control the output.
|
|
45
|
+
* Diagnostics can display for passing tests using the
|
|
46
|
+
``--tap-log-passing-tests`` flag.
|
|
47
|
+
* Add support for Python 3.12.
|
|
48
|
+
* Add support for Python 3.13.
|
|
49
|
+
* Drop support for Python 3.8 (it is end-of-life).
|
|
50
|
+
|
|
40
51
|
Version 3.4, July 15, 2023
|
|
41
52
|
--------------------------
|
|
42
53
|
|
|
@@ -1,27 +1,3 @@
|
|
|
1
|
-
Metadata-Version: 2.1
|
|
2
|
-
Name: pytest-tap
|
|
3
|
-
Version: 3.4
|
|
4
|
-
Summary: Test Anything Protocol (TAP) reporting plugin for pytest
|
|
5
|
-
Home-page: https://github.com/python-tap/pytest-tap
|
|
6
|
-
Author: Matt Layman
|
|
7
|
-
Author-email: matthewlayman@gmail.com
|
|
8
|
-
License: BSD
|
|
9
|
-
Keywords: TAP,unittest,pytest
|
|
10
|
-
Platform: any
|
|
11
|
-
Classifier: Development Status :: 5 - Production/Stable
|
|
12
|
-
Classifier: Framework :: Pytest
|
|
13
|
-
Classifier: Intended Audience :: Developers
|
|
14
|
-
Classifier: License :: OSI Approved :: BSD License
|
|
15
|
-
Classifier: Operating System :: OS Independent
|
|
16
|
-
Classifier: Programming Language :: Python :: 3.7
|
|
17
|
-
Classifier: Programming Language :: Python :: 3.8
|
|
18
|
-
Classifier: Programming Language :: Python :: 3.9
|
|
19
|
-
Classifier: Programming Language :: Python :: 3.10
|
|
20
|
-
Classifier: Programming Language :: Python :: Implementation :: PyPy
|
|
21
|
-
Classifier: Topic :: Software Development :: Testing
|
|
22
|
-
License-File: LICENSE
|
|
23
|
-
|
|
24
|
-
|
|
25
1
|
pytest-tap is a reporting plugin for pytest that outputs
|
|
26
2
|
`Test Anything Protocol (TAP) <http://testanything.org/>`_ data.
|
|
27
3
|
TAP is a line based test protocol for recording test data in a standard way.
|
|
@@ -33,10 +9,20 @@ for more information or to follow this plugin's development.
|
|
|
33
9
|
Additional developer documentation about Python and TAP is on
|
|
34
10
|
`Read the Docs <https://tappy.readthedocs.io/>`_.
|
|
35
11
|
|
|
36
|
-
|
|
37
12
|
Releases
|
|
38
13
|
========
|
|
39
14
|
|
|
15
|
+
Version 3.5, January 30, 2025
|
|
16
|
+
-----------------------------
|
|
17
|
+
|
|
18
|
+
* Diagnostics now output logs, stdout, stderr for failed tests.
|
|
19
|
+
Use the standard ``--show-capture`` flag to control the output.
|
|
20
|
+
* Diagnostics can display for passing tests using the
|
|
21
|
+
``--tap-log-passing-tests`` flag.
|
|
22
|
+
* Add support for Python 3.12.
|
|
23
|
+
* Add support for Python 3.13.
|
|
24
|
+
* Drop support for Python 3.8 (it is end-of-life).
|
|
25
|
+
|
|
40
26
|
Version 3.4, July 15, 2023
|
|
41
27
|
--------------------------
|
|
42
28
|
|
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
[project]
|
|
2
|
+
name = "pytest-tap"
|
|
3
|
+
version = "3.5"
|
|
4
|
+
description = "Test Anything Protocol (TAP) reporting plugin for pytest"
|
|
5
|
+
readme = "docs/releases.rst"
|
|
6
|
+
authors = [
|
|
7
|
+
{ name = "Matt Layman", email = "matthewlayman@gmail.com" }
|
|
8
|
+
]
|
|
9
|
+
license = { text = "BSD" }
|
|
10
|
+
homepage = "https://github.com/python-tap/pytest-tap"
|
|
11
|
+
dependencies = [
|
|
12
|
+
"pytest>=3.0",
|
|
13
|
+
"tap.py>=3.2,<4.0"
|
|
14
|
+
]
|
|
15
|
+
requires-python = ">=3.9"
|
|
16
|
+
keywords = ["TAP", "unittest", "pytest"]
|
|
17
|
+
classifiers = [
|
|
18
|
+
"Development Status :: 5 - Production/Stable",
|
|
19
|
+
"Framework :: Pytest",
|
|
20
|
+
"Intended Audience :: Developers",
|
|
21
|
+
"License :: OSI Approved :: BSD License",
|
|
22
|
+
"Operating System :: OS Independent",
|
|
23
|
+
"Programming Language :: Python :: 3.9",
|
|
24
|
+
"Programming Language :: Python :: 3.10",
|
|
25
|
+
"Programming Language :: Python :: 3.11",
|
|
26
|
+
"Programming Language :: Python :: 3.12",
|
|
27
|
+
"Programming Language :: Python :: 3.13",
|
|
28
|
+
"Topic :: Software Development :: Testing"
|
|
29
|
+
]
|
|
30
|
+
|
|
31
|
+
[project.entry-points.pytest11]
|
|
32
|
+
tap = "pytest_tap.plugin"
|
|
33
|
+
|
|
34
|
+
[dependency-groups]
|
|
35
|
+
dev = [
|
|
36
|
+
"pytest-tap",
|
|
37
|
+
"tox>=4.24.1",
|
|
38
|
+
]
|
|
39
|
+
|
|
40
|
+
[build-system]
|
|
41
|
+
requires = ["hatchling"]
|
|
42
|
+
build-backend = "hatchling.build"
|
|
43
|
+
|
|
44
|
+
[tool.hatch.build.targets.sdist]
|
|
45
|
+
include = [
|
|
46
|
+
"/src",
|
|
47
|
+
"/docs",
|
|
48
|
+
"/tests",
|
|
49
|
+
]
|
|
50
|
+
sources = ["src"]
|
|
51
|
+
|
|
52
|
+
[tool.hatch.build.targets.wheel]
|
|
53
|
+
sources = ["src"]
|
|
54
|
+
packages = ["pytest_tap"]
|
|
55
|
+
|
|
56
|
+
[tool.pytest.ini_options]
|
|
57
|
+
pythonpath = [".", "src"]
|
|
58
|
+
|
|
59
|
+
[tool.uv.sources]
|
|
60
|
+
pytest-tap = { workspace = true }
|
|
61
|
+
|
|
62
|
+
[tool.ruff.lint]
|
|
63
|
+
select = [
|
|
64
|
+
# pycodestyle
|
|
65
|
+
"E",
|
|
66
|
+
"W",
|
|
67
|
+
# Pyflakes
|
|
68
|
+
"F",
|
|
69
|
+
# pyupgrade
|
|
70
|
+
"UP",
|
|
71
|
+
# flake8-bandit
|
|
72
|
+
"S",
|
|
73
|
+
# flake8-bugbear
|
|
74
|
+
"B",
|
|
75
|
+
# flake8-simplify
|
|
76
|
+
"SIM",
|
|
77
|
+
# isort
|
|
78
|
+
"I",
|
|
79
|
+
]
|
|
80
|
+
ignore = [
|
|
81
|
+
# bandit: Use of `assert` detected
|
|
82
|
+
"S101",
|
|
83
|
+
]
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
__version__ = "3.5"
|
|
@@ -5,6 +5,10 @@ import pytest
|
|
|
5
5
|
from tap.formatter import format_as_diagnostics
|
|
6
6
|
from tap.tracker import Tracker
|
|
7
7
|
|
|
8
|
+
SHOW_CAPTURE_LOG = ("log", "all")
|
|
9
|
+
SHOW_CAPTURE_OUT = ("stdout", "all")
|
|
10
|
+
SHOW_CAPTUER_ERR = ("stderr", "all")
|
|
11
|
+
|
|
8
12
|
|
|
9
13
|
class TAPPlugin:
|
|
10
14
|
def __init__(self, config: pytest.Config) -> None:
|
|
@@ -25,6 +29,9 @@ class TAPPlugin:
|
|
|
25
29
|
# Disable it automatically for streaming.
|
|
26
30
|
self._tracker.header = False
|
|
27
31
|
|
|
32
|
+
self.show_capture = config.option.showcapture
|
|
33
|
+
self.log_passing_tests = config.option.tap_log_passing_tests
|
|
34
|
+
|
|
28
35
|
@pytest.hookimpl()
|
|
29
36
|
def pytest_runtestloop(self, session):
|
|
30
37
|
"""Output the plan line first."""
|
|
@@ -61,18 +68,21 @@ class TAPPlugin:
|
|
|
61
68
|
# for that decorator.
|
|
62
69
|
# Ignore the "reason: " from pytest.
|
|
63
70
|
if report.wasxfail and report.wasxfail != "reason: ":
|
|
64
|
-
reason = ": {
|
|
71
|
+
reason = f": {report.wasxfail}"
|
|
65
72
|
|
|
66
73
|
if report.skipped:
|
|
67
|
-
directive = "TODO expected failure{}"
|
|
74
|
+
directive = f"TODO expected failure{reason}"
|
|
68
75
|
self._tracker.add_not_ok(testcase, description, directive=directive)
|
|
69
76
|
elif report.passed:
|
|
70
|
-
directive = "TODO unexpected success{}"
|
|
77
|
+
directive = f"TODO unexpected success{reason}"
|
|
71
78
|
self._tracker.add_ok(testcase, description, directive=directive)
|
|
72
79
|
elif report.passed:
|
|
73
|
-
|
|
80
|
+
diagnostics = None
|
|
81
|
+
if self.log_passing_tests:
|
|
82
|
+
diagnostics = _make_as_diagnostics(report, self.show_capture)
|
|
83
|
+
self._tracker.add_ok(testcase, description, diagnostics=diagnostics)
|
|
74
84
|
elif report.failed:
|
|
75
|
-
diagnostics = _make_as_diagnostics(report)
|
|
85
|
+
diagnostics = _make_as_diagnostics(report, self.show_capture)
|
|
76
86
|
|
|
77
87
|
# pytest treats an unexpected success from unitest.expectedFailure
|
|
78
88
|
# as a failure.
|
|
@@ -94,7 +104,7 @@ class TAPPlugin:
|
|
|
94
104
|
self._tracker.add_not_ok(
|
|
95
105
|
testcase,
|
|
96
106
|
description,
|
|
97
|
-
directive="unexpected success: {
|
|
107
|
+
directive=f"unexpected success: {report.longrepr}",
|
|
98
108
|
)
|
|
99
109
|
return
|
|
100
110
|
|
|
@@ -143,6 +153,12 @@ def pytest_addoption(parser):
|
|
|
143
153
|
"If the directory does not exist, it will be created."
|
|
144
154
|
),
|
|
145
155
|
)
|
|
156
|
+
group.addoption(
|
|
157
|
+
"--tap-log-passing-tests",
|
|
158
|
+
default=False,
|
|
159
|
+
action="store_true",
|
|
160
|
+
help="Capture log information for passing tests to TAP report",
|
|
161
|
+
)
|
|
146
162
|
|
|
147
163
|
|
|
148
164
|
@pytest.hookimpl(trylast=True)
|
|
@@ -161,7 +177,27 @@ def pytest_configure(config: pytest.Config) -> None:
|
|
|
161
177
|
config.pluginmanager.register(TAPPlugin(config), "tapplugin")
|
|
162
178
|
|
|
163
179
|
|
|
164
|
-
def _make_as_diagnostics(report):
|
|
180
|
+
def _make_as_diagnostics(report, show_capture):
|
|
165
181
|
"""Format a report as TAP diagnostic output."""
|
|
166
182
|
lines = report.longreprtext.splitlines(keepends=True)
|
|
183
|
+
|
|
184
|
+
if show_capture in SHOW_CAPTURE_LOG:
|
|
185
|
+
if lines:
|
|
186
|
+
lines[-1] += "\n"
|
|
187
|
+
lines += ["--- Captured Log ---\n"] + (
|
|
188
|
+
report.caplog.splitlines(keepends=True) or [""]
|
|
189
|
+
)
|
|
190
|
+
if show_capture in SHOW_CAPTURE_OUT:
|
|
191
|
+
if lines:
|
|
192
|
+
lines[-1] += "\n"
|
|
193
|
+
lines += ["--- Captured Out ---\n"] + (
|
|
194
|
+
report.capstdout.splitlines(keepends=True) or [""]
|
|
195
|
+
)
|
|
196
|
+
if show_capture in SHOW_CAPTUER_ERR:
|
|
197
|
+
if lines:
|
|
198
|
+
lines[-1] += "\n"
|
|
199
|
+
lines += ["--- Captured Err ---\n"] + (
|
|
200
|
+
report.capstderr.splitlines(keepends=True) or [""]
|
|
201
|
+
)
|
|
202
|
+
|
|
167
203
|
return format_as_diagnostics(lines)
|
|
File without changes
|
|
@@ -86,6 +86,34 @@ def test_outdir(testdir, sample_test_file):
|
|
|
86
86
|
assert testresults.check()
|
|
87
87
|
|
|
88
88
|
|
|
89
|
+
def test_logging(testdir, sample_test_file):
|
|
90
|
+
"""Test logs are added to TAP diagnostics."""
|
|
91
|
+
result = testdir.runpytest_subprocess("--tap")
|
|
92
|
+
result.stdout.fnmatch_lines(
|
|
93
|
+
[
|
|
94
|
+
"# --- Captured Log ---",
|
|
95
|
+
"*Running test_not_ok*",
|
|
96
|
+
"# --- Captured Out ---",
|
|
97
|
+
"# --- Captured Err ---",
|
|
98
|
+
]
|
|
99
|
+
)
|
|
100
|
+
result.stdout.no_fnmatch_line("*Running test_ok*")
|
|
101
|
+
|
|
102
|
+
|
|
103
|
+
def test_log_passing_tests(testdir, sample_test_file):
|
|
104
|
+
"""Test logs are added to TAP diagnostics."""
|
|
105
|
+
result = testdir.runpytest_subprocess(
|
|
106
|
+
"--tap", "--tap-log-passing-tests", "--log-level", "INFO"
|
|
107
|
+
)
|
|
108
|
+
result.stdout.fnmatch_lines(
|
|
109
|
+
[
|
|
110
|
+
"# --- Captured Log ---",
|
|
111
|
+
"*Running test_ok*",
|
|
112
|
+
]
|
|
113
|
+
)
|
|
114
|
+
result.stdout.no_fnmatch_line("*Debug logging info*")
|
|
115
|
+
|
|
116
|
+
|
|
89
117
|
def test_xfail_no_reason(testdir):
|
|
90
118
|
"""xfails output gracefully when no reason is provided."""
|
|
91
119
|
testdir.makepyfile(
|
pytest-tap-3.4/MANIFEST.in
DELETED
pytest-tap-3.4/README.rst
DELETED
|
@@ -1,57 +0,0 @@
|
|
|
1
|
-
pytest-tap
|
|
2
|
-
==========
|
|
3
|
-
|
|
4
|
-
|version| |license| |coverage|
|
|
5
|
-
|
|
6
|
-
.. |version| image:: https://img.shields.io/pypi/v/pytest-tap.svg
|
|
7
|
-
:target: https://pypi.python.org/pypi/pytest-tap
|
|
8
|
-
:alt: PyPI version
|
|
9
|
-
.. |license| image:: https://img.shields.io/pypi/l/pytest-tap.svg
|
|
10
|
-
:target: https://raw.githubusercontent.com/python-tap/pytest-tap/master/LICENSE
|
|
11
|
-
:alt: BSD license
|
|
12
|
-
.. |coverage| image:: https://img.shields.io/codecov/c/github/python-tap/pytest-tap.svg
|
|
13
|
-
:target: https://codecov.io/github/python-tap/pytest-tap
|
|
14
|
-
:alt: Coverage
|
|
15
|
-
|
|
16
|
-
Test Anything Protocol (TAP) reporting plugin for
|
|
17
|
-
`pytest <http://pytest.org/latest/>`_
|
|
18
|
-
|
|
19
|
-
The plugin outputs test results as TAP data in a variety of formats.
|
|
20
|
-
See the `tappy documentation <http://tappy.readthedocs.io/en/latest/producers.html#pytest-tap-plugin>`_
|
|
21
|
-
for more information on usage.
|
|
22
|
-
|
|
23
|
-
Install
|
|
24
|
-
-------
|
|
25
|
-
|
|
26
|
-
.. code-block:: console
|
|
27
|
-
|
|
28
|
-
$ pip install pytest-tap
|
|
29
|
-
|
|
30
|
-
Usage
|
|
31
|
-
-----
|
|
32
|
-
|
|
33
|
-
This is an example usage from the plugin's test suite.
|
|
34
|
-
|
|
35
|
-
.. code-block:: console
|
|
36
|
-
|
|
37
|
-
$ pytest --tap
|
|
38
|
-
1..12
|
|
39
|
-
ok 1 tests/test_help.py::test_includes_options
|
|
40
|
-
ok 2 tests/test_help.py::test_handle_help_with_stream
|
|
41
|
-
ok 3 tests/test_plugin.py::test_stream
|
|
42
|
-
ok 4 tests/test_plugin.py::test_stream_simple_flag
|
|
43
|
-
ok 5 tests/test_plugin.py::test_combined
|
|
44
|
-
ok 6 tests/test_plugin.py::test_files
|
|
45
|
-
ok 7 tests/test_plugin.py::test_outdir
|
|
46
|
-
ok 8 tests/test_plugin.py::test_xfail_no_reason
|
|
47
|
-
ok 9 tests/test_plugin.py::test_xfail_nonstrict
|
|
48
|
-
ok 10 tests/test_plugin.py::test_xfail_strict
|
|
49
|
-
ok 11 tests/test_plugin.py::test_unittest_expected_failure
|
|
50
|
-
ok 12 tests/test_plugin.py::test_setup_failure
|
|
51
|
-
|
|
52
|
-
Contributing
|
|
53
|
-
------------
|
|
54
|
-
|
|
55
|
-
The project welcomes contributions of all kinds.
|
|
56
|
-
Check out the `contributing guidelines <https://github.com/python-tap/pytest-tap/blob/master/.github/contributing.md>`_
|
|
57
|
-
for tips on how to get started.
|
pytest-tap-3.4/docs/releases.rst
DELETED
|
@@ -1,91 +0,0 @@
|
|
|
1
|
-
Releases
|
|
2
|
-
========
|
|
3
|
-
|
|
4
|
-
Version 3.4, July 15, 2023
|
|
5
|
-
--------------------------
|
|
6
|
-
|
|
7
|
-
* Deprecate ``--tap-stream`` in favor of ``--tap`` for streaming mode.
|
|
8
|
-
* When using xdist, report the plan at the beginning of execution.
|
|
9
|
-
* Add support for Python 3.11.
|
|
10
|
-
* Drop support for Python 3.7 (it is end-of-life).
|
|
11
|
-
* Drop support for Python 3.6 (it is end-of-life).
|
|
12
|
-
* Drop support for PyPy.
|
|
13
|
-
|
|
14
|
-
Version 3.3, October 27, 2021
|
|
15
|
-
-----------------------------
|
|
16
|
-
|
|
17
|
-
* Add support for Python 3.10.
|
|
18
|
-
* Fix bug with help printing when streaming mode is enabled (#59).
|
|
19
|
-
* Drop support for Python 3.5 (it is end-of-life).
|
|
20
|
-
* Remove unmaintained (and likely inaccurate) locale info.
|
|
21
|
-
|
|
22
|
-
Version 3.2, November 7, 2020
|
|
23
|
-
-----------------------------
|
|
24
|
-
|
|
25
|
-
* Add support for Python 3.8.
|
|
26
|
-
* Add support for Python 3.9.
|
|
27
|
-
* Handle ``unittest.expectedFailure`` and ``pytest.xfail``
|
|
28
|
-
in a way that is more consistent
|
|
29
|
-
with the TAP specification.
|
|
30
|
-
|
|
31
|
-
Version 3.1, Released March 25, 2020
|
|
32
|
-
------------------------------------
|
|
33
|
-
|
|
34
|
-
* Fix reporting that was broken by the removal
|
|
35
|
-
of a deprecated feature in pytest 5.4.
|
|
36
|
-
|
|
37
|
-
Version 3.0, Released January 28, 2020
|
|
38
|
-
--------------------------------------
|
|
39
|
-
|
|
40
|
-
* Drop support for Python 2.
|
|
41
|
-
|
|
42
|
-
Version 2.5, Released December 26, 2019
|
|
43
|
-
---------------------------------------
|
|
44
|
-
|
|
45
|
-
* Last supported version for Python 2.
|
|
46
|
-
* Pin tap.py to a version range that supports Python 2.
|
|
47
|
-
|
|
48
|
-
Version 2.4, Released October 21, 2019
|
|
49
|
-
--------------------------------------
|
|
50
|
-
|
|
51
|
-
* Handle failures that occur from setup.
|
|
52
|
-
This will catch errors that may happen in fixtures.
|
|
53
|
-
* Drop support for Python 3.4 (it is end-of-life).
|
|
54
|
-
* Add support for Python 3.7.
|
|
55
|
-
|
|
56
|
-
Version 2.3, Released September 16, 2018
|
|
57
|
-
----------------------------------------
|
|
58
|
-
|
|
59
|
-
* Improve xfail handling.
|
|
60
|
-
Honor strict xfail mode.
|
|
61
|
-
Use TODO instead of SKIP directive to better align with TAP specification.
|
|
62
|
-
* Output the plan line (``1..N``) first.
|
|
63
|
-
|
|
64
|
-
Version 2.2, Released January 9, 2018
|
|
65
|
-
-------------------------------------
|
|
66
|
-
|
|
67
|
-
* Update output format to match closer to pytest styling.
|
|
68
|
-
* Drop support for Python 3.3 (it is end-of-life).
|
|
69
|
-
|
|
70
|
-
Version 2.1, Released August 12, 2017
|
|
71
|
-
-------------------------------------
|
|
72
|
-
|
|
73
|
-
* Add support for Python 3.6.
|
|
74
|
-
* Fix crash when running with pytest-xdist (#27).
|
|
75
|
-
|
|
76
|
-
Version 2.0, Released August 1, 2016
|
|
77
|
-
------------------------------------
|
|
78
|
-
|
|
79
|
-
* Update to tap.py 2.0.
|
|
80
|
-
This update drops the indirect dependencies on nose and pygments.
|
|
81
|
-
* Improve handling of skips and xfails.
|
|
82
|
-
* Suppress ``# TAP results for TestCase`` for streaming.
|
|
83
|
-
This header makes little sense for pytest's test function paradigm.
|
|
84
|
-
Including the header generated extra noise for each function.
|
|
85
|
-
* Drop support for Python 2.6
|
|
86
|
-
|
|
87
|
-
Version 1.9, Released June 11, 2016
|
|
88
|
-
-----------------------------------
|
|
89
|
-
|
|
90
|
-
* Initial release as stand-alone plugin.
|
|
91
|
-
The version number aligns with tappy.
|
pytest-tap-3.4/setup.cfg
DELETED
|
@@ -1,21 +0,0 @@
|
|
|
1
|
-
[bumpversion]
|
|
2
|
-
current_version = 3.4
|
|
3
|
-
commit = True
|
|
4
|
-
tag = True
|
|
5
|
-
parse = (?P<major>\d+)\.(?P<minor>\d+)
|
|
6
|
-
serialize = {major}.{minor}
|
|
7
|
-
|
|
8
|
-
[bumpversion:file:setup.py]
|
|
9
|
-
|
|
10
|
-
[bumpversion:file:src/pytest_tap/__init__.py]
|
|
11
|
-
|
|
12
|
-
[metadata]
|
|
13
|
-
license_files = LICENSE
|
|
14
|
-
|
|
15
|
-
[flake8]
|
|
16
|
-
max-line-length = 88
|
|
17
|
-
|
|
18
|
-
[egg_info]
|
|
19
|
-
tag_build =
|
|
20
|
-
tag_date = 0
|
|
21
|
-
|
pytest-tap-3.4/setup.py
DELETED
|
@@ -1,53 +0,0 @@
|
|
|
1
|
-
"""
|
|
2
|
-
pytest-tap is a reporting plugin for pytest that outputs
|
|
3
|
-
`Test Anything Protocol (TAP) <http://testanything.org/>`_ data.
|
|
4
|
-
TAP is a line based test protocol for recording test data in a standard way.
|
|
5
|
-
|
|
6
|
-
Use ``pytest --tap`` after installing to get started.
|
|
7
|
-
|
|
8
|
-
Follow `GitHub <https://github.com/python-tap/pytest-tap>`_
|
|
9
|
-
for more information or to follow this plugin's development.
|
|
10
|
-
Additional developer documentation about Python and TAP is on
|
|
11
|
-
`Read the Docs <https://tappy.readthedocs.io/>`_.
|
|
12
|
-
"""
|
|
13
|
-
|
|
14
|
-
from setuptools import find_packages, setup
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
if __name__ == "__main__":
|
|
18
|
-
with open("docs/releases.rst", "r") as f:
|
|
19
|
-
releases = f.read()
|
|
20
|
-
|
|
21
|
-
long_description = __doc__ + "\n\n" + releases
|
|
22
|
-
|
|
23
|
-
setup(
|
|
24
|
-
name="pytest-tap",
|
|
25
|
-
version="3.4",
|
|
26
|
-
url="https://github.com/python-tap/pytest-tap",
|
|
27
|
-
license="BSD",
|
|
28
|
-
author="Matt Layman",
|
|
29
|
-
author_email="matthewlayman@gmail.com",
|
|
30
|
-
description="Test Anything Protocol (TAP) reporting plugin for pytest",
|
|
31
|
-
long_description=long_description,
|
|
32
|
-
packages=find_packages(where="src"),
|
|
33
|
-
package_dir={"": "src"},
|
|
34
|
-
entry_points={"pytest11": ["tap = pytest_tap.plugin"]},
|
|
35
|
-
include_package_data=True,
|
|
36
|
-
zip_safe=False,
|
|
37
|
-
platforms="any",
|
|
38
|
-
install_requires=["pytest>=3.0", "tap.py>=3.0,<4.0"],
|
|
39
|
-
classifiers=[
|
|
40
|
-
"Development Status :: 5 - Production/Stable",
|
|
41
|
-
"Framework :: Pytest",
|
|
42
|
-
"Intended Audience :: Developers",
|
|
43
|
-
"License :: OSI Approved :: BSD License",
|
|
44
|
-
"Operating System :: OS Independent",
|
|
45
|
-
"Programming Language :: Python :: 3.7",
|
|
46
|
-
"Programming Language :: Python :: 3.8",
|
|
47
|
-
"Programming Language :: Python :: 3.9",
|
|
48
|
-
"Programming Language :: Python :: 3.10",
|
|
49
|
-
"Programming Language :: Python :: Implementation :: PyPy",
|
|
50
|
-
"Topic :: Software Development :: Testing",
|
|
51
|
-
],
|
|
52
|
-
keywords=["TAP", "unittest", "pytest"],
|
|
53
|
-
)
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
__version__ = "3.4"
|
|
@@ -1,19 +0,0 @@
|
|
|
1
|
-
AUTHORS
|
|
2
|
-
LICENSE
|
|
3
|
-
MANIFEST.in
|
|
4
|
-
README.rst
|
|
5
|
-
setup.cfg
|
|
6
|
-
setup.py
|
|
7
|
-
docs/releases.rst
|
|
8
|
-
src/pytest_tap/__init__.py
|
|
9
|
-
src/pytest_tap/plugin.py
|
|
10
|
-
src/pytest_tap.egg-info/PKG-INFO
|
|
11
|
-
src/pytest_tap.egg-info/SOURCES.txt
|
|
12
|
-
src/pytest_tap.egg-info/dependency_links.txt
|
|
13
|
-
src/pytest_tap.egg-info/entry_points.txt
|
|
14
|
-
src/pytest_tap.egg-info/not-zip-safe
|
|
15
|
-
src/pytest_tap.egg-info/requires.txt
|
|
16
|
-
src/pytest_tap.egg-info/top_level.txt
|
|
17
|
-
tests/test_help.py
|
|
18
|
-
tests/test_plugin.py
|
|
19
|
-
tests/test_xdist.py
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
pytest_tap
|
|
File without changes
|
|
File without changes
|