commit 5e7aa83d33114af323d8ef766299b061a81d0a78fafceb114979315f4b49fba6 Author: Adrian Schröter Date: Fri May 3 22:26:49 2024 +0200 Sync from SUSE:SLFO:Main python-pytest-mock revision 64dc95f3b8a73f3ed84f7c566dcfbf3d diff --git a/.gitattributes b/.gitattributes new file mode 100644 index 0000000..9b03811 --- /dev/null +++ b/.gitattributes @@ -0,0 +1,23 @@ +## Default LFS +*.7z filter=lfs diff=lfs merge=lfs -text +*.bsp filter=lfs diff=lfs merge=lfs -text +*.bz2 filter=lfs diff=lfs merge=lfs -text +*.gem filter=lfs diff=lfs merge=lfs -text +*.gz filter=lfs diff=lfs merge=lfs -text +*.jar filter=lfs diff=lfs merge=lfs -text +*.lz filter=lfs diff=lfs merge=lfs -text +*.lzma filter=lfs diff=lfs merge=lfs -text +*.obscpio filter=lfs diff=lfs merge=lfs -text +*.oxt filter=lfs diff=lfs merge=lfs -text +*.pdf filter=lfs diff=lfs merge=lfs -text +*.png filter=lfs diff=lfs merge=lfs -text +*.rpm filter=lfs diff=lfs merge=lfs -text +*.tbz filter=lfs diff=lfs merge=lfs -text +*.tbz2 filter=lfs diff=lfs merge=lfs -text +*.tgz filter=lfs diff=lfs merge=lfs -text +*.ttf filter=lfs diff=lfs merge=lfs -text +*.txz filter=lfs diff=lfs merge=lfs -text +*.whl filter=lfs diff=lfs merge=lfs -text +*.xz filter=lfs diff=lfs merge=lfs -text +*.zip filter=lfs diff=lfs merge=lfs -text +*.zst filter=lfs diff=lfs merge=lfs -text diff --git a/fix-tests-python3117.patch b/fix-tests-python3117.patch new file mode 100644 index 0000000..c1b97db --- /dev/null +++ b/fix-tests-python3117.patch @@ -0,0 +1,44 @@ +From 8480bb6d0500f933be039cfec65e04157e6ecffe Mon Sep 17 00:00:00 2001 +From: Bruno Oliveira +Date: Tue, 19 Dec 2023 08:24:23 -0300 +Subject: [PATCH 1/2] Fix tests for Python 3.11 and 3.12 + +Fixes #401. +--- + tests/test_pytest_mock.py | 3 +-- + 1 file changed, 1 insertion(+), 2 deletions(-) + +Index: pytest-mock-3.12.0/tests/test_pytest_mock.py +=================================================================== +--- pytest-mock-3.12.0.orig/tests/test_pytest_mock.py ++++ pytest-mock-3.12.0/tests/test_pytest_mock.py +@@ -25,6 +25,7 @@ skip_pypy = pytest.mark.skipif( + + # Python 3.8 changed the output formatting (bpo-35500), which has been ported to mock 3.0 + NEW_FORMATTING = sys.version_info >= (3, 8) ++NEWEST_FORMATTING = sys.version_info >= (3, 11, 7) + + if sys.version_info[:2] >= (3, 8): + from unittest.mock import AsyncMock +@@ -240,15 +241,18 @@ class TestMockerStub: + + def __test_failure_message(self, mocker: MockerFixture, **kwargs: Any) -> None: + expected_name = kwargs.get("name") or "mock" +- if NEW_FORMATTING: ++ if NEWEST_FORMATTING: ++ msg = "expected call not found.\nExpected: {0}()\n Actual: not called." ++ elif NEW_FORMATTING: + msg = "expected call not found.\nExpected: {0}()\nActual: not called." + else: + msg = "Expected call: {0}()\nNot called" + expected_message = msg.format(expected_name) + stub = mocker.stub(**kwargs) +- with pytest.raises(AssertionError) as exc_info: ++ with pytest.raises( ++ AssertionError, match=re.escape(expected_message) ++ ) as exc_info: + stub.assert_called_with() +- assert str(exc_info.value) == expected_message + + def test_failure_message_with_no_name(self, mocker: MagicMock) -> None: + self.__test_failure_message(mocker) diff --git a/pytest-mock-3.12.0.tar.gz b/pytest-mock-3.12.0.tar.gz new file mode 100644 index 0000000..5997f4f --- /dev/null +++ b/pytest-mock-3.12.0.tar.gz @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:31a40f038c22cad32287bb43932054451ff5583ff094bca6f675df2f8bc1a6e9 +size 32139 diff --git a/python-pytest-mock.changes b/python-pytest-mock.changes new file mode 100644 index 0000000..2bed778 --- /dev/null +++ b/python-pytest-mock.changes @@ -0,0 +1,308 @@ +------------------------------------------------------------------- +Wed Dec 20 12:28:16 UTC 2023 - Daniel Garcia + +- Fix tests with python 3.11.7 +- Add patch fix-tests-python3117.patch gh#pytest-dev/pytest-mock#403 + +------------------------------------------------------------------- +Tue Nov 7 19:35:58 UTC 2023 - Dirk Müller + +- 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 19:10:29 UTC 2023 - Dirk Müller + +- 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 12:31:50 UTC 2023 - Dirk Müller + +- add sle15_python_module_pythons (jsc#PED-68) + +------------------------------------------------------------------- +Thu Apr 13 22:44:07 UTC 2023 - Matej Cepl + +- Make calling of %{sle15modernpython} optional. + +------------------------------------------------------------------- +Wed Nov 30 11:25:21 UTC 2022 - Daniel Garcia + +- 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 11:58:55 UTC 2022 - Ben Greiner + +- Add pytest-mock-issue272-asyncio.patch + * gh#pytest-dev/pytest-mock#272 + +------------------------------------------------------------------- +Thu Jun 3 09:35:04 UTC 2021 - Antonio Larrosa + +- 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 07:58:45 UTC 2020 - Tomáš Chvátal + +- Update to 3.1.1: + * Fixed performance regression caused by the ValueError raised + when mocker is used as context manager (#191). + +------------------------------------------------------------------- +Mon Apr 27 10:19:49 UTC 2020 - Tomáš Chvátal + +- 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 13:11:42 UTC 2020 - Tomáš Chvátal + +- 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 12:04:01 UTC 2019 - Tomáš Chvátal + +- 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 22:35:16 UTC 2019 - Hans-Peter Jansen + +- Disable current failing tests + see: https://github.com/pytest-dev/pytest-mock/issues/167 + boils done to an issue of pytest + +------------------------------------------------------------------- +Tue Nov 5 10:50:54 UTC 2019 - Tomáš Chvátal + +- 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 12:56:56 UTC 2019 - Tomáš Chvátal + +- Update to 1.11.1: + * Fix mocker.spy on Python 2 when used on non-function objects + which implement __call__ (#157). + +------------------------------------------------------------------- +Mon Sep 30 12:22:25 UTC 2019 - Tomáš Chvátal + +- 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 08:21:28 UTC 2019 - Tomáš Chvátal + +- Add back the mock 3.0 patch as the mock is being integrated now: + * mock3.patch + +------------------------------------------------------------------- +Fri Jul 26 12:26:36 UTC 2019 - Tomáš Chvátal + +- Remove mock30.patch for now as we are not able to upgrade + to mock3 yet + +------------------------------------------------------------------- +Thu Jul 18 08:52:38 UTC 2019 - Ondřej Súkup + +- add upstream patch to test with pytest5 - fix_tests.patch + +------------------------------------------------------------------- +Wed May 15 17:39:00 UTC 2019 - Tomáš Chvátal + +- Add patch from upstream to build with new mock: + * mock30.patch + +------------------------------------------------------------------- +Mon Apr 29 08:07:10 UTC 2019 - Tomáš Chvátal + +- Update to 1.10.4: + * Fix plugin when 'terminal' plugin is disabled + +------------------------------------------------------------------- +Mon Apr 1 08:34:55 UTC 2019 - Tomáš Chvátal + +- 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 09:33:33 UTC 2019 - John Vandenberg + +- 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 09:46:47 UTC 2019 - Tomáš Chvátal + +- Update to 1.10.1: + * Fix broken links and update README. Also the code is now formatted using black. + +------------------------------------------------------------------- +Sun May 6 19:35:00 UTC 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 16:39:10 UTC 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 10:13:26 UTC 2018 - mimi.vx@gmail.com + +- update to 1.7.1 + * fix reading README.rst in setup.py + +------------------------------------------------------------------- +Fri Mar 2 10:04:50 UTC 2018 - chris@computersalat.de + +- fix deps for setuptools + +------------------------------------------------------------------- +Thu Mar 1 00:05:11 UTC 2018 - mimi.vx@gmail.com + +- update to 1.7.0 + * Drop support for python-2.6 and python-3.3 + +------------------------------------------------------------------- +Thu Jan 11 12:23:03 UTC 2018 - tchvatal@suse.com + +- Fix building with python3 only available +- Install properly license file/etc + +------------------------------------------------------------------- +Wed Oct 11 14:45:16 UTC 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 14:27:43 UTC 2017 - tbechtold@suse.com + +- Remove python-virtualenv BuildRequires and simplify test + execution + +------------------------------------------------------------------- +Wed Apr 5 12:22:45 UTC 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 09:06:36 UTC 2017 - okurz@suse.com + +- Initial singlespec submission + diff --git a/python-pytest-mock.spec b/python-pytest-mock.spec new file mode 100644 index 0000000..4d9d05e --- /dev/null +++ b/python-pytest-mock.spec @@ -0,0 +1,66 @@ +# +# spec file for package python-pytest-mock +# +# Copyright (c) 2023 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.12.0 +Release: 0 +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 +# PATCH-FIX-UPSTREAM: fix-tests-python3117.patch gh#pytest-dev/pytest-mock#403 +Patch0: fix-tests-python3117.patch +BuildRequires: %{python_module base >= 3.8} +BuildRequires: %{python_module pytest >= 5} +BuildRequires: %{python_module pytest-asyncio} +BuildRequires: %{python_module py} +BuildRequires: %{python_module setuptools >= 36} +BuildRequires: %{python_module setuptools_scm} +BuildRequires: fdupes +BuildRequires: python-rpm-macros +Requires: python-py +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 +%python_build + +%install +%python_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}*-info + +%changelog