From f53bb117043edd3601ae6b1c981fccf8b2c1b0eb Mon Sep 17 00:00:00 2001 From: DongHun Kwak Date: Thu, 18 Mar 2021 11:33:43 +0900 Subject: [PATCH] Imported Upstream version 6.1.2 --- .github/workflows/main.yml | 2 + PKG-INFO | 192 --------- doc/en/announce/index.rst | 1 + doc/en/announce/release-6.1.2.rst | 22 + doc/en/changelog.rst | 19 + doc/en/getting-started.rst | 2 +- doc/en/reference.rst | 7 +- setup.cfg | 121 +++--- src/_pytest/_version.py | 4 - src/_pytest/cacheprovider.py | 6 +- src/_pytest/deprecated.py | 7 +- src/_pytest/fixtures.py | 17 +- src/_pytest/pathlib.py | 2 +- src/pytest.egg-info/PKG-INFO | 192 --------- src/pytest.egg-info/SOURCES.txt | 500 ----------------------- src/pytest.egg-info/dependency_links.txt | 1 - src/pytest.egg-info/entry_points.txt | 4 - src/pytest.egg-info/not-zip-safe | 1 - src/pytest.egg-info/requires.txt | 27 -- src/pytest.egg-info/top_level.txt | 2 - src/pytest/__init__.py | 2 +- testing/deprecated_test.py | 19 +- testing/python/fixtures.py | 2 +- testing/test_cacheprovider.py | 30 ++ 24 files changed, 182 insertions(+), 1000 deletions(-) delete mode 100644 PKG-INFO create mode 100644 doc/en/announce/release-6.1.2.rst delete mode 100644 src/_pytest/_version.py delete mode 100644 src/pytest.egg-info/PKG-INFO delete mode 100644 src/pytest.egg-info/SOURCES.txt delete mode 100644 src/pytest.egg-info/dependency_links.txt delete mode 100644 src/pytest.egg-info/entry_points.txt delete mode 100644 src/pytest.egg-info/not-zip-safe delete mode 100644 src/pytest.egg-info/requires.txt delete mode 100644 src/pytest.egg-info/top_level.txt diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index 9ef1a08..106e41b 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -16,6 +16,7 @@ on: jobs: build: runs-on: ${{ matrix.os }} + timeout-minutes: 30 strategy: fail-fast: false @@ -187,6 +188,7 @@ jobs: if: github.event_name == 'push' && startsWith(github.event.ref, 'refs/tags') && github.repository == 'pytest-dev/pytest' runs-on: ubuntu-latest + timeout-minutes: 30 needs: [build] diff --git a/PKG-INFO b/PKG-INFO deleted file mode 100644 index 9a387bf..0000000 --- a/PKG-INFO +++ /dev/null @@ -1,192 +0,0 @@ -Metadata-Version: 2.1 -Name: pytest -Version: 6.1.1 -Summary: pytest: simple powerful testing with Python -Home-page: https://docs.pytest.org/en/latest/ -Author: Holger Krekel, Bruno Oliveira, Ronny Pfannschmidt, Floris Bruynooghe, Brianna Laugher, Florian Bruhin and others -License: MIT -Project-URL: Source, https://github.com/pytest-dev/pytest -Project-URL: Tracker, https://github.com/pytest-dev/pytest/issues -Description: .. image:: https://docs.pytest.org/en/stable/_static/pytest1.png - :target: https://docs.pytest.org/en/stable/ - :align: center - :alt: pytest - - - ------ - - .. image:: https://img.shields.io/pypi/v/pytest.svg - :target: https://pypi.org/project/pytest/ - - .. image:: https://img.shields.io/conda/vn/conda-forge/pytest.svg - :target: https://anaconda.org/conda-forge/pytest - - .. image:: https://img.shields.io/pypi/pyversions/pytest.svg - :target: https://pypi.org/project/pytest/ - - .. image:: https://codecov.io/gh/pytest-dev/pytest/branch/master/graph/badge.svg - :target: https://codecov.io/gh/pytest-dev/pytest - :alt: Code coverage Status - - .. image:: https://travis-ci.org/pytest-dev/pytest.svg?branch=master - :target: https://travis-ci.org/pytest-dev/pytest - - .. image:: https://github.com/pytest-dev/pytest/workflows/main/badge.svg - :target: https://github.com/pytest-dev/pytest/actions?query=workflow%3Amain - - .. image:: https://img.shields.io/badge/code%20style-black-000000.svg - :target: https://github.com/psf/black - - .. image:: https://www.codetriage.com/pytest-dev/pytest/badges/users.svg - :target: https://www.codetriage.com/pytest-dev/pytest - - .. image:: https://readthedocs.org/projects/pytest/badge/?version=latest - :target: https://pytest.readthedocs.io/en/latest/?badge=latest - :alt: Documentation Status - - The ``pytest`` framework makes it easy to write small tests, yet - scales to support complex functional testing for applications and libraries. - - An example of a simple test: - - .. code-block:: python - - # content of test_sample.py - def inc(x): - return x + 1 - - - def test_answer(): - assert inc(3) == 5 - - - To execute it:: - - $ pytest - ============================= test session starts ============================= - collected 1 items - - test_sample.py F - - ================================== FAILURES =================================== - _________________________________ test_answer _________________________________ - - def test_answer(): - > assert inc(3) == 5 - E assert 4 == 5 - E + where 4 = inc(3) - - test_sample.py:5: AssertionError - ========================== 1 failed in 0.04 seconds =========================== - - - Due to ``pytest``'s detailed assertion introspection, only plain ``assert`` statements are used. See `getting-started `_ for more examples. - - - Features - -------- - - - Detailed info on failing `assert statements `_ (no need to remember ``self.assert*`` names) - - - `Auto-discovery - `_ - of test modules and functions - - - `Modular fixtures `_ for - managing small or parametrized long-lived test resources - - - Can run `unittest `_ (or trial), - `nose `_ test suites out of the box - - - Python 3.5+ and PyPy3 - - - Rich plugin architecture, with over 850+ `external plugins `_ and thriving community - - - Documentation - ------------- - - For full documentation, including installation, tutorials and PDF documents, please see https://docs.pytest.org/en/stable/. - - - Bugs/Requests - ------------- - - Please use the `GitHub issue tracker `_ to submit bugs or request features. - - - Changelog - --------- - - Consult the `Changelog `__ page for fixes and enhancements of each version. - - - Support pytest - -------------- - - `Open Collective`_ is an online funding platform for open and transparent communities. - It provides tools to raise money and share your finances in full transparency. - - It is the platform of choice for individuals and companies that want to make one-time or - monthly donations directly to the project. - - See more details in the `pytest collective`_. - - .. _Open Collective: https://opencollective.com - .. _pytest collective: https://opencollective.com/pytest - - - pytest for enterprise - --------------------- - - Available as part of the Tidelift Subscription. - - The maintainers of pytest and thousands of other packages are working with Tidelift to deliver commercial support and - maintenance for the open source dependencies you use to build your applications. - Save time, reduce risk, and improve code health, while paying the maintainers of the exact dependencies you use. - - `Learn more. `_ - - Security - ^^^^^^^^ - - pytest has never been associated with a security vulnerability, but in any case, to report a - security vulnerability please use the `Tidelift security contact `_. - Tidelift will coordinate the fix and disclosure. - - - License - ------- - - Copyright Holger Krekel and others, 2004-2020. - - Distributed under the terms of the `MIT`_ license, pytest is free and open source software. - - .. _`MIT`: https://github.com/pytest-dev/pytest/blob/master/LICENSE - -Keywords: test,unittest -Platform: unix -Platform: linux -Platform: osx -Platform: cygwin -Platform: win32 -Classifier: Development Status :: 6 - Mature -Classifier: Intended Audience :: Developers -Classifier: License :: OSI Approved :: MIT License -Classifier: Operating System :: MacOS :: MacOS X -Classifier: Operating System :: Microsoft :: Windows -Classifier: Operating System :: POSIX -Classifier: Programming Language :: Python :: 3 -Classifier: Programming Language :: Python :: 3 :: Only -Classifier: Programming Language :: Python :: 3.5 -Classifier: Programming Language :: Python :: 3.6 -Classifier: Programming Language :: Python :: 3.7 -Classifier: Programming Language :: Python :: 3.8 -Classifier: Programming Language :: Python :: 3.9 -Classifier: Topic :: Software Development :: Libraries -Classifier: Topic :: Software Development :: Testing -Classifier: Topic :: Utilities -Requires-Python: >=3.5 -Description-Content-Type: text/x-rst -Provides-Extra: checkqa_mypy -Provides-Extra: testing diff --git a/doc/en/announce/index.rst b/doc/en/announce/index.rst index bda389c..f0e4410 100644 --- a/doc/en/announce/index.rst +++ b/doc/en/announce/index.rst @@ -6,6 +6,7 @@ Release announcements :maxdepth: 2 + release-6.1.2 release-6.1.1 release-6.1.0 release-6.0.2 diff --git a/doc/en/announce/release-6.1.2.rst b/doc/en/announce/release-6.1.2.rst new file mode 100644 index 0000000..aa2c809 --- /dev/null +++ b/doc/en/announce/release-6.1.2.rst @@ -0,0 +1,22 @@ +pytest-6.1.2 +======================================= + +pytest 6.1.2 has just been released to PyPI. + +This is a bug-fix release, being a drop-in replacement. To upgrade:: + + pip install --upgrade pytest + +The full changelog is available at https://docs.pytest.org/en/stable/changelog.html. + +Thanks to all of the contributors to this release: + +* Bruno Oliveira +* Manuel Mariñez +* Ran Benita +* Vasilis Gerakaris +* William Jamir Silva + + +Happy testing, +The pytest Development Team diff --git a/doc/en/changelog.rst b/doc/en/changelog.rst index 2a26b5c..8897ece 100644 --- a/doc/en/changelog.rst +++ b/doc/en/changelog.rst @@ -28,6 +28,25 @@ with advance notice in the **Deprecations** section of releases. .. towncrier release notes start +pytest 6.1.2 (2020-10-28) +========================= + +Bug Fixes +--------- + +- `#7758 `_: Fixed an issue where some files in packages are getting lost from ``--lf`` even though they contain tests that failed. Regressed in pytest 5.4.0. + + +- `#7911 `_: Directories created by `tmpdir` are now considered stale after 3 days without modification (previous value was 3 hours) to avoid deleting directories still in use in long running test suites. + + + +Improved Documentation +---------------------- + +- `#7815 `_: Improve deprecation warning message for ``pytest._fillfuncargs()``. + + pytest 6.1.1 (2020-10-03) ========================= diff --git a/doc/en/getting-started.rst b/doc/en/getting-started.rst index 5a5f0fa..3e4cdaf 100644 --- a/doc/en/getting-started.rst +++ b/doc/en/getting-started.rst @@ -28,7 +28,7 @@ Install ``pytest`` .. code-block:: bash $ pytest --version - pytest 6.1.1 + pytest 6.1.2 .. _`simpletest`: diff --git a/doc/en/reference.rst b/doc/en/reference.rst index d1540a8..15d8250 100644 --- a/doc/en/reference.rst +++ b/doc/en/reference.rst @@ -1236,12 +1236,13 @@ passed multiple times. The expected format is ``name=value``. For example:: .. confval:: junit_family .. versionadded:: 4.2 + .. versionchanged:: 6.1 + Default changed to ``xunit2``. Configures the format of the generated JUnit XML file. The possible options are: - * ``xunit1`` (or ``legacy``): produces old style output, compatible with the xunit 1.0 format. **This is the default**. - * ``xunit2``: produces `xunit 2.0 style output `__, - which should be more compatible with latest Jenkins versions. + * ``xunit1`` (or ``legacy``): produces old style output, compatible with the xunit 1.0 format. + * ``xunit2``: produces `xunit 2.0 style output `__, which should be more compatible with latest Jenkins versions. **This is the default**. .. code-block:: ini diff --git a/setup.cfg b/setup.cfg index 60f6564..f4170f1 100644 --- a/setup.cfg +++ b/setup.cfg @@ -8,71 +8,71 @@ author = Holger Krekel, Bruno Oliveira, Ronny Pfannschmidt, Floris Bruynooghe, B license = MIT license_file = LICENSE platforms = unix, linux, osx, cygwin, win32 -classifiers = - Development Status :: 6 - Mature - Intended Audience :: Developers - License :: OSI Approved :: MIT License - Operating System :: MacOS :: MacOS X - Operating System :: Microsoft :: Windows - Operating System :: POSIX - Programming Language :: Python :: 3 - Programming Language :: Python :: 3 :: Only - Programming Language :: Python :: 3.5 - Programming Language :: Python :: 3.6 - Programming Language :: Python :: 3.7 - Programming Language :: Python :: 3.8 - Programming Language :: Python :: 3.9 - Topic :: Software Development :: Libraries - Topic :: Software Development :: Testing - Topic :: Utilities +classifiers = + Development Status :: 6 - Mature + Intended Audience :: Developers + License :: OSI Approved :: MIT License + Operating System :: MacOS :: MacOS X + Operating System :: Microsoft :: Windows + Operating System :: POSIX + Programming Language :: Python :: 3 + Programming Language :: Python :: 3 :: Only + Programming Language :: Python :: 3.5 + Programming Language :: Python :: 3.6 + Programming Language :: Python :: 3.7 + Programming Language :: Python :: 3.8 + Programming Language :: Python :: 3.9 + Topic :: Software Development :: Libraries + Topic :: Software Development :: Testing + Topic :: Utilities keywords = test, unittest -project_urls = - Source=https://github.com/pytest-dev/pytest - Tracker=https://github.com/pytest-dev/pytest/issues +project_urls = + Source=https://github.com/pytest-dev/pytest + Tracker=https://github.com/pytest-dev/pytest/issues [options] -packages = - _pytest - _pytest._code - _pytest._io - _pytest.assertion - _pytest.config - _pytest.mark - pytest -install_requires = - attrs>=17.4.0 - iniconfig - packaging - pluggy>=0.12,<1.0 - py>=1.8.2 - toml - atomicwrites>=1.0;sys_platform=="win32" - colorama;sys_platform=="win32" - importlib-metadata>=0.12;python_version<"3.8" - pathlib2>=2.2.0;python_version<"3.6" +packages = + _pytest + _pytest._code + _pytest._io + _pytest.assertion + _pytest.config + _pytest.mark + pytest +install_requires = + attrs>=17.4.0 + iniconfig + packaging + pluggy>=0.12,<1.0 + py>=1.8.2 + toml + atomicwrites>=1.0;sys_platform=="win32" + colorama;sys_platform=="win32" + importlib-metadata>=0.12;python_version<"3.8" + pathlib2>=2.2.0;python_version<"3.6" python_requires = >=3.5 -package_dir = - =src -setup_requires = - setuptools>=40.0 - setuptools-scm +package_dir = + =src +setup_requires = + setuptools>=40.0 + setuptools-scm zip_safe = no [options.entry_points] -console_scripts = - pytest=pytest:console_main - py.test=pytest:console_main +console_scripts = + pytest=pytest:console_main + py.test=pytest:console_main [options.extras_require] -checkqa-mypy = - mypy==0.780 -testing = - argcomplete - hypothesis>=3.56 - mock - nose - requests - xmlschema +checkqa-mypy = + mypy==0.780 +testing = + argcomplete + hypothesis>=3.56 + mock + nose + requests + xmlschema [options.package_data] _pytest = py.typed @@ -87,8 +87,8 @@ all_files = 1 upload-dir = doc/en/build/html [check-manifest] -ignore = - src/_pytest/_version.py +ignore = + src/_pytest/_version.py [devpi:upload] formats = sdist.tgz,bdist_wheel @@ -106,8 +106,3 @@ warn_return_any = True warn_unreachable = True warn_unused_configs = True no_implicit_reexport = True - -[egg_info] -tag_build = -tag_date = 0 - diff --git a/src/_pytest/_version.py b/src/_pytest/_version.py deleted file mode 100644 index 04ffab6..0000000 --- a/src/_pytest/_version.py +++ /dev/null @@ -1,4 +0,0 @@ -# coding: utf-8 -# file generated by setuptools_scm -# don't change, don't track in version control -version = '6.1.1' diff --git a/src/_pytest/cacheprovider.py b/src/_pytest/cacheprovider.py index b04305e..e7c96ba 100755 --- a/src/_pytest/cacheprovider.py +++ b/src/_pytest/cacheprovider.py @@ -29,6 +29,7 @@ from _pytest.config.argparsing import Parser from _pytest.fixtures import FixtureRequest from _pytest.main import Session from _pytest.python import Module +from _pytest.python import Package from _pytest.reports import TestReport @@ -233,7 +234,10 @@ class LFPluginCollSkipfiles: def pytest_make_collect_report( self, collector: nodes.Collector ) -> Optional[CollectReport]: - if isinstance(collector, Module): + # Packages are Modules, but _last_failed_paths only contains + # test-bearing paths and doesn't try to include the paths of their + # packages, so don't filter them. + if isinstance(collector, Module) and not isinstance(collector, Package): if Path(str(collector.fspath)) not in self.lfplugin._last_failed_paths: self.lfplugin._skipped_files += 1 diff --git a/src/_pytest/deprecated.py b/src/_pytest/deprecated.py index ecdb60d..fd00fe2 100644 --- a/src/_pytest/deprecated.py +++ b/src/_pytest/deprecated.py @@ -20,9 +20,10 @@ DEPRECATED_EXTERNAL_PLUGINS = { } -FILLFUNCARGS = PytestDeprecationWarning( - "The `_fillfuncargs` function is deprecated, use " - "function._request._fillfixtures() instead if you cannot avoid reaching into internals." +FILLFUNCARGS = UnformattedWarning( + PytestDeprecationWarning, + "{name} is deprecated, use " + "function._request._fillfixtures() instead if you cannot avoid reaching into internals.", ) PYTEST_COLLECT_MODULE = UnformattedWarning( diff --git a/src/_pytest/fixtures.py b/src/_pytest/fixtures.py index f526f48..a299b2d 100644 --- a/src/_pytest/fixtures.py +++ b/src/_pytest/fixtures.py @@ -339,9 +339,22 @@ def reorder_items_atscope( return items_done +def _fillfuncargs(function: "Function") -> None: + """Fill missing fixtures for a test function, old public API (deprecated).""" + warnings.warn(FILLFUNCARGS.format(name="pytest._fillfuncargs()"), stacklevel=2) + _fill_fixtures_impl(function) + + def fillfixtures(function: "Function") -> None: - """Fill missing funcargs for a test function.""" - warnings.warn(FILLFUNCARGS, stacklevel=2) + """Fill missing fixtures for a test function (deprecated).""" + warnings.warn( + FILLFUNCARGS.format(name="_pytest.fixtures.fillfixtures()"), stacklevel=2 + ) + _fill_fixtures_impl(function) + + +def _fill_fixtures_impl(function: "Function") -> None: + """Internal implementation to fill fixtures on the given function object.""" try: request = function._request except AttributeError: diff --git a/src/_pytest/pathlib.py b/src/_pytest/pathlib.py index 3552810..dda86d6 100644 --- a/src/_pytest/pathlib.py +++ b/src/_pytest/pathlib.py @@ -38,7 +38,7 @@ else: __all__ = ["Path", "PurePath"] -LOCK_TIMEOUT = 60 * 60 * 3 +LOCK_TIMEOUT = 60 * 60 * 24 * 3 _AnyPurePath = TypeVar("_AnyPurePath", bound=PurePath) diff --git a/src/pytest.egg-info/PKG-INFO b/src/pytest.egg-info/PKG-INFO deleted file mode 100644 index 9a387bf..0000000 --- a/src/pytest.egg-info/PKG-INFO +++ /dev/null @@ -1,192 +0,0 @@ -Metadata-Version: 2.1 -Name: pytest -Version: 6.1.1 -Summary: pytest: simple powerful testing with Python -Home-page: https://docs.pytest.org/en/latest/ -Author: Holger Krekel, Bruno Oliveira, Ronny Pfannschmidt, Floris Bruynooghe, Brianna Laugher, Florian Bruhin and others -License: MIT -Project-URL: Source, https://github.com/pytest-dev/pytest -Project-URL: Tracker, https://github.com/pytest-dev/pytest/issues -Description: .. image:: https://docs.pytest.org/en/stable/_static/pytest1.png - :target: https://docs.pytest.org/en/stable/ - :align: center - :alt: pytest - - - ------ - - .. image:: https://img.shields.io/pypi/v/pytest.svg - :target: https://pypi.org/project/pytest/ - - .. image:: https://img.shields.io/conda/vn/conda-forge/pytest.svg - :target: https://anaconda.org/conda-forge/pytest - - .. image:: https://img.shields.io/pypi/pyversions/pytest.svg - :target: https://pypi.org/project/pytest/ - - .. image:: https://codecov.io/gh/pytest-dev/pytest/branch/master/graph/badge.svg - :target: https://codecov.io/gh/pytest-dev/pytest - :alt: Code coverage Status - - .. image:: https://travis-ci.org/pytest-dev/pytest.svg?branch=master - :target: https://travis-ci.org/pytest-dev/pytest - - .. image:: https://github.com/pytest-dev/pytest/workflows/main/badge.svg - :target: https://github.com/pytest-dev/pytest/actions?query=workflow%3Amain - - .. image:: https://img.shields.io/badge/code%20style-black-000000.svg - :target: https://github.com/psf/black - - .. image:: https://www.codetriage.com/pytest-dev/pytest/badges/users.svg - :target: https://www.codetriage.com/pytest-dev/pytest - - .. image:: https://readthedocs.org/projects/pytest/badge/?version=latest - :target: https://pytest.readthedocs.io/en/latest/?badge=latest - :alt: Documentation Status - - The ``pytest`` framework makes it easy to write small tests, yet - scales to support complex functional testing for applications and libraries. - - An example of a simple test: - - .. code-block:: python - - # content of test_sample.py - def inc(x): - return x + 1 - - - def test_answer(): - assert inc(3) == 5 - - - To execute it:: - - $ pytest - ============================= test session starts ============================= - collected 1 items - - test_sample.py F - - ================================== FAILURES =================================== - _________________________________ test_answer _________________________________ - - def test_answer(): - > assert inc(3) == 5 - E assert 4 == 5 - E + where 4 = inc(3) - - test_sample.py:5: AssertionError - ========================== 1 failed in 0.04 seconds =========================== - - - Due to ``pytest``'s detailed assertion introspection, only plain ``assert`` statements are used. See `getting-started `_ for more examples. - - - Features - -------- - - - Detailed info on failing `assert statements `_ (no need to remember ``self.assert*`` names) - - - `Auto-discovery - `_ - of test modules and functions - - - `Modular fixtures `_ for - managing small or parametrized long-lived test resources - - - Can run `unittest `_ (or trial), - `nose `_ test suites out of the box - - - Python 3.5+ and PyPy3 - - - Rich plugin architecture, with over 850+ `external plugins `_ and thriving community - - - Documentation - ------------- - - For full documentation, including installation, tutorials and PDF documents, please see https://docs.pytest.org/en/stable/. - - - Bugs/Requests - ------------- - - Please use the `GitHub issue tracker `_ to submit bugs or request features. - - - Changelog - --------- - - Consult the `Changelog `__ page for fixes and enhancements of each version. - - - Support pytest - -------------- - - `Open Collective`_ is an online funding platform for open and transparent communities. - It provides tools to raise money and share your finances in full transparency. - - It is the platform of choice for individuals and companies that want to make one-time or - monthly donations directly to the project. - - See more details in the `pytest collective`_. - - .. _Open Collective: https://opencollective.com - .. _pytest collective: https://opencollective.com/pytest - - - pytest for enterprise - --------------------- - - Available as part of the Tidelift Subscription. - - The maintainers of pytest and thousands of other packages are working with Tidelift to deliver commercial support and - maintenance for the open source dependencies you use to build your applications. - Save time, reduce risk, and improve code health, while paying the maintainers of the exact dependencies you use. - - `Learn more. `_ - - Security - ^^^^^^^^ - - pytest has never been associated with a security vulnerability, but in any case, to report a - security vulnerability please use the `Tidelift security contact `_. - Tidelift will coordinate the fix and disclosure. - - - License - ------- - - Copyright Holger Krekel and others, 2004-2020. - - Distributed under the terms of the `MIT`_ license, pytest is free and open source software. - - .. _`MIT`: https://github.com/pytest-dev/pytest/blob/master/LICENSE - -Keywords: test,unittest -Platform: unix -Platform: linux -Platform: osx -Platform: cygwin -Platform: win32 -Classifier: Development Status :: 6 - Mature -Classifier: Intended Audience :: Developers -Classifier: License :: OSI Approved :: MIT License -Classifier: Operating System :: MacOS :: MacOS X -Classifier: Operating System :: Microsoft :: Windows -Classifier: Operating System :: POSIX -Classifier: Programming Language :: Python :: 3 -Classifier: Programming Language :: Python :: 3 :: Only -Classifier: Programming Language :: Python :: 3.5 -Classifier: Programming Language :: Python :: 3.6 -Classifier: Programming Language :: Python :: 3.7 -Classifier: Programming Language :: Python :: 3.8 -Classifier: Programming Language :: Python :: 3.9 -Classifier: Topic :: Software Development :: Libraries -Classifier: Topic :: Software Development :: Testing -Classifier: Topic :: Utilities -Requires-Python: >=3.5 -Description-Content-Type: text/x-rst -Provides-Extra: checkqa_mypy -Provides-Extra: testing diff --git a/src/pytest.egg-info/SOURCES.txt b/src/pytest.egg-info/SOURCES.txt deleted file mode 100644 index 98acdd0..0000000 --- a/src/pytest.egg-info/SOURCES.txt +++ /dev/null @@ -1,500 +0,0 @@ -.coveragerc -.gitattributes -.gitblameignore -.gitignore -.pre-commit-config.yaml -.readthedocs.yml -.travis.yml -AUTHORS -CHANGELOG.rst -CITATION -CODE_OF_CONDUCT.md -CONTRIBUTING.rst -LICENSE -OPENCOLLECTIVE.rst -README.rst -RELEASING.rst -TIDELIFT.rst -codecov.yml -pyproject.toml -setup.cfg -setup.py -tox.ini -.github/FUNDING.yml -.github/PULL_REQUEST_TEMPLATE.md -.github/config.yml -.github/labels.toml -.github/ISSUE_TEMPLATE/1_bug_report.md -.github/ISSUE_TEMPLATE/2_feature_request.md -.github/ISSUE_TEMPLATE/config.yml -.github/workflows/main.yml -.github/workflows/release-on-comment.yml -bench/bench.py -bench/bench_argcomplete.py -bench/empty.py -bench/manyparam.py -bench/skip.py -changelog/README.rst -changelog/_template.rst -doc/en/Makefile -doc/en/adopt.rst -doc/en/assert.rst -doc/en/backwards-compatibility.rst -doc/en/bash-completion.rst -doc/en/builtin.rst -doc/en/cache.rst -doc/en/capture.rst -doc/en/changelog.rst -doc/en/conf.py -doc/en/conftest.py -doc/en/contact.rst -doc/en/contents.rst -doc/en/contributing.rst -doc/en/customize.rst -doc/en/deprecations.rst -doc/en/development_guide.rst -doc/en/doctest.rst -doc/en/existingtestsuite.rst -doc/en/fixture.rst -doc/en/flaky.rst -doc/en/funcarg_compare.rst -doc/en/funcargs.rst -doc/en/getting-started.rst -doc/en/goodpractices.rst -doc/en/historical-notes.rst -doc/en/index.rst -doc/en/license.rst -doc/en/logging.rst -doc/en/mark.rst -doc/en/monkeypatch.rst -doc/en/naming20.rst -doc/en/nose.rst -doc/en/parametrize.rst -doc/en/plugins.rst -doc/en/projects.rst -doc/en/py27-py34-deprecation.rst -doc/en/pytest.ini -doc/en/pythonpath.rst -doc/en/recwarn.rst -doc/en/reference.rst -doc/en/requirements.txt -doc/en/skipping.rst -doc/en/sponsor.rst -doc/en/talks.rst -doc/en/tidelift.rst -doc/en/tmpdir.rst -doc/en/unittest.rst -doc/en/usage.rst -doc/en/warnings.rst -doc/en/writing_plugins.rst -doc/en/xunit_setup.rst -doc/en/yieldfixture.rst -doc/en/_templates/globaltoc.html -doc/en/_templates/layout.html -doc/en/_templates/links.html -doc/en/_templates/relations.html -doc/en/_templates/sidebarintro.html -doc/en/_templates/slim_searchbox.html -doc/en/announce/index.rst -doc/en/announce/release-2.0.0.rst -doc/en/announce/release-2.0.1.rst -doc/en/announce/release-2.0.2.rst -doc/en/announce/release-2.0.3.rst -doc/en/announce/release-2.1.0.rst -doc/en/announce/release-2.1.1.rst -doc/en/announce/release-2.1.2.rst -doc/en/announce/release-2.1.3.rst -doc/en/announce/release-2.2.0.rst -doc/en/announce/release-2.2.1.rst -doc/en/announce/release-2.2.2.rst -doc/en/announce/release-2.2.4.rst -doc/en/announce/release-2.3.0.rst -doc/en/announce/release-2.3.1.rst -doc/en/announce/release-2.3.2.rst -doc/en/announce/release-2.3.3.rst -doc/en/announce/release-2.3.4.rst -doc/en/announce/release-2.3.5.rst -doc/en/announce/release-2.4.0.rst -doc/en/announce/release-2.4.1.rst -doc/en/announce/release-2.4.2.rst -doc/en/announce/release-2.5.0.rst -doc/en/announce/release-2.5.1.rst -doc/en/announce/release-2.5.2.rst -doc/en/announce/release-2.6.0.rst -doc/en/announce/release-2.6.1.rst -doc/en/announce/release-2.6.2.rst -doc/en/announce/release-2.6.3.rst -doc/en/announce/release-2.7.0.rst -doc/en/announce/release-2.7.1.rst -doc/en/announce/release-2.7.2.rst -doc/en/announce/release-2.8.2.rst -doc/en/announce/release-2.8.3.rst -doc/en/announce/release-2.8.4.rst -doc/en/announce/release-2.8.5.rst -doc/en/announce/release-2.8.6.rst -doc/en/announce/release-2.8.7.rst -doc/en/announce/release-2.9.0.rst -doc/en/announce/release-2.9.1.rst -doc/en/announce/release-2.9.2.rst -doc/en/announce/release-3.0.0.rst -doc/en/announce/release-3.0.1.rst -doc/en/announce/release-3.0.2.rst -doc/en/announce/release-3.0.3.rst -doc/en/announce/release-3.0.4.rst -doc/en/announce/release-3.0.5.rst -doc/en/announce/release-3.0.6.rst -doc/en/announce/release-3.0.7.rst -doc/en/announce/release-3.1.0.rst -doc/en/announce/release-3.1.1.rst -doc/en/announce/release-3.1.2.rst -doc/en/announce/release-3.1.3.rst -doc/en/announce/release-3.10.0.rst -doc/en/announce/release-3.10.1.rst -doc/en/announce/release-3.2.0.rst -doc/en/announce/release-3.2.1.rst -doc/en/announce/release-3.2.2.rst -doc/en/announce/release-3.2.3.rst -doc/en/announce/release-3.2.4.rst -doc/en/announce/release-3.2.5.rst -doc/en/announce/release-3.3.0.rst -doc/en/announce/release-3.3.1.rst -doc/en/announce/release-3.3.2.rst -doc/en/announce/release-3.4.0.rst -doc/en/announce/release-3.4.1.rst -doc/en/announce/release-3.4.2.rst -doc/en/announce/release-3.5.0.rst -doc/en/announce/release-3.5.1.rst -doc/en/announce/release-3.6.0.rst -doc/en/announce/release-3.6.1.rst -doc/en/announce/release-3.6.2.rst -doc/en/announce/release-3.6.3.rst -doc/en/announce/release-3.6.4.rst -doc/en/announce/release-3.7.0.rst -doc/en/announce/release-3.7.1.rst -doc/en/announce/release-3.7.2.rst -doc/en/announce/release-3.7.3.rst -doc/en/announce/release-3.7.4.rst -doc/en/announce/release-3.8.0.rst -doc/en/announce/release-3.8.1.rst -doc/en/announce/release-3.8.2.rst -doc/en/announce/release-3.9.0.rst -doc/en/announce/release-3.9.1.rst -doc/en/announce/release-3.9.2.rst -doc/en/announce/release-3.9.3.rst -doc/en/announce/release-4.0.0.rst -doc/en/announce/release-4.0.1.rst -doc/en/announce/release-4.0.2.rst -doc/en/announce/release-4.1.0.rst -doc/en/announce/release-4.1.1.rst -doc/en/announce/release-4.2.0.rst -doc/en/announce/release-4.2.1.rst -doc/en/announce/release-4.3.0.rst -doc/en/announce/release-4.3.1.rst -doc/en/announce/release-4.4.0.rst -doc/en/announce/release-4.4.1.rst -doc/en/announce/release-4.4.2.rst -doc/en/announce/release-4.5.0.rst -doc/en/announce/release-4.6.0.rst -doc/en/announce/release-4.6.1.rst -doc/en/announce/release-4.6.2.rst -doc/en/announce/release-4.6.3.rst -doc/en/announce/release-4.6.4.rst -doc/en/announce/release-4.6.5.rst -doc/en/announce/release-4.6.6.rst -doc/en/announce/release-4.6.7.rst -doc/en/announce/release-4.6.8.rst -doc/en/announce/release-4.6.9.rst -doc/en/announce/release-5.0.0.rst -doc/en/announce/release-5.0.1.rst -doc/en/announce/release-5.1.0.rst -doc/en/announce/release-5.1.1.rst -doc/en/announce/release-5.1.2.rst -doc/en/announce/release-5.1.3.rst -doc/en/announce/release-5.2.0.rst -doc/en/announce/release-5.2.1.rst -doc/en/announce/release-5.2.2.rst -doc/en/announce/release-5.2.3.rst -doc/en/announce/release-5.2.4.rst -doc/en/announce/release-5.3.0.rst -doc/en/announce/release-5.3.1.rst -doc/en/announce/release-5.3.2.rst -doc/en/announce/release-5.3.3.rst -doc/en/announce/release-5.3.4.rst -doc/en/announce/release-5.3.5.rst -doc/en/announce/release-5.4.0.rst -doc/en/announce/release-5.4.1.rst -doc/en/announce/release-5.4.2.rst -doc/en/announce/release-5.4.3.rst -doc/en/announce/release-6.0.0.rst -doc/en/announce/release-6.0.0rc1.rst -doc/en/announce/release-6.0.1.rst -doc/en/announce/release-6.0.2.rst -doc/en/announce/release-6.1.0.rst -doc/en/announce/release-6.1.1.rst -doc/en/announce/sprint2016.rst -doc/en/example/attic.rst -doc/en/example/conftest.py -doc/en/example/index.rst -doc/en/example/markers.rst -doc/en/example/multipython.py -doc/en/example/nonpython.rst -doc/en/example/parametrize.rst -doc/en/example/pythoncollection.py -doc/en/example/pythoncollection.rst -doc/en/example/reportingdemo.rst -doc/en/example/simple.rst -doc/en/example/special.rst -doc/en/example/xfail_demo.py -doc/en/example/assertion/failure_demo.py -doc/en/example/assertion/test_failures.py -doc/en/example/assertion/test_setup_flow_example.py -doc/en/example/assertion/global_testmodule_config/conftest.py -doc/en/example/assertion/global_testmodule_config/test_hello_world.py -doc/en/example/fixtures/test_fixtures_order.py -doc/en/example/nonpython/__init__.py -doc/en/example/nonpython/conftest.py -doc/en/example/nonpython/test_simple.yaml -doc/en/img/cramer2.png -doc/en/img/favicon.png -doc/en/img/freiburg2.jpg -doc/en/img/gaynor3.png -doc/en/img/keleshev.png -doc/en/img/pullrequest.png -doc/en/img/pylib.png -doc/en/img/pytest1.png -doc/en/img/theuni.png -doc/en/proposals/parametrize_with_fixtures.rst -extra/get_issues.py -extra/setup-py.test/setup.py -scripts/append_codecov_token.py -scripts/publish-gh-release-notes.py -scripts/release-on-comment.py -scripts/release.minor.rst -scripts/release.patch.rst -scripts/release.py -scripts/report-coverage.sh -scripts/towncrier-draft-to-file.py -src/_pytest/__init__.py -src/_pytest/_argcomplete.py -src/_pytest/_version.py -src/_pytest/cacheprovider.py -src/_pytest/capture.py -src/_pytest/compat.py -src/_pytest/debugging.py -src/_pytest/deprecated.py -src/_pytest/doctest.py -src/_pytest/faulthandler.py -src/_pytest/fixtures.py -src/_pytest/freeze_support.py -src/_pytest/helpconfig.py -src/_pytest/hookspec.py -src/_pytest/junitxml.py -src/_pytest/logging.py -src/_pytest/main.py -src/_pytest/monkeypatch.py -src/_pytest/nodes.py -src/_pytest/nose.py -src/_pytest/outcomes.py -src/_pytest/pastebin.py -src/_pytest/pathlib.py -src/_pytest/py.typed -src/_pytest/pytester.py -src/_pytest/python.py -src/_pytest/python_api.py -src/_pytest/recwarn.py -src/_pytest/reports.py -src/_pytest/runner.py -src/_pytest/setuponly.py -src/_pytest/setupplan.py -src/_pytest/skipping.py -src/_pytest/stepwise.py -src/_pytest/store.py -src/_pytest/terminal.py -src/_pytest/timing.py -src/_pytest/tmpdir.py -src/_pytest/unittest.py -src/_pytest/warning_types.py -src/_pytest/warnings.py -src/_pytest/_code/__init__.py -src/_pytest/_code/code.py -src/_pytest/_code/source.py -src/_pytest/_io/__init__.py -src/_pytest/_io/saferepr.py -src/_pytest/_io/terminalwriter.py -src/_pytest/_io/wcwidth.py -src/_pytest/assertion/__init__.py -src/_pytest/assertion/rewrite.py -src/_pytest/assertion/truncate.py -src/_pytest/assertion/util.py -src/_pytest/config/__init__.py -src/_pytest/config/argparsing.py -src/_pytest/config/exceptions.py -src/_pytest/config/findpaths.py -src/_pytest/mark/__init__.py -src/_pytest/mark/expression.py -src/_pytest/mark/structures.py -src/pytest/__init__.py -src/pytest/__main__.py -src/pytest/collect.py -src/pytest/py.typed -src/pytest.egg-info/PKG-INFO -src/pytest.egg-info/SOURCES.txt -src/pytest.egg-info/dependency_links.txt -src/pytest.egg-info/entry_points.txt -src/pytest.egg-info/not-zip-safe -src/pytest.egg-info/requires.txt -src/pytest.egg-info/top_level.txt -testing/acceptance_test.py -testing/conftest.py -testing/deprecated_test.py -testing/test_argcomplete.py -testing/test_assertion.py -testing/test_assertrewrite.py -testing/test_cacheprovider.py -testing/test_capture.py -testing/test_collection.py -testing/test_compat.py -testing/test_config.py -testing/test_conftest.py -testing/test_debugging.py -testing/test_doctest.py -testing/test_entry_points.py -testing/test_error_diffs.py -testing/test_faulthandler.py -testing/test_findpaths.py -testing/test_helpconfig.py -testing/test_junitxml.py -testing/test_link_resolve.py -testing/test_main.py -testing/test_mark.py -testing/test_mark_expression.py -testing/test_meta.py -testing/test_monkeypatch.py -testing/test_nodes.py -testing/test_nose.py -testing/test_parseopt.py -testing/test_pastebin.py -testing/test_pathlib.py -testing/test_pluginmanager.py -testing/test_pytester.py -testing/test_recwarn.py -testing/test_reports.py -testing/test_runner.py -testing/test_runner_xunit.py -testing/test_session.py -testing/test_setuponly.py -testing/test_setupplan.py -testing/test_skipping.py -testing/test_stepwise.py -testing/test_store.py -testing/test_terminal.py -testing/test_tmpdir.py -testing/test_unittest.py -testing/test_warning_types.py -testing/test_warnings.py -testing/typing_checks.py -testing/code/test_code.py -testing/code/test_excinfo.py -testing/code/test_source.py -testing/example_scripts/README.rst -testing/example_scripts/issue_519.py -testing/example_scripts/junit-10.xsd -testing/example_scripts/pytest.ini -testing/example_scripts/acceptance/fixture_mock_integration.py -testing/example_scripts/collect/collect_init_tests/pytest.ini -testing/example_scripts/collect/collect_init_tests/tests/__init__.py -testing/example_scripts/collect/collect_init_tests/tests/test_foo.py -testing/example_scripts/collect/package_infinite_recursion/__init__.pyi -testing/example_scripts/collect/package_infinite_recursion/conftest.py -testing/example_scripts/collect/package_infinite_recursion/tests/__init__.py -testing/example_scripts/collect/package_infinite_recursion/tests/test_basic.py -testing/example_scripts/collect/package_init_given_as_arg/pkg/__init__.py -testing/example_scripts/collect/package_init_given_as_arg/pkg/test_foo.py -testing/example_scripts/config/collect_pytest_prefix/__init__.pyi -testing/example_scripts/config/collect_pytest_prefix/conftest.py -testing/example_scripts/config/collect_pytest_prefix/test_foo.py -testing/example_scripts/conftest_usageerror/__init__.pyi -testing/example_scripts/conftest_usageerror/conftest.py -testing/example_scripts/dataclasses/test_compare_dataclasses.py -testing/example_scripts/dataclasses/test_compare_dataclasses_field_comparison_off.py -testing/example_scripts/dataclasses/test_compare_dataclasses_verbose.py -testing/example_scripts/dataclasses/test_compare_recursive_dataclasses.py -testing/example_scripts/dataclasses/test_compare_two_different_dataclasses.py -testing/example_scripts/fixtures/test_fixture_named_request.py -testing/example_scripts/fixtures/test_getfixturevalue_dynamic.py -testing/example_scripts/fixtures/custom_item/__init__.pyi -testing/example_scripts/fixtures/custom_item/conftest.py -testing/example_scripts/fixtures/custom_item/foo/__init__.py -testing/example_scripts/fixtures/custom_item/foo/test_foo.py -testing/example_scripts/fixtures/fill_fixtures/test_detect_recursive_dependency_error.py -testing/example_scripts/fixtures/fill_fixtures/test_extend_fixture_module_class.py -testing/example_scripts/fixtures/fill_fixtures/test_funcarg_basic.py -testing/example_scripts/fixtures/fill_fixtures/test_funcarg_lookup_classlevel.py -testing/example_scripts/fixtures/fill_fixtures/test_funcarg_lookup_modulelevel.py -testing/example_scripts/fixtures/fill_fixtures/test_funcarg_lookupfails.py -testing/example_scripts/fixtures/fill_fixtures/test_conftest_funcargs_only_available_in_subdir/sub1/__init__.py -testing/example_scripts/fixtures/fill_fixtures/test_conftest_funcargs_only_available_in_subdir/sub1/conftest.py -testing/example_scripts/fixtures/fill_fixtures/test_conftest_funcargs_only_available_in_subdir/sub1/test_in_sub1.py -testing/example_scripts/fixtures/fill_fixtures/test_conftest_funcargs_only_available_in_subdir/sub2/__init__.py -testing/example_scripts/fixtures/fill_fixtures/test_conftest_funcargs_only_available_in_subdir/sub2/conftest.py -testing/example_scripts/fixtures/fill_fixtures/test_conftest_funcargs_only_available_in_subdir/sub2/test_in_sub2.py -testing/example_scripts/fixtures/fill_fixtures/test_extend_fixture_conftest_conftest/__init__.pyi -testing/example_scripts/fixtures/fill_fixtures/test_extend_fixture_conftest_conftest/conftest.py -testing/example_scripts/fixtures/fill_fixtures/test_extend_fixture_conftest_conftest/pkg/__init__.py -testing/example_scripts/fixtures/fill_fixtures/test_extend_fixture_conftest_conftest/pkg/conftest.py -testing/example_scripts/fixtures/fill_fixtures/test_extend_fixture_conftest_conftest/pkg/test_spam.py -testing/example_scripts/fixtures/fill_fixtures/test_extend_fixture_conftest_module/__init__.pyi -testing/example_scripts/fixtures/fill_fixtures/test_extend_fixture_conftest_module/conftest.py -testing/example_scripts/fixtures/fill_fixtures/test_extend_fixture_conftest_module/test_extend_fixture_conftest_module.py -testing/example_scripts/issue88_initial_file_multinodes/__init__.pyi -testing/example_scripts/issue88_initial_file_multinodes/conftest.py -testing/example_scripts/issue88_initial_file_multinodes/test_hello.py -testing/example_scripts/marks/marks_considered_keywords/__init__.pyi -testing/example_scripts/marks/marks_considered_keywords/conftest.py -testing/example_scripts/marks/marks_considered_keywords/test_marks_as_keywords.py -testing/example_scripts/perf_examples/collect_stats/.gitignore -testing/example_scripts/perf_examples/collect_stats/generate_folders.py -testing/example_scripts/perf_examples/collect_stats/template_test.py -testing/example_scripts/tmpdir/tmpdir_fixture.py -testing/example_scripts/unittest/test_parametrized_fixture_error_message.py -testing/example_scripts/unittest/test_setup_skip.py -testing/example_scripts/unittest/test_setup_skip_class.py -testing/example_scripts/unittest/test_setup_skip_module.py -testing/example_scripts/unittest/test_unittest_asyncio.py -testing/example_scripts/unittest/test_unittest_asynctest.py -testing/example_scripts/unittest/test_unittest_plain_async.py -testing/example_scripts/warnings/test_group_warnings_by_message.py -testing/example_scripts/warnings/test_group_warnings_by_message_summary/test_1.py -testing/example_scripts/warnings/test_group_warnings_by_message_summary/test_2.py -testing/examples/test_issue519.py -testing/freeze/.gitignore -testing/freeze/create_executable.py -testing/freeze/runtests_script.py -testing/freeze/tox_run.py -testing/freeze/tests/test_doctest.txt -testing/freeze/tests/test_trivial.py -testing/io/test_saferepr.py -testing/io/test_terminalwriter.py -testing/io/test_wcwidth.py -testing/logging/test_fixture.py -testing/logging/test_formatter.py -testing/logging/test_reporting.py -testing/plugins_integration/.gitignore -testing/plugins_integration/README.rst -testing/plugins_integration/bdd_wallet.feature -testing/plugins_integration/bdd_wallet.py -testing/plugins_integration/django_settings.py -testing/plugins_integration/pytest.ini -testing/plugins_integration/pytest_anyio_integration.py -testing/plugins_integration/pytest_asyncio_integration.py -testing/plugins_integration/pytest_mock_integration.py -testing/plugins_integration/pytest_trio_integration.py -testing/plugins_integration/pytest_twisted_integration.py -testing/plugins_integration/simple_integration.py -testing/python/approx.py -testing/python/collect.py -testing/python/fixtures.py -testing/python/integration.py -testing/python/metafunc.py -testing/python/raises.py -testing/python/show_fixtures_per_test.py \ No newline at end of file diff --git a/src/pytest.egg-info/dependency_links.txt b/src/pytest.egg-info/dependency_links.txt deleted file mode 100644 index 8b13789..0000000 --- a/src/pytest.egg-info/dependency_links.txt +++ /dev/null @@ -1 +0,0 @@ - diff --git a/src/pytest.egg-info/entry_points.txt b/src/pytest.egg-info/entry_points.txt deleted file mode 100644 index 0267c75..0000000 --- a/src/pytest.egg-info/entry_points.txt +++ /dev/null @@ -1,4 +0,0 @@ -[console_scripts] -py.test = pytest:console_main -pytest = pytest:console_main - diff --git a/src/pytest.egg-info/not-zip-safe b/src/pytest.egg-info/not-zip-safe deleted file mode 100644 index 8b13789..0000000 --- a/src/pytest.egg-info/not-zip-safe +++ /dev/null @@ -1 +0,0 @@ - diff --git a/src/pytest.egg-info/requires.txt b/src/pytest.egg-info/requires.txt deleted file mode 100644 index bc1844a..0000000 --- a/src/pytest.egg-info/requires.txt +++ /dev/null @@ -1,27 +0,0 @@ -attrs>=17.4.0 -iniconfig -packaging -pluggy<1.0,>=0.12 -py>=1.8.2 -toml - -[:python_version < "3.6"] -pathlib2>=2.2.0 - -[:python_version < "3.8"] -importlib-metadata>=0.12 - -[:sys_platform == "win32"] -atomicwrites>=1.0 -colorama - -[checkqa_mypy] -mypy==0.780 - -[testing] -argcomplete -hypothesis>=3.56 -mock -nose -requests -xmlschema diff --git a/src/pytest.egg-info/top_level.txt b/src/pytest.egg-info/top_level.txt deleted file mode 100644 index e94857a..0000000 --- a/src/pytest.egg-info/top_level.txt +++ /dev/null @@ -1,2 +0,0 @@ -_pytest -pytest diff --git a/src/pytest/__init__.py b/src/pytest/__init__.py index c4c2819..a9c1ee0 100644 --- a/src/pytest/__init__.py +++ b/src/pytest/__init__.py @@ -11,7 +11,7 @@ from _pytest.config import hookspec from _pytest.config import main from _pytest.config import UsageError from _pytest.debugging import pytestPDB as __pytestPDB -from _pytest.fixtures import fillfixtures as _fillfuncargs +from _pytest.fixtures import _fillfuncargs from _pytest.fixtures import fixture from _pytest.fixtures import FixtureLookupError from _pytest.fixtures import yield_fixture diff --git a/testing/deprecated_test.py b/testing/deprecated_test.py index eb5d527..5fe9ad7 100644 --- a/testing/deprecated_test.py +++ b/testing/deprecated_test.py @@ -1,3 +1,4 @@ +import re import warnings from unittest import mock @@ -26,11 +27,27 @@ def test_external_plugins_integrated(testdir, plugin): def test_fillfuncargs_is_deprecated() -> None: with pytest.warns( pytest.PytestDeprecationWarning, - match="The `_fillfuncargs` function is deprecated", + match=re.escape( + "pytest._fillfuncargs() is deprecated, use " + "function._request._fillfixtures() instead if you cannot avoid reaching into internals." + ), ): pytest._fillfuncargs(mock.Mock()) +def test_fillfixtures_is_deprecated() -> None: + import _pytest.fixtures + + with pytest.warns( + pytest.PytestDeprecationWarning, + match=re.escape( + "_pytest.fixtures.fillfixtures() is deprecated, use " + "function._request._fillfixtures() instead if you cannot avoid reaching into internals." + ), + ): + _pytest.fixtures.fillfixtures(mock.Mock()) + + def test_minus_k_dash_is_deprecated(testdir) -> None: threepass = testdir.makepyfile( test_threepass=""" diff --git a/testing/python/fixtures.py b/testing/python/fixtures.py index 9ae5a91..67b7ad6 100644 --- a/testing/python/fixtures.py +++ b/testing/python/fixtures.py @@ -87,7 +87,7 @@ def test_getfuncargnames_staticmethod_partial(): class TestFillFixtures: def test_fillfuncargs_exposed(self): # used by oejskit, kept for compatibility - assert pytest._fillfuncargs == fixtures.fillfixtures + assert pytest._fillfuncargs == fixtures._fillfuncargs def test_funcarg_lookupfails(self, testdir): testdir.copy_example() diff --git a/testing/test_cacheprovider.py b/testing/test_cacheprovider.py index a911257..57b245c 100644 --- a/testing/test_cacheprovider.py +++ b/testing/test_cacheprovider.py @@ -984,6 +984,36 @@ class TestLastFailed: ) assert result.ret == 0 + def test_packages(self, testdir: Testdir) -> None: + """Regression test for #7758. + + The particular issue here was that Package nodes were included in the + filtering, being themselves Modules for the __init__.py, even if they + had failed Modules in them. + + The tests includes a test in an __init__.py file just to make sure the + fix doesn't somehow regress that, it is not critical for the issue. + """ + testdir.makepyfile( + **{ + "__init__.py": "", + "a/__init__.py": "def test_a_init(): assert False", + "a/test_one.py": "def test_1(): assert False", + "b/__init__.py": "", + "b/test_two.py": "def test_2(): assert False", + }, + ) + testdir.makeini( + """ + [pytest] + python_files = *.py + """ + ) + result = testdir.runpytest() + result.assert_outcomes(failed=3) + result = testdir.runpytest("--lf") + result.assert_outcomes(failed=3) + class TestNewFirst: def test_newfirst_usecase(self, testdir): -- 2.34.1