a511119358- update to 8.4.0: * #11372: Async tests will now fail, instead of warning+skipping, if you don't have any suitable plugin installed. * #12346: Tests will now fail, instead of raising a warning, if they return any value other than None. * #12874: We dropped support for Python 3.8 following its end of life (2024-10-07). * #12960: Test functions containing a yield now cause an explicit error. They have not been run since pytest 4.0, and were previously marked as an expected failure and deprecation warning. See :ref:the docs <yield tests deprecated> for more information. * #10839: Requesting an asynchronous fixture without a pytest_fixture_setup hook that resolves it will now give a DeprecationWarning. This most commonly happens if a sync test requests an async fixture. This should have no effect on a majority of users with async tests or fixtures using async pytest plugins, but may affect non-standard hook setups or autouse=True. For guidance on how to work around this warning see :ref:sync-test-async-fixture. * #11538: Added :class:pytest.RaisesGroup as an equivalent to :func:pytest.raises for expecting :exc:ExceptionGroup. Also adds :class:pytest.RaisesExc which is now the logic behind :func:pytest.raises and used as parameter to :class:pytest.RaisesGroup. RaisesGroup includes the ability to specify multiple different expected exceptions, the structure of nested exception groups, and flags for emulating :ref:except* <except_star>. See :ref:assert-matching- exception-groups and docstrings for more information.Dirk Mueller2025-06-10 11:19:50 +00:00
b63371537e- Update to 8.3.5 * Bug fixes - #11777: Fixed issue where sequences were still being shortened even with -vv verbosity. - #12888: Fixed broken input when using Python 3.13+ and a libedit build of Python, such as on macOS or with uv-managed Python binaries from the python-build- standalone project. This could manifest e.g. by a broken prompt when using Pdb, or seeing empty inputs with manual usage of input() and suspended capturing. - #13026: Fixed AttributeError{.interpreted-text role="class"} crash when using --import-mode=importlib when top-level directory same name as another module of the standard library. - #13053: Fixed a regression in pytest 8.3.4 where, when using --import-mode=importlib, a directory containing py file with the same name would cause an ImportError - #13083: Fixed issue where pytest could crash if one of the collected directories got removed during collection. * Improved documentation - #12842: Added dedicated page about using types with pytest. See types{.interpreted-text role="ref"} for detailed usage. * Contributor-facing changes - #13112: Fixed selftest failures in test_terminal.py with Pygments >= 2.19.0 - #13256: Support for Towncrier versions released in 2024 has been re-enabled when building Sphinx docs -- by webknjaz{.interpreted-text role="user"}. - Drop pygments.patch, because now in upstream.Markéta Machová2025-04-22 12:41:13 +00:00
3c55f3803fAccepting request 1235856 from devel:languages:python:pytestAna Guerrero2025-01-21 20:09:39 +00:00
0b41864294- Add upstream pygments.patch to fix compatibility with new PygmentsMatej Cepl2025-01-08 09:43:44 +00:00
626c961f3f- update to 8.3.4: * #12592: Fixed :class:KeyError crash when using --import- mode=importlib in a directory layout where a directory contains a child directory with the same name. * #12818: Assertion rewriting now preserves the source ranges of the original instructions, making it play well with tools that deal with the AST, like executing. * #12849: ANSI escape codes for colored output now handled correctly in :func:pytest.fail with pytrace=False. * #9353: :func:pytest.approx now uses strict equality when given booleans. * #10558: Fix ambiguous docstring of :func:pytest.Config.getoption. * #10829: Improve documentation on the current handling of the --basetemp option and its lack of retention functionality (:ref:temporary directory location and retention). * #12866: Improved cross-references concerning the :fixture:recwarn fixture. * #12966: Clarify :ref:filterwarnings docs on filter precedence/order when using multiple :ref:@pytest.mark.filterwarnings <pytest.mark.filterwarnings ref> marks. * #12497: Fixed two failing pdb-related tests on Python 3.13.Dirk Mueller2024-12-05 18:04:11 +00:00
1d1319161aAccepting request 1217929 from devel:languages:python:pytestAna Guerrero2024-10-25 17:18:44 +00:00
996feceb5e- update to 8.3.3: * #12446: Avoid calling @property (and other instance descriptors) during fixture discovery -- by :user:asottile * #12659: Fixed the issue of not displaying assertion failure differences when using the parameter --import-mode=importlib in pytest>=8.1. * #12667: Fixed a regression where type change in ExceptionInfo.errisinstance caused mypy to fail. * #12744: Fixed typing compatibility with Python 3.9 or less -- replaced typing.Self with typing_extensions.Self -- by :user:Avasam * #12745: Fixed an issue with backslashes being incorrectly converted in nodeid paths on Windows, ensuring consistent path handling across environments. * #6682: Fixed bug where the verbosity levels where not being respected when printing the "msg" part of failed assertion (as in assert condition, msg). * #9422: Fix bug where disabling the terminal plugin via -p no:terminal would cause crashes related to missing the verbose option. -- by :user:GTowers1 * #12663: Clarify that the pytest_deselected hook should be called from pytest_collection_modifyitems hook implementations when items are deselected. * #12678: Remove erroneous quotes from tmp_path_retention_policy example in docs. * #12769: Fix typos discovered by codespell and add codespell to pre-commit hooks.Dirk Mueller2024-10-24 07:24:23 +00:00
80d78a5c7e- update to 8.3.2: * Resolve regression where conda environments where no longer being automatically detected * Fix PermissionError crashes arising from directories which are not * Keyboard interrupts and system exits are now properly handled during * Fixed handling of 'Function not implemented' error under squashfuse_ll, * Fix a regression in pytest 8.2.0 where the permissions of automatically-created .pytest_cache directories became rwx------ * Fix possible catastrophic performance slowdown on a certain * Fix a regression in pytest 8.2.0 where unittest class instances were * Fix possible “Directory not empty” crashes arising from concurent cacheDirk Mueller2024-08-12 17:36:27 +00:00
fd7477cb5b- Update to 8.3.1: * New features + Added --xfail-tb flag, which turns on traceback output for XFAIL results. + Added support for keyword matching in marker expressions. + Added `--no-fold-skipped command line option. * Improvements + The console output now uses the "third-party plugins" terminology. + Python virtual environment detection was improved by checking for a pyvenv.cfg file + Do not truncate arguments to functions in output when running with -vvv. + The readability of assertion introspection of bound methods has been enhanced. + Added timezone information to the testsuite timestamp in the JUnit XML report. * Bug Fixes + Fixed reporting of teardown errors in higher-scoped fixtures when using --maxfail or --stepwise. + pytest.approx now correctly handles Sequence-like objects. + Fixed a regression in pytest 8.0 where tracebacks get longer and longer when multiple tests fail due to a shared higher-scope fixture which raised + Fixed collection error upon encountering an abstract class, including abstract unittest.TestCase subclasses. + Fixed a regression in pytest 8.0.0 where package-scoped parameterized items were not correctly reordered to minimize setups/teardowns in some cases. + Fixed crash with assert testcase is not None assertion failure when re-running unittest tests using plugins like pytest-rerunfailures. + Fixed a crash when returning category "error" or "failed"` withSteve Kowalik2024-07-23 04:34:32 +00:00
b5206c33c2Accepting request 1179873 from devel:languages:python:pytestAna Guerrero2024-06-21 14:02:42 +00:00
af97d57904- Add patch allow-re-run-regression.patch: * Fix regression in 8.2.2 that did not allow test case reruns.Steve Kowalik2024-06-11 03:04:12 +00:00
7984ab2439Accepting request 1179013 from home:mcalabkova:branches:devel:languages:python:pytestMatej Cepl2024-06-07 11:16:11 +00:00
dbd4f04da5- Update to 8.2.0: * A deprecation warning is now raised when implementations of one of the following hooks request a deprecated py.path.local parameter. * Added support for reading command line arguments from a file using the prefix character @. * Fixed a regression in pytest 8.0.0 where test classes containing setup_method and tests using @staticmethod or @classmethod would crash with AttributeError. * pluggy>=1.5.0 is now required. * Added PYTEST_VERSION environment variable which is defined at the start of the pytest session and undefined afterwards. * Improved namespace packages detection when consider_namespace_packages is enabled. * pytest.importorskip will now issue a warning if the module could be found, but raised ImportError. * Fixed error in pytest.approx when used with numpy arrays and comparing with other types. * Added the new consider_namespace_packages configuration option, defaulting to False. * Added the new verbosity_test_cases configuration option for fine-grained control of test execution verbosity. * --import-mode=importlib <import-mode-importlib> now tries to import modules using the standard import mechanism. * Added support for sys.last_exc for post-mortem debugging on Python>=3.12. * Fixed a regression in pytest 8.0.0 that would cause test collection to fail due to permission errors when using --pyargs. * Fix the stacklevel used when warning about marks used on fixtures. * Fix an edge case where ExceptionInfo._stringify_exception could crash. * Fix an IndexError crash raising from getstatementrange_ast. * PytestRemovedIn8Warning deprecation warnings are now errors by default.Steve Kowalik2024-05-06 05:25:02 +00:00
ec2dad8adcAccepting request 1147604 from devel:languages:python:pytestAna Guerrero2024-03-14 16:42:09 +00:00
7f32fb426aAccepting request 1147534 from devel:BCI:SLCS:nextMatej Cepl2024-02-19 14:29:02 +00:00
3301e576a4Accepting request 1136073 from devel:languages:python:pytestAna Guerrero2024-02-04 18:06:39 +00:00
b217aa53f2- update to 7.4.4: * Fix non-string constants at the top of file being detected as docstrings on Python>=3.8. * Handle an edge case where :data:sys.stderr and :data:sys.__stderr__ might already be closed when :ref:faulthandler is tearing down. * Fixed tracebacks from collection errors not getting pruned. * Removed unhelpful error message from assertion rewrite mechanism when exceptions are raised in `__iter__` methods. Now they are treated un-iterable instead.Dirk Mueller2024-01-02 08:25:33 +00:00
5992575bb9Accepting request 1123974 from devel:languages:python:pytestAna Guerrero2023-11-08 21:16:42 +00:00
17d2b5aa26- update to 7.4.3: * Markers are now considered in the reverse mro order to ensure base class markers are considered first -- this resolves a regression. * Fixed `:= in asserts impacting unrelated test cases. * Handled an edge case where :data:sys.stderr might already be closed when :ref:faulthandler` is tearing down.Dirk Mueller2023-11-07 12:04:03 +00:00
4630d85bf3Accepting request 1117662 from devel:languages:python:pytestAna Guerrero2023-10-15 17:25:54 +00:00
4d98e407c5Accepting request 1117634 from home:fcrozat:branches:devel:languages:python:pytestMatej Cepl2023-10-13 12:16:26 +00:00
1c7c37a658Accepting request 1112015 from devel:languages:python:pytestAna Guerrero2023-09-22 19:46:51 +00:00
b4622bb3a6- update to 7.4.2: * Fix doctest collection of functools.cached_property objects. * Fixed bug using `--importmode=importlib which would cause package __init__.py files to be imported more than once in some cases. * Fixed bug where user_properties` where not being saved in the JUnit XML file if a fixture failed during teardown. * Fixed crash when parsing long command line arguments that might be interpreted as files. * Improved Documentation * Improved disclaimer on pytest plugin reference page to better indicate this is an automated, non-curated listing. - drop fix-test-raising-repr.patch, fix-tests-pygments-2.14.0.patch: https://docs.pytest.org/en/7.1.x/changelog.html for details assert actual == pytest.approx(expected) * pytest used to create directories under /tmp with world-readable permissions. This means that any user in the system was able to read information written by tests in temporary directories (such as those created by the tmp_path/tmpdir fixture). Now the * #8152: Fixed "(<Skipped instance>)" being shown as a skip reason in the * #8249: Fix the faulthandler plugin for occasions when running with * The @pytest.yield_fixture decorator/function is now deprecated. * Verbose mode now shows the reason that a test was skipped in the * pytest now warns about unraisable exceptions and unhandled thread * New pytester fixture, which is identical to testdir but its methods * It is now possible to construct a MonkeyPatch object directly as pytest.MonkeyPatch(),Dirk Mueller2023-09-18 15:07:59 +00:00
9585d10b7cAccepting request 1111052 from devel:languages:python:pytestAna Guerrero2023-09-17 17:28:40 +00:00
0c1e0b01d9- update to 7.4.1: * Fixed bug where fake intermediate modules generated by `--import-mode=importlib would not include the child modules as attributes of the parent modules. * Fixed error assertion handling in :func:pytest.approx when None is an expected or received value when comparing dictionaries. * Fixed issue when using --import-mode=importlib together with --doctest- modules` that caused modules to be imported more than once, causing problems with modules that have import side effects.Dirk Mueller2023-09-07 08:56:31 +00:00
d408a413e7Accepting request 1100056 from devel:languages:python:pytestAna Guerrero2023-07-27 14:50:35 +00:00
bcd70373b1- update to 7.4.0: * Added :func:ExceptionInfo.from_exception() <pytest.ExceptionInfo.from_exception>, a simpler way to create an :class:~pytest.ExceptionInfo from an exception. This can replace :func:ExceptionInfo.from_exc_info() <pytest.ExceptionInfo.from_exc_info()> for most uses. * Update test log report annotation to named tuple and fixed inconsistency in docs for 🪝pytest_report_teststatus hook. * When an exception traceback to be displayed is completely filtered out (by mechanisms such as `__tracebackhide__, internal frames, and similar), now only the exception string and the following message are shown: "All traceback entries are hidden. Pass --full-trace to see hidden and internal frames.". * Improved verbose output (-vv) of skip and xfail reasons by performing text wrapping while leaving a clear margin for progress output. * Added TerminalReporter.wrap_write() as a helper for that. * Added handling of %f directive to print microseconds in log format options, such as log-date-format. * Added the underlying exception to the cache provider's path creation and write warning messages. * Added warning when :confval:testpaths` is set, but paths are not found by glob. In this case, pytest will fall back to searching from the current directory.Dirk Mueller2023-07-15 15:06:57 +00:00
f79ef73de4- update to 7.3.2: * Fix bug where very long option names could cause pytest to break with `OSError: [Errno 36] File name too long on some systems. * Support for Python 3.12 * honored to load root conftests. * The monkeypatchsetitem/delitem type annotations now allow TypedDict arguments. * Fixed bug in assertion rewriting where a variable assigned with the walrus operator could not be used later in a function call. * Fixed --last-failed's "(skipped N files)" functionality for files inside of packages (directories with __init__.py` files).Dirk Mueller2023-06-19 20:14:34 +00:00
5bf432e390- update to 7.3.1: * Python 3.12 support - update to 7.3.0: * --log-disable CLI option added to disable individual loggers. * Added tmp_path_retention_count and tmp_path_retention_policy configuration options to control how directories created by the tmp_path fixture are kept. * For list of omprovements and bugfixes, please read https://docs.pytest.org/en/stable/changelog.html#pytest-7-3-0-2023-04-08Dirk Mueller2023-05-04 23:28:15 +00:00
18316d2a99- update to 7.2.2: * Fixed :func:pytest.approx handling of dictionaries containing one or more values of 0.0. * Fixed crash if --cache-show and --help are passed at the same time. * Fixed bug where a fixture method named `teardown would be called as part of nose teardown stage. * Fixed crash if --fixtures and --help are passed at the same time. * Fixed :py:func:pytest.raises to return a 'ContextManager' so that type-checkers could narrow :code:pytest.raises(...) if ... else nullcontext()` down to 'ContextManager' rather than 'object'. * Fix 'importlib.abc.TraversableResources' deprecation warning in Python 3.12. * If a test is skipped from inside a fixture, the test summary now shows the test location instead of the fixture location. * Fix a race condition when creating junitxml reports, which could occur when multiple instances of pytest execute in parallel. * Fix a race condition when creating or updating the stepwise plugin's cache, which could occur when multiple xdist worker nodes try to simultaneously update the stepwise plugin's cache. - drop fix-test-raising-repr.patch, fix-tests-pygments-2.14.0.patch: merged upstreamDirk Mueller2023-05-04 23:06:15 +00:00
3cb666870c- Add fix-tests-pygments-2.14.0.patch to make it work with pygments 2.14.0 gh#pytest-dev/pytest#10632Daniel Garcia2023-01-04 10:17:29 +00:00
4f2e4b3c5b- Add fix-test-raising-repr.patch gh#pytest-dev/pytest#10473, this make it compatible with latest release of python-exceptiongroupDaniel Garcia2022-12-05 08:53:03 +00:00
e92f34a15e- Remove python_module macro definition - Update to 7.2.0: # Deprecations - #10012: Update pytest.PytestUnhandledCoroutineWarning{.interpreted-text role="class"} to a deprecation; it will raise an error in pytest 8. - #10396: pytest no longer depends on the py library. pytest provides a vendored copy of py.error and py.path modules but will use the py library if it is installed. If you need other py.* modules, continue to install the deprecated py library separately, otherwise it can usually be removed as a dependency. - #4562: Deprecate configuring hook specs/impls using attributes/marks. - Instead use :pypytest.hookimpl{.interpreted-text role="func"} and :pypytest.hookspec{.interpreted-text role="func"}. For more details, see the docs <legacy-path-hooks-deprecated>{.interpreted-text role="ref"}. - #9886: The functionality for running tests written for nose has been officially deprecated. This includes: * Plain setup and teardown functions and methods: this might catch users by surprise, as setup() and teardown() are not pytest idioms, but part of the nose support. * Setup/teardown using the @with_setup decorator. For more details, consult the deprecation docs <nose-deprecation>{.interpreted-text role="ref"}. # Features - #9897: Added shell-style wildcard support to testpaths. # Improvements - #10218: @pytest.mark.parametrize() (and similar functions) now accepts any Sequence[str] for the argument names, instead of just list[str] and tuple[str, ...].Daniel Garcia2022-11-29 13:20:25 +00:00
83b0a6b3e6- Rebase and re-add tidy-up-embeddedfile.patch, it was only partially merged upstream.Steve Kowalik2020-06-09 07:48:24 +00:00
2054858c86- update to 5.4.3 * Paths appearing in error messages are now correct in case the current working directory has changed since the start of the session. * Support deleting paths longer than 260 characters on windows created inside tmpdir. * Prevent pytest from printing ConftestImportFailure traceback to stdout. * Prevent hiding the underlying exception when ConfTestImportFailure is raised. * Fix regression where running with --pdb would call the tearDown methods of unittest.TestCase subclasses for skipped tests.Ondřej Súkup2020-06-05 09:05:35 +00:00
e5cc71706cAccepting request 802880 from devel:languages:python:pytestYuchen Lin2020-05-28 07:04:51 +00:00