#
# spec file for package python-pytest-mock
#
# Copyright (c) 2024 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.

# Please submit bugfixes or comments via https://bugs.opensuse.org/
#


%{?sle15_python_module_pythons}
Name:           python-pytest-mock
Version:        3.14.0
Release:        2.5
Summary:        Thin-wrapper around the mock package for easier use with pytest
License:        MIT
URL:            https://github.com/pytest-dev/pytest-mock
Source:         https://files.pythonhosted.org/packages/source/p/pytest-mock/pytest-mock-%{version}.tar.gz
BuildRequires:  %{python_module base >= 3.8}
BuildRequires:  %{python_module pip}
BuildRequires:  %{python_module pytest >= 5}
BuildRequires:  %{python_module pytest-asyncio}
BuildRequires:  %{python_module setuptools >= 36}
BuildRequires:  %{python_module setuptools_scm}
BuildRequires:  %{python_module wheel}
BuildRequires:  fdupes
BuildRequires:  python-rpm-macros
Requires:       python-pytest
BuildArch:      noarch
%python_subpackages

%description
This plugin installs a ``mocker`` fixture which is a thin-wrapper around the patching API
provided by the `mock` package, but with the benefit of not having to worry about undoing
patches at the end of a test

%prep
%autosetup -p1 -n pytest-mock-%{version}

%build
%pyproject_wheel

%install
%pyproject_install
%python_expand %fdupes %{buildroot}%{$python_sitelib}

%check
%pytest --assert=plain

%files %{python_files}
%doc CHANGELOG.rst
%license LICENSE
%{python_sitelib}/pytest_mock
%{python_sitelib}/pytest_mock-%{version}.dist-info

%changelog
* Mon Sep  2 2024 Steve Kowalik <steven.kowalik@suse.com>
- Drop python-py requirement, no longer required.
* Mon Jul  8 2024 Dirk Müller <dmueller@suse.com>
- update to 3.14.0:
  * #415: MockType and AsyncMockType can be imported from
    pytest_mock for type annotation purposes.
  * #420: Fixed a regression which would cause
    mocker.patch.object to not being properly cleared between
    tests.
  * #417: spy now has spy_return_list, which is a list containing
    all the values returned by the spied function.
  * pytest-mock now requires pytest>=6.2.5.
  * #410: pytest-mock's setup.py file is removed. If you relied
    on this file, e.g. to install pytest using setup.py install,
    please see Why you shouldn't invoke setup.py directly for
    alternatives.
- drop fix-tests-python3117.patch (upstream)
* Wed Dec 20 2023 Daniel Garcia <daniel.garcia@suse.com>
- Fix tests with python 3.11.7
- Add patch fix-tests-python3117.patch gh#pytest-dev/pytest-mock#403
* Tue Nov  7 2023 Dirk Müller <dmueller@suse.com>
- update to 3.12.0:
  * Added support for Python 3.12.
  * Dropped support for EOL Python 3.7.
  * ``mocker.resetall()`` now also resets mocks created by
    ``mocker.create_autospec`` (`#390`_).
* Mon Jul 24 2023 Dirk Müller <dmueller@suse.com>
- update to 3.11.1:
  * Fixed introspection for failed ``assert_has_calls``
  * Updated type annotations for ``mocker.patch`` and
    ``mocker.spy`` (`#364`_).
