python-pytest/python-pytest.spec

158 lines
5.0 KiB
RPMSpec
Raw Normal View History

#
# spec file
#
# Copyright (c) 2021 SUSE LLC
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
# upon. The license for this file, and modifications and additions to the
# file, is the same license as for the pristine package itself (unless the
# license for the pristine package is not an Open Source License, in which
# case the license is the MIT License). An "Open Source License" is a
# license that conforms to the Open Source Definition (Version 1.9)
# published by the Open Source Initiative.
Accepting request 636145 from home:mimi_vx:branches:devel:languages:python:pytest - update to 3.8.0 * Config.warn has been deprecated, it should be replaced by calls to the standard warnings.warn. * Node.warn now supports two signatures: + node.warn(PytestWarning("some message")): is now the recommended way to call this function. The warning instance must be a PytestWarning or subclass instance. + node.warn("CI", "some message"): this code/message form is now deprecated and should be converted to the warning instance form above. * RemovedInPytest4Warning and PytestExperimentalApiWarning are now part of the public API and should be accessed using pytest.RemovedInPytest4Warning and pytest.PytestExperimentalApiWarning. * @pytest.mark.filterwarnings second parameter is no longer regex-escaped, making it possible to actually use regular expressions to check the warning message. + Note: regex-escaping the match string was an implementation oversight that might break test suites which depend on the old behavior. * Internal pytest warnings are now issued using the standard warnings module, making it possible to use the standard warnings filters to manage those warnings. This introduces PytestWarning, PytestDeprecationWarning and RemovedInPytest4Warning warning types as part of the public API. * DeprecationWarning and PendingDeprecationWarning are now shown by default if no other warning filter is configured. This makes pytest more compliant with PEP-0506. See the docs for more info. * Warnings are now captured and displayed during test collection. * PYTEST_DISABLE_PLUGIN_AUTOLOAD environment variable disables plugin auto-loading when set. * Added the count option to console_output_style to enable displaying the progress as a count instead of a percentage. * Added support for ‘xfailed’ and ‘xpassed’ outcomes to the pytester.RunResult.assert_outcomes signature. OBS-URL: https://build.opensuse.org/request/show/636145 OBS-URL: https://build.opensuse.org/package/show/devel:languages:python:pytest/python-pytest?expand=0&rev=15
2018-09-17 11:46:23 +02:00
# Please submit bugfixes or comments via https://bugs.opensuse.org/
#
# https://build.opensuse.org/request/show/926611#comment-1560144
%bcond_with pytest_is_ready_for_alts
%if 0%{?suse_version} > 1500 && %{with pytest_is_ready_for_alts}
%bcond_without libalternatives
%else
%bcond_with libalternatives
%endif
%{?!python_module:%define python_module() python-%{**} python3-%{**}}
%global flavor @BUILD_FLAVOR@%{nil}
%if "%{flavor}" == "test"
%define psuffix -%{flavor}
%bcond_without test
%else
%define psuffix %{nil}
%bcond_with test
%endif
%define skip_python2 1
Name: python-pytest%{psuffix}
Version: 6.2.5
Release: 0
Summary: Simple powerful testing with Python
License: MIT
Accepting request 618559 from devel:languages:python:pytest - update to 3.6.2 - add python-mock to buildrequires - fix test command - add python_mock.patch to use stdlib mock library on py3 - Update to version 3.6.0 + Features * Revamp the internals of the ``pytest.mark`` implementation with correct per node handling which fixes a number of long standing bugs caused by the old design. This introduces new ``Node.iter_markers(name)`` and ``Node.get_closest_mark(name)`` APIs. Users are **strongly encouraged** to read the `reasons for the revamp in the docs <https://docs.pytest.org/en/latest/mark.html#marker-revamp-and-iteration>`_, or jump over to details about `updating existing code to use the new APIs <https://docs.pytest.org/en/latest/mark.html#updating-code>`_. (`#3317 <https://github.com/pytest-dev/pytest/issues/3317>`_) * Now when ``@pytest.fixture`` is applied more than once to the same function a ``ValueError`` is raised. This buggy behavior would cause surprising problems and if was working for a test suite it was mostly by accident. (`#2334 <https://github.com/pytest-dev/pytest/issues/2334>`_) * Support for Python 3.7's builtin ``breakpoint()`` method, see `Using the builtin breakpoint function <https://docs.pytest.org/en/latest/usage.html#breakpoint-builtin>`_ for details. (`#3180 <https://github.com/pytest-dev/pytest/issues/3180>`_) * ``monkeypatch`` now supports a ``context()`` function which acts as a context manager which undoes all patching done within the ``with`` block. (`#3290 <https://github.com/pytest-dev/pytest/issues/3290>`_) * The ``--pdb`` option now causes KeyboardInterrupt to enter the debugger, instead of stopping the test session. On python 2.7, hitting CTRL+C again exits the debugger. On python 3.2 and higher, use CTRL+D. (`#3299 OBS-URL: https://build.opensuse.org/request/show/618559 OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/python-pytest?expand=0&rev=37
2018-06-25 11:35:39 +02:00
URL: https://github.com/pytest-dev/pytest
2017-11-02 10:24:10 +01:00
Source: https://files.pythonhosted.org/packages/source/p/pytest/pytest-%{version}.tar.gz
# PATCH-FIX-UPSTREAM pytest-pr8664-py3.10-test_trial_error-fail.patch -- gh#pytest-dev/pytest#8664
Patch0: pytest-pr8664-py3.10-test_trial_error-fail.patch
# PATCH-FIX-UPSTREAM pytest-pr9173-importlib-py310.patch -- gh#pytest-dev/pytest#9173
Patch1: pytest-pr9173-importlib-py310.patch
# PATCH-FIX-UPSTREAM pytest-pr9417-py3.10.1-fail.patch -- gh#pytest-dev/pytest#9417
Patch2: pytest-pr9417-py3.10.1-fail.patch
BuildRequires: %{python_module setuptools >= 42.0}
2017-11-02 10:24:10 +01:00
BuildRequires: %{python_module setuptools_scm}
BuildRequires: %{python_module toml}
2017-11-02 10:24:10 +01:00
BuildRequires: fdupes
BuildRequires: python-rpm-macros >= 20210929
Requires: python-attrs >= 19.2.0
Requires: python-importlib-metadata >= 0.12
Requires: python-iniconfig
Requires: python-packaging
Requires: python-pluggy >= 0.12
Requires: python-py >= 1.8.2
Requires: python-setuptools
Requires: python-toml
Requires: python-wcwidth
%if %{with libalternatives}
Requires: alts
BuildRequires: alts
%else
Requires(post): update-alternatives
Requires(postun):update-alternatives
%endif
Obsoletes: python-pytest-doc
BuildArch: noarch
%if %{with test}
BuildRequires: %{python_module Jinja2}
BuildRequires: %{python_module Twisted}
BuildRequires: %{python_module decorator}
BuildRequires: %{python_module hypothesis >= 3.56}
# nose is really not REQUIRED, the test suite skips over particular
# tests, when the package is not available.
# BuildRequires: %%{python_module nose}
BuildRequires: %{python_module pexpect}
BuildRequires: %{python_module pygments-pytest}
BuildRequires: %{python_module pytest >= %{version}}
BuildRequires: %{python_module pytest-xdist}
BuildRequires: %{python_module requests}
BuildRequires: %{python_module xmlschema}
BuildRequires: lsof
BuildRequires: %{python_module numpy if (%python-base without python36-base)}
%endif
%if %{?python_version_nodots} < 36
Accepting request 627079 from home:mimi_vx:branches:devel:languages:python:pytest - update to 3.7.0 * pytest_namespace has been deprecated. * Calling a fixture function directly, as opposed to request them in a test function, now issues a RemovedInPytest4Warning. * New package fixture scope: fixtures are finalized when the last test of a package finishes. This feature is considered experimental, so use it sparingly. * Node.add_marker now supports an append=True/False parameter to determine whether the mark comes last (default) or first. * Fixture caplog now has a messages property, providing convenient access to the format-interpolated log messages without the extra data provided by the formatter/handler. * New --trace option to enter the debugger at the start of a test. * Introduce pytester.copy_example as helper to do acceptance tests against examples from the project. - update to 3.7.0 * pytest_namespace has been deprecated. * Calling a fixture function directly, as opposed to request them in a test function, now issues a RemovedInPytest4Warning. * New package fixture scope: fixtures are finalized when the last test of a package finishes. This feature is considered experimental, so use it sparingly. * Node.add_marker now supports an append=True/False parameter to determine whether the mark comes last (default) or first. * Fixture caplog now has a messages property, providing convenient access to the format-interpolated log messages without the extra data provided by the formatter/handler. * New --trace option to enter the debugger at the start of a test. * Introduce pytester.copy_example as helper to do acceptance tests against examples from the project. OBS-URL: https://build.opensuse.org/request/show/627079 OBS-URL: https://build.opensuse.org/package/show/devel:languages:python:pytest/python-pytest?expand=0&rev=7
2018-08-02 15:12:16 +02:00
Requires: python-pathlib2 >= 2.2.0
%endif
%python_subpackages
%description
The pytest framework makes it easy to write small tests, yet scales to support
complex functional testing for applications and libraries.
%prep
%autosetup -p1 -n pytest-%{version}
# fix gh#pytest-dev/pytest#7891 still happening for Leap
sed -i '/^\[metadata\]/ a version = %{version}' setup.cfg
%build
%python_build
%install
%if ! %{with test}
2017-11-02 10:24:10 +01:00
%python_install
%python_clone -a %{buildroot}%{_bindir}/pytest
%python_clone -a %{buildroot}%{_bindir}/py.test
Accepting request 618559 from devel:languages:python:pytest - update to 3.6.2 - add python-mock to buildrequires - fix test command - add python_mock.patch to use stdlib mock library on py3 - Update to version 3.6.0 + Features * Revamp the internals of the ``pytest.mark`` implementation with correct per node handling which fixes a number of long standing bugs caused by the old design. This introduces new ``Node.iter_markers(name)`` and ``Node.get_closest_mark(name)`` APIs. Users are **strongly encouraged** to read the `reasons for the revamp in the docs <https://docs.pytest.org/en/latest/mark.html#marker-revamp-and-iteration>`_, or jump over to details about `updating existing code to use the new APIs <https://docs.pytest.org/en/latest/mark.html#updating-code>`_. (`#3317 <https://github.com/pytest-dev/pytest/issues/3317>`_) * Now when ``@pytest.fixture`` is applied more than once to the same function a ``ValueError`` is raised. This buggy behavior would cause surprising problems and if was working for a test suite it was mostly by accident. (`#2334 <https://github.com/pytest-dev/pytest/issues/2334>`_) * Support for Python 3.7's builtin ``breakpoint()`` method, see `Using the builtin breakpoint function <https://docs.pytest.org/en/latest/usage.html#breakpoint-builtin>`_ for details. (`#3180 <https://github.com/pytest-dev/pytest/issues/3180>`_) * ``monkeypatch`` now supports a ``context()`` function which acts as a context manager which undoes all patching done within the ``with`` block. (`#3290 <https://github.com/pytest-dev/pytest/issues/3290>`_) * The ``--pdb`` option now causes KeyboardInterrupt to enter the debugger, instead of stopping the test session. On python 2.7, hitting CTRL+C again exits the debugger. On python 3.2 and higher, use CTRL+D. (`#3299 OBS-URL: https://build.opensuse.org/request/show/618559 OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/python-pytest?expand=0&rev=37
2018-06-25 11:35:39 +02:00
%python_expand %fdupes %{buildroot}%{$python_sitelib}
%endif
%check
%if %{with test}
%pytest
%endif
%if ! %{with test}
%pre
# If libalternatives is used: Removing old update-alternatives entries.
%python_libalternatives_reset_alternative pytest
%post
%if ! %{with libalternatives}
# py.test was the master until Oct 2020. boo#1178547
alternatives=$(update-alternatives --quiet --list py.test 2> /dev/null) && (
update-alternatives --remove-all py.test
# reinstall group with new master for all existing flavors except ourself
for a in $alternatives; do
if [ $a != %{_bindir}/py.test-%{python_bin_suffix} ]; then
bin_suffix=${a##*-}
prio=${bin_suffix/./}
update-alternatives --quiet --install %{_bindir}/pytest pytest ${a/py.test/pytest} $prio \
--slave %{_bindir}/py.test py.test $a
fi
done
) ||:
%endif
%python_install_alternative pytest py.test
%postun
%python_uninstall_alternative pytest
%files %{python_files}
%doc AUTHORS CHANGELOG.rst README.rst
%license LICENSE
%python_alternative %{_bindir}/pytest
%python_alternative %{_bindir}/py.test
%{python_sitelib}/_pytest
%{python_sitelib}/pytest
%{python_sitelib}/pytest-%{version}*-info
%endif
%changelog