commit f290ed4113a9a66314ce8675280932d2368a8906d86a371cbde1a11fb6550a28 Author: Dirk Mueller Date: Sun Jun 30 08:18:17 2024 +0000 - update to 8.3.0: * :class:`ShouldRaise` now supports :class:`ExceptionGroup`. * Fixed bug where :func:`~testfixtures.comparison.compare_generator` did not respect strict=True. * Fixed bug in the type annotations for :class:`ShouldRaise` and :func:`~testfixtures.comparison.compare_exception`. * :class:`LogCapture` will now raise an exception if closed while still installed. This can be a source of particularly confusing bugs. OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/python-testfixtures?expand=0&rev=57 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/.gitignore b/.gitignore new file mode 100644 index 0000000..57affb6 --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +.osc diff --git a/_multibuild b/_multibuild new file mode 100644 index 0000000..fcc7b97 --- /dev/null +++ b/_multibuild @@ -0,0 +1,3 @@ + + test + diff --git a/python-testfixtures.changes b/python-testfixtures.changes new file mode 100644 index 0000000..efb8531 --- /dev/null +++ b/python-testfixtures.changes @@ -0,0 +1,360 @@ +------------------------------------------------------------------- +Sun Jun 30 08:18:06 UTC 2024 - Dirk Müller + +- update to 8.3.0: + * :class:`ShouldRaise` now supports :class:`ExceptionGroup`. + * Fixed bug where + :func:`~testfixtures.comparison.compare_generator` did not + respect strict=True. + * Fixed bug in the type annotations for :class:`ShouldRaise` + and :func:`~testfixtures.comparison.compare_exception`. + * :class:`LogCapture` will now raise an exception if closed + while still installed. This can be a source of particularly + confusing bugs. + +------------------------------------------------------------------- +Wed May 8 06:08:53 UTC 2024 - Steve Kowalik + +- Update to 8.2.0: + * The strict option is now correctly respected when comparing nested + objects. + * When comparing datetime.datetime or datetime.time instances, if the fold + is the only thing that's different, it's now shown in the output. + * A more detailed exception is now raised when resolving a replacement + doesn't give what's expected. + * Replacement of methods on instances is now prevented when strict=True. + * An exception is now raised when mocking and the original is not in the + __dict__ of its containing objects. + * Fix bug where replacement of methods on subclasses failed when using + Replacer.on_class. + * Implement strict comparison as an option for datetime.datetime + and datetime.time. + * Retire zope.component helpers. + * Support bytes in popen.MockPopen commands. + * Allow TempDirectory instances to be traversed as pathlib.Path objects. + * Use the system default encoding where possible in TempDirectory. + * Add TempDirectory option to manage current working directory. + * Allow string class attributes to be replaced with Replacer and friends. + * Fix nasty bug meaning some Replacer.on_class and Replacer.in_module + replacements weren't restored. + * Allow an alternative separator to be used for traversal during replacement + with Replacer and friends. + * Officially support Python 3.12. + * Drop support Python 3.6. +- Add multibuild to break a cycle. +- Drop patch path-comparsion-312.patch, included upstream. + +------------------------------------------------------------------- +Mon Dec 11 15:07:33 UTC 2023 - ecsos + +- Add %{?sle15_python_module_pythons} + +------------------------------------------------------------------- +Wed Nov 29 01:50:24 UTC 2023 - Steve Kowalik + +- Update to 7.2.2: + * Fix bug in support for :class:`os.PathLike` arguments to + :class:`popen.MockPopen`. + * Added missing support for :class:`os.PathLike` arguments to + :class:`popen.MockPopen`. + * Add ``order_matters`` parameter to :class:`ShouldWarn`. + * Implement new IDE and static-analysis ways of :doc:`mocking ` + including additional parameters to :meth:`~Replacer.replace` along with + the :any:`replace_on_class`, :any:`replace_in_module` and + :any:`replace_in_environ` context managers. +- Add patch path-comparsion-312.patch: + * Compare paths string-wise, due to Python 3.12 changes. +- Switch to autosetup and pyproject macros. +- Remove now unneeded Python 3.6 special-casing. + +------------------------------------------------------------------- +Tue Dec 13 17:36:55 UTC 2022 - Yogalakshmi Arunachalam + +- Update to 7.0.4 + * Remove py.typed file: neither mypy nor testfixtures are ready for this file to be present. + +------------------------------------------------------------------- +Wed Nov 9 19:29:23 UTC 2022 - Yogalakshmi Arunachalam + +- Update to 7.0.3 (3 Nov 2022) + * Further bugfixes around self-referential datastructures and :func:`compare`. + +- Update to 7.0.2 (1 Nov 2022) + * Reinstate support for self-referential data structures in :func:`compare`. The new implementation provides more clarity about + what's going on and also ignores more immutable data types. + +- Update to 7.0.1 (1 Nov 2022) + * Remove non-functional support for self-referential data structures in :func:`compare`. The functionality didn't work but did cause + erroneous reported equality of values in dictionaries that were actually not equal. + +------------------------------------------------------------------- +Tue Oct 4 15:30:20 UTC 2022 - Daniel Garcia + +- Remove testfixtures-sybil3-py310.patch, it's included in upstream now. +- Update to 7.0.0 + * Refresh documentation. + * Add type annotations. + * Drop support for Python 2. The minimum supported Python version is now 3.6. + * Sybil 3 is now the minimum supported version if you use + :class:`~.sybil.FileParser`. + * Rename and refactor the date and time mocks, they are now :any:`mock_date`, + :any:`mock_datetime` and :any:`mock_time`. :func:`test_date`, + :func:`test_datetime` and :func:`test_time` are still present as aliases + but are now deprecated. + * Add :meth:`TempDirectory.as_string`, :meth:`TempDirectory.as_path` and + :meth:`TempDirectory.as_local`. :meth:`TempDirectory.getpath` is now + deprecated. + * :class:`TempDirectory` can now be used to wrap existing directories. + * Fixed a bug where :any:`OutputCapture.captured` returned bytes instead of a + string with fd=True. + * The deprecated strict option to :class:`Comparison` has been removed, use + the partial option instead. + * The deprecated :meth:`TempDirectory.check`, :meth:`TempDirectory.check_dir` + and :meth:`TempDirectory.check_all` methods have been removed. +- 6.18.5 (1 Mar 2022) + * Fix bug in detection of Mock backport. +- 6.18.4 (25 Feb 2022) + * Ensure compatibility with Sybil 2 and Sybil 3 along with pytest 6 and + pytest 7. + +------------------------------------------------------------------- +Sun Dec 26 09:32:40 UTC 2021 - Ben Greiner + +- Replace testfixtures-pr167-sybil3.patch by + testfixtures-sybil3-py310.patch -- gh#simplistix/testfixtures#167 +- Don't test Django on python36: Django 4 dropped support for + Python < 3.8 + +------------------------------------------------------------------- +Tue Dec 21 18:13:58 UTC 2021 - Ben Greiner + +- Add testfixtures-pr167-sybil3.patch + * gh#simplistix/testfixtures#167 + +------------------------------------------------------------------- +Thu Oct 7 15:01:20 UTC 2021 - Ben Greiner + +- update to 6.18.3 + * Fix bug when using :func:`compare` on two regular expressions + that have very long patterns. + * Fix bug that meant :class:`LogCapture` didn't preserve or + provide a clean testing environment for filters. + * Fix bug when showing differences between mappings found by + :func:`compare` when mismatching values contained the same + number more than once. + * Add support for lazy resolution of prefix and suffix when using + :func:`compare`. +- Drop appease-django-320.patch merged upstream +- Drop unresolvable Python 2 build + +------------------------------------------------------------------- +Sun May 9 17:11:41 UTC 2021 - Dirk Müller + +- update to 6.17.1 + - Fix bug where bug where duplicated entries in an ordered but partial + :class:`SequenceComparison` could result in a failed match. + +------------------------------------------------------------------- +Wed Apr 28 07:49:55 UTC 2021 - Steve Kowalik + +- Add appease-django-320.patch: + * Upstream patch to avoid a test failure with building with Django 3.2 + +------------------------------------------------------------------- +Fri Dec 18 09:50:52 UTC 2020 - John Vandenberg + +- update to v6.17.0 + * Add simpler flag support to `StringComparison`. + * Fix deprecation warning about invalid escape sequence. +- from v6.16.0 + * Clarify the documentation of timezones when using `test_datetime` + * :doc:`api` has been re-arranged to make it easier to browse. + * The strict parameter to `Comparison` has been deprecated + in favour of partial. + * Add `SequenceComparison`, `Subset` and `Permutation` objects. + * Add `MappingComparison` objects. + * Officially support Python 3.9. + +------------------------------------------------------------------- +Sun Nov 29 18:59:58 UTC 2020 - ecsos + +- update to 6.15.0: + - Add support to :class:LogCapture for making sure log entries above a specified level have been checked. + +------------------------------------------------------------------- +Wed Sep 16 21:30:17 UTC 2020 - Dirk Mueller + +- update to 6.14.2: + - Fix bug where ``ignore_eq`` had no effect on nested objects when using :func:`compare` +- remove python383.patch (upstream) + +------------------------------------------------------------------- +Tue Jun 23 15:51:53 UTC 2020 - Benjamin Greiner + +- use local source dir for pytest imports (tests are not installed) + gh#openSUSE/python-rpm-macros#48 + +------------------------------------------------------------------- +Tue May 19 10:20:08 UTC 2020 - Tomáš Chvátal + +- Add patch to fix build with python 3.8.3: + * python383.patch +- Update to 6.14.1: + * Fix bugs in comparison of :func:`~unittest.mock.call` objects where the :func:`repr` of the :func:`~unittest.mock.call` arguments were the same even when their attributes were not. + +------------------------------------------------------------------- +Thu Mar 12 08:05:21 UTC 2020 - Tomáš Chvátal + +- Fix build without python2 + +------------------------------------------------------------------- +Wed Mar 11 12:16:59 UTC 2020 - pgajdos@suse.com + +- version update to 6.14.0 + 6.14.0 (24 Feb 2020) + -------------------- + - Add support for non-deterministic logging order when using :meth:`twisted.LogCapture`. + 6.13.1 (20 Feb 2020) + -------------------- + - Fix for using :func:`compare` to compare two-element :func:`~unittest.mock.call` + objects. + 6.13.0 (18 Feb 2020) + -------------------- + - Allow any attributes that need to be ignored to be specified directly when calling + :func:`~testfixtures.comparison.compare_object`. This is handy when writing + comparers for :func:`compare`. + 6.12.1 (16 Feb 2020) + -------------------- + - Fix a bug that occured when using :func:`compare` to compare a string with a + slotted object that had the same :func:`repr` as the string. + 6.12.0 (6 Feb 2020) + ------------------- + - Add support for ``universal_newlines``, ``text``, ``encoding`` and ``errors`` to + :class:`popen.MockPopen`, but only for Python 3. + 6.11.0 (29 Jan 2020) + -------------------- + - :class:`decimal.Decimal` now has better representation when :func:`compare` displays a failed + comparison, particularly on Python 2. + - Add support to :func:`compare` for explicitly naming objects to be compared as ``x`` and ``y``. + This allows symmetry with the ``x_label`` and ``y_label`` parameters that are now documented. + - Restore ability for :class:`Comparison` to compare properties and methods, although these uses + are not recommended. + 6.10.3 (22 Nov 2019) + -------------------- + - Fix bug where new-style classes had their attributes checked with :func:`compare` even + when they were of different types. + 6.10.2 (15 Nov 2019) + -------------------- + - Fix bugs in :func:`compare` when comparing objects which have both ``__slots__`` + and a ``__dict__``. + 6.10.1 (1 Nov 2019) + ------------------- + - Fix edge case where string interning made dictionary comparison output much less useful. + +------------------------------------------------------------------- +Mon Jul 22 12:42:25 UTC 2019 - Tomáš Chvátal + +- Update to 6.10.0: + * Better feedback where objects do not :func:`compare` equal but do have the same representation. + +------------------------------------------------------------------- +Mon Jun 17 10:12:42 UTC 2019 - pgajdos@suse.com + +- version update to 6.9.0 + - Fix deprecation warning relating to :func:`getargspec`. + - Improve :doc:`mocking ` docs. + - Add ``strip_whitespace`` option to :class:`OutputCapture`. + - When ``separate`` is used with :class:`OutputCapture`, differences in ``stdout` and ``stderr`` + are now given in the same :class:`AssertionError`. + - :class:`ShouldRaise` no longer catches exceptions that are not of the required type. + - Fixed a problem that resulted in unhelpful :func:`compare` failures when + :func:`~unittest.mock.call` was involved and Python 3.6.7 was used. + +------------------------------------------------------------------- +Tue May 21 08:14:30 UTC 2019 - pgajdos@suse.com + +- version update to 6.8.2 + * Fix handling of the latest releases of the :mod:`mock` backport. + * Fix bogus import in :class:`OutputCapture`. + * Allow :class:`OutputCapture` to capture the underlying file descriptors for + :attr:`sys.stdout` and :attr:`sys.stderr`. + * Silence :class:`DeprecationWarning` relating to ``collections.abc`` on + Python 3.7. + +------------------------------------------------------------------- +Thu Apr 18 14:41:23 UTC 2019 - Marketa Calabkova + +- update to version 6.7.0 + * Add :meth:`twisted.LogCapture.raise_logged_failure` debugging + helper. + +------------------------------------------------------------------- +Tue Mar 26 22:09:06 UTC 2019 - John Vandenberg + +- Add docs/*.txt to %docs +- Remove tests from the runtime package +- Update to v6.6.2 + * popen.MockPopen.set_command is now symmetrical with + popen.MockPopen process instantiation in that both can be called with + either lists or strings, in the same way as subprocess.Popen. +- from 6.6.1 + * Fixed bugs where using 'not_there' to ensure a key or attribute + was not there but would be set by a test would result in the test + attribute or key being left behind. + * Add support for comparing functools.partial instances and fix + comparison of functions and other objects where vars() returns + an empty dict. +- from v6.6.0 + * Add the ability to ignore attributes of particular object types when + using `compare`. +- from v6.5.2 + * Fix bug when `compare` was used with objects that had __slots__ inherited + from a base class but where their __slots__ was an empty sequence. +- from v6.5.1 + * Fix bug when `compare` was used with objects that had __slots__ inherited + from a base class. + +------------------------------------------------------------------- +Wed Feb 13 17:52:51 UTC 2019 - John Vandenberg + +- Update to version 6.5.0 + See changes.rst for list of changes since version 5.3.1 +- Remove many unnecessary build dependencies +- Activate tests +- Add Suggests for Django, Twisted, sybil and zope.component + +------------------------------------------------------------------- +Tue Feb 5 16:07:51 UTC 2019 - John Vandenberg + +- Remove unnecessary build dependencies + +------------------------------------------------------------------- +Tue Dec 4 12:55:09 UTC 2018 - Matej Cepl + +- Remove superfluous devel dependency for noarch package + +------------------------------------------------------------------- +Fri Jan 5 09:58:02 UTC 2018 - alarrosa@suse.com + +- Update to version 5.3.1 + * Fix missing support for the start_new_session parameter to + ~testfixtures.popen.MockPopen. + +------------------------------------------------------------------- +Fri Nov 17 10:49:24 UTC 2017 - alarrosa@suse.com + +- Update to version 5.3.0 + * Add pytest traceback hiding for TempDirectory.compare. + * Add warnings that log_capture, tempdir and replace are not + currently compatible with pytest's fixtures mechanism. + * Better support for stdout or stderr *not* being set to PIPE + when using testfixtures.popen.MockPopen. + * Add support to testfixtures.popen.MockPopen for + using subprocess.Popen as a context manager in Python 3. + * Add support to testfixtures.popen.MockPopen for stderr=STDOUT. + * Work done on testfixtures.popen.MockPopen. + +------------------------------------------------------------------- +Tue Sep 26 18:47:13 UTC 2017 - t.gruner@katodev.de + +- Initial release version 5.2.0 diff --git a/python-testfixtures.spec b/python-testfixtures.spec new file mode 100644 index 0000000..f3c1e74 --- /dev/null +++ b/python-testfixtures.spec @@ -0,0 +1,95 @@ +# +# spec file for package python-testfixtures +# +# 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/ +# + + +%global flavor @BUILD_FLAVOR@%{nil} +%if "%{flavor}" == "test" +%define psuffix -test +%bcond_without test +%else +%define psuffix %{nil} +%bcond_with test +%endif +%{?sle15_python_module_pythons} +Name: python-testfixtures%{psuffix} +Version: 8.3.0 +Release: 0 +Summary: A collection of helpers and mock objects for unit tests and doc tests +License: MIT +URL: https://github.com/Simplistix/testfixtures +Source: https://files.pythonhosted.org/packages/source/t/testfixtures/testfixtures-%{version}.tar.gz +BuildRequires: %{python_module base >= 3.7} +BuildRequires: %{python_module pip} +BuildRequires: %{python_module setuptools} +BuildRequires: %{python_module wheel} +%if %{with test} +BuildRequires: %{python_module Django} +BuildRequires: %{python_module Twisted} +BuildRequires: %{python_module pytest >= 3.6} +BuildRequires: %{python_module pytest-django} +BuildRequires: %{python_module sybil >= 6} +BuildRequires: %{python_module testfixtures = %{version}} +%endif +BuildRequires: fdupes +BuildRequires: python-rpm-macros +Suggests: python-Django +Suggests: python-Twisted +Suggests: python-sybil >= 6 +BuildArch: noarch +%python_subpackages + +%description +TestFixtures is a collection of helpers and mock objects that are +useful when writing unit tests or doc tests. + +If you're wondering why "yet another mock object library", testing is +often described as an art form and as such some styles of library will +suit some people while others will suit other styles. This library +contains common test fixtures the author found himself +repeating from package to package and so decided to extract them into +their own library and give them some tests of their own! + +%prep +%autosetup -p1 -n testfixtures-%{version} +chmod a-x docs/*.txt + +%build +%pyproject_wheel + +%install +%if %{without test} +%pyproject_install +%python_expand rm -r %{buildroot}%{$python_sitelib}/testfixtures/tests +%python_expand %fdupes %{buildroot}%{$python_sitelib} +%endif + +%check +%if %{with test} +export DJANGO_SETTINGS_MODULE=testfixtures.tests.test_django.settings +export PYTHONPATH=$(pwd) +%pytest testfixtures/tests +%endif + +%if %{without test} +%files %{python_files} +%license LICENSE.txt +%doc README.rst docs/*.txt +%{python_sitelib}/testfixtures +%{python_sitelib}/testfixtures-%{version}.dist-info +%endif + +%changelog diff --git a/testfixtures-8.2.0.tar.gz b/testfixtures-8.2.0.tar.gz new file mode 100644 index 0000000..3274a77 --- /dev/null +++ b/testfixtures-8.2.0.tar.gz @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:ef43b657134c87e8a3044f4b02a32ae2ebddf44b2b97bc7989a20116403988ee +size 136662 diff --git a/testfixtures-8.3.0.tar.gz b/testfixtures-8.3.0.tar.gz new file mode 100644 index 0000000..855dd85 --- /dev/null +++ b/testfixtures-8.3.0.tar.gz @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:d4c0b84af2f267610f908009b50d6f983a4e58ade22c67bab6787b5a402d59c0 +size 137420