* Fri Apr 21 2023 Dirk Müller <dmueller@suse.com>
- add sle15_python_module_pythons (jsc#PED-68)
* Thu Apr 13 2023 Matej Cepl <mcepl@suse.com>
- Make calling of %%{sle15modernpython} optional.
* Wed Nov 30 2022 Daniel Garcia <daniel.garcia@suse.com>
- Remove python_module macro definition
- Remove pytest-mock-issue272-asyncio.patch
- Add python-py dependency
- Update to 3.10.0:
  * Added new mocker.stop(m) method to stop specific mocker.patch or mocker.spy
    calls (#319).
- 3.9.0:
  * Expose NonCallableMagicMock via the mocker fixture (#318).
- 3.8.2:
  * Fixed AsyncMock support for Python 3.7+ in mocker.async_stub (#302).
- 3.8.1:
  * Fix regression caused by an explicit mock dependency in the code (#298).
- 3.8.0:
  * Add MockerFixture.async_mock method. Thanks @PerchunPak for the PR (#296).
- 3.7.0:
  * Python 3.10 now officially supported.
  * Dropped support for Python 3.6.
* Sat Jan 22 2022 Ben Greiner <code@bnavigator.de>
- Add pytest-mock-issue272-asyncio.patch
  * gh#pytest-dev/pytest-mock#272
* Thu Jun  3 2021 Antonio Larrosa <alarrosa@suse.com>
- Update to 3.6.1:
  * Fix mocker.resetall() when using mocker.spy() (#237)
- Update to 3.6.0:
  * pytest-mock no longer supports Python 3.5.
  * Correct type annotations for mocker.patch.object to also
    include the string form.
  * reset_all now supports return_value and side_effect keyword
    arguments.
- Update to 3.5.1:
  * Use inspect.getattr_static instead of resorting to
    object.__getattribute__ magic. This should better comply with
    objects which implement a custom descriptor protocol.
- Update to 3.5.0:
  * Now all patch functions will emit a warning instead of raising
    a ValueError when used as a context-manager.
  * Additionally, mocker.patch.context_manager is available when
    the user intends to mock a context manager (for example
    threading.Lock object), which will not emit that warning.
- Update to 3.4.0:
  * Add [mock.seal]{.title-ref} alias to the [mocker]{.title-ref}
    fixture (#211).
  * Fixed spying on exceptions not covered by the Exception
    superclass (#215), like KeyboardInterrupt
    Before the fix, both spy_return and spy_exception were always
    assigned to None whenever such an exception happened. And
    after this fix, spy_exception is set to a correct value of
    an exception.
- Update to 3.3.1:
  * Introduce MockFixture as an alias to MockerFixture.
    Before 3.3.0, the fixture class was named MockFixture, but was
    renamed to MockerFixture to better match the mocker fixture.
    While not officially part of the API, it was later discovered
    that this broke the code of some users which already imported
    pytest_mock.MockFixture for type annotations, so we decided to
    reintroduce the name as an alias.
    Note however that this is just a stop gap measure, and new code
    should use MockerFixture for type annotations.
  * Improved typing for MockerFixture.patch (#201).
- Update to 3.3.0:
  * pytest-mock now includes inline type annotations and exposes
    them to user programs. The mocker fixture returns
    pytest_mock.MockerFixture, which can be used to annotate your
    tests:
    from pytest_mock import MockerFixture
    def test_foo(mocker: MockerFixture) -> None:
    ...
  * The type annotations were developed against mypy version 0.782,
    the minimum version supported at the moment. If you run into an
    error that you believe to be incorrect, please open an issue.
- Update to 3.2.0:
  * AsyncMock is now exposed in mocker and supports provides
    assertion introspection similar to Mock objects.
* Tue Jun  9 2020 Tomáš Chvátal <tchvatal@suse.com>
- Update to 3.1.1:
  * Fixed performance regression caused by the ValueError raised
    when mocker is used as context manager (#191).
* Mon Apr 27 2020 Tomáš Chvátal <tchvatal@suse.com>
- Update to 3.1.0:
  * Python 2.7 and 3.4 are no longer supported
  * New mocker fixtures added that allow using mocking functionality
    in other scopes
* Mon Jan  6 2020 Tomáš Chvátal <tchvatal@suse.com>
- Update to 2.0.0:
  * mocker.spy attributes for tracking returned values and raised
    exceptions of its spied functions are now called spy_return
    and spy_exception, instead of reusing the existing MagicMock
    attributes return_value and side_effect.
  * The deprecated mock alias to the mocker fixture has finally
    been removed.
* Wed Dec  4 2019 Tomáš Chvátal <tchvatal@suse.com>
- Update to 1.12.1:
  * Fix error if mocker.patch is used in code where the source file
    is not available, for example stale .pyc files
  * Now all patch functions also raise a ValueError when used as a
    context-manager
* Sat Nov 16 2019 Hans-Peter Jansen <hpj@urpla.net>
- Disable current failing tests
  see: https://github.com/pytest-dev/pytest-mock/issues/167
  boils done to an issue of pytest
* Tue Nov  5 2019 Tomáš Chvátal <tchvatal@suse.com>
- Update to 1.11.2:
  * The pytest introspection follows message is no longer shown
    if there is no pytest introspection (#154)
  * mocker now raises a ValueError when used as a context-manager
* Mon Oct  7 2019 Tomáš Chvátal <tchvatal@suse.com>
- Update to 1.11.1:
  * Fix mocker.spy on Python 2 when used on non-function objects
    which implement __call__ (#157).
* Mon Sep 30 2019 Tomáš Chvátal <tchvatal@suse.com>
- Update to 1.11.0:
  * The object returned by mocker.spy now also tracks the return
    value of the spied method/function.
- Drop merged patch mock3.patch and fix_tests.patch
* Wed Sep 11 2019 Tomáš Chvátal <tchvatal@suse.com>
- Add back the mock 3.0 patch as the mock is being integrated now:
  * mock3.patch
* Fri Jul 26 2019 Tomáš Chvátal <tchvatal@suse.com>
- Remove mock30.patch for now as we are not able to upgrade
  to mock3 yet
* Thu Jul 18 2019 Ondřej Súkup <mimi.vx@gmail.com>
- add upstream patch to test with pytest5 - fix_tests.patch
* Wed May 15 2019 Tomáš Chvátal <tchvatal@suse.com>
- Add patch from upstream to build with new mock:
  * mock30.patch
* Mon Apr 29 2019 Tomáš Chvátal <tchvatal@suse.com>
- Update to 1.10.4:
  * Fix plugin when 'terminal' plugin is disabled
* Mon Apr  1 2019 Tomáš Chvátal <tchvatal@suse.com>
- Update to 1.10.3:
  * Fix test suite in Python 3.8. Thanks @hroncok for the report and @blueyed for the PR (#140).
* Tue Mar 26 2019 John Vandenberg <jayvdb@gmail.com>
- Update to v1.10.2
  * Fix bug at the end of the test session when a call to
    patch.stopall is done explicitly by user code.
* Wed Feb 13 2019 Tomáš Chvátal <tchvatal@suse.com>
- Update to 1.10.1:
  * Fix broken links and update README. Also the code is now formatted using black.
* Sun May  6 2018 arun@gmx.de
- update to version 1.10.0:
  * Add support for the recently added assert_called method in Python
    3.6 and mock-2.0. Thanks @rouge8 for the PR (#115).
* Sat Apr 21 2018 arun@gmx.de
- update to version 1.9.0:
  * Add support for the recently added assert_called_once method in
    Python 3.6 and mock-2.0. Thanks @rouge8 for the PR (#113).
- changes from version 1.8.0:
  * Add aliases for NonCallableMock and create_autospec to
    mocker. Thanks @mlhamel for the PR (#111).
* Sat Mar  3 2018 mimi.vx@gmail.com
- update to 1.7.1
  * fix reading README.rst in setup.py
* Fri Mar  2 2018 chris@computersalat.de
- fix deps for setuptools
* Thu Mar  1 2018 mimi.vx@gmail.com
- update to 1.7.0
  * Drop support for python-2.6 and python-3.3
* Thu Jan 11 2018 tchvatal@suse.com
- Fix building with python3 only available
- Install properly license file/etc
* Wed Oct 11 2017 mpluskal@suse.com
- Update to version 1.6.3:
  * Fix UnicodeDecodeError during assert introspection in
    assert_called_with in Python 2.
  * Provide source package in tar.gz format and remove obsolete
    MANIFEST.in.
  * Fix mocker.resetall() by ignoring mocker objects which don't
    have a resetall method, like for example patch.dict
* Fri Aug 11 2017 tbechtold@suse.com
- Remove python-virtualenv BuildRequires and simplify test
  execution
* Wed Apr  5 2017 jmatejek@suse.com
- update to 1.6.0
  * original assertions now appear in failure message
- shorten summary
- add requirements on mock and pytest
- enable tests
* Thu Mar  9 2017 okurz@suse.com
- Initial singlespec submission