summaryrefslogtreecommitdiff
path: root/dev-python/fixtures
diff options
context:
space:
mode:
authorV3n3RiX <venerix@koprulu.sector>2022-08-03 13:55:12 +0100
committerV3n3RiX <venerix@koprulu.sector>2022-08-03 13:55:12 +0100
commit0a65aa74175d9ac6570321fe11725dc30c574e08 (patch)
tree72b20e59998ee19c32c86634c05e02790faaf20f /dev-python/fixtures
parent4b4d352fc9761396c68812d8eccc63b7b14d6558 (diff)
gentoo auto-resync : 03:08:2022 - 13:55:12
Diffstat (limited to 'dev-python/fixtures')
-rw-r--r--dev-python/fixtures/Manifest6
-rw-r--r--dev-python/fixtures/files/fixtures-4.0.0-py311.patch116
-rw-r--r--dev-python/fixtures/files/fixtures-4.0.0-pypy39.patch56
-rw-r--r--dev-python/fixtures/fixtures-4.0.0.ebuild37
-rw-r--r--dev-python/fixtures/fixtures-4.0.1.ebuild2
5 files changed, 215 insertions, 2 deletions
diff --git a/dev-python/fixtures/Manifest b/dev-python/fixtures/Manifest
index b9d78b79f5b7..bf0128479b1d 100644
--- a/dev-python/fixtures/Manifest
+++ b/dev-python/fixtures/Manifest
@@ -1,3 +1,7 @@
+AUX fixtures-4.0.0-py311.patch 5084 BLAKE2B 6cf7ec50b13ed6a76dcfd4f6b4a3c5dfc0062bcc3895811e1c26d156d15045c307f4e3050c086c0bb71b772f16dcd4f135126a6a853d622a5bc24f0c67aa11dc SHA512 99b7e5e3c26f58ce07b308cf4a53e2f90294b3a2fb2748276e882d28fcf4cb6ea5b0406beb6d3a920e775bb982cd6708b2852429b4e7676b9d0e9bd4849c516a
+AUX fixtures-4.0.0-pypy39.patch 2158 BLAKE2B a46f4983224a28c9ec5c8cf40565fb9fb744b00435f68e632a0f95b447eed8fce2776e8f1639fa8b50d92eec3fc5a0550eaf30eaf99f082fbaf49def1475df40 SHA512 d94427b5c8d44295311849d9c93271edf829393a30ab98030e0e0270b6fcbc10467e000f50ba8dd863845e12fb1958405ea1bcc6d0ecdaa56f7ca0e628eb5013
+DIST fixtures-4.0.0.tar.gz 56786 BLAKE2B 7fa8916d3e384a47c967b51ffeebb81c50c4be7432601aa94f220b6ae32ed189f16750cb126c2925995c2e945684c48041014a97902145343527e8856125b61a SHA512 dcd67c3df9efc16f2a21b6d2917a5b7e45ecc09d1ddbd1de98a5b4b717ea7da0fc82e1054f494255b419a792e841145110c77a1772444f4019fc02e9917c5b80
DIST fixtures-4.0.1.tar.gz 56752 BLAKE2B bddda3976ec453129fa05e53da066344ed8f4db9626ec21dd0159e6720993da0c17e3b51ba37de2ef05cd7649809d674cc6409b16c8e1d242dc424d573010975 SHA512 722436f146768e4db1e3312a0db1edab2a7daa86107825fb2436654eaf74e00f569357531316df506ef3f80cef89ac7185aee1adf0b00a6ee85cbc9811ca8100
-EBUILD fixtures-4.0.1.ebuild 770 BLAKE2B f33e64792577e83e36cc92ba30894b9ee418b2318a2c4304d29c006136c8180aab2327908adf8998af55f96e163b4a7277dab9f863ac86062b773daf9e2a5df8 SHA512 c891024ddc95e84f26f80fcb65869139215c361e994afb3405e089cd8d641427743ec238306d32ba1f471cdc4b0535fc40ad535109dad241b5d64f00ecab9b55
+EBUILD fixtures-4.0.0.ebuild 848 BLAKE2B 5937eee87567b573377df40ab2a7e6cda7f68b481a67a9b93153fdd4fb248b74882d37b2c6ee016d0e98c4c70711da49904c4eb98218d562c45c964c08a95083 SHA512 901a2eccb8ee1bd1f9fdbf449a1a9745ebe1efc88252591d2db8c8a523f1f3e1bd96e89a6789b0cdadc41bdae8434a8581a68d94d5a22129f29c35e875fed406
+EBUILD fixtures-4.0.1.ebuild 778 BLAKE2B a4e4f6898e00e9b17b2ae12788a97f686be28acf4d638bc575de58f643f975f3304b8013674b690b29b7ec98b5245eb83d1e7330cb51443de6c34360fdb3d07e SHA512 5134dccf7b4ec0855b25ae10a2662ab53416447cf5977ea67af44836e33970aa9771c19e0004c3055fb452acb74f2f8195692521fc383cd9ed834c602215f8f5
MISC metadata.xml 914 BLAKE2B 402ef182133763f0b36e4653622cd9ef0bfa1871b05518aaf01701f1c57665ce358d002dc6e638ebd224225069a5b57877ff393567db7607dd0496a872edb2e5 SHA512 368e2a3587fa361618e5208f4c34a15a223bcdc2597dcbd25f5ba8ca74e67a0de4abb1f690f853ca8059df22eee61bf259e974aa92b1e8050435099d81a7a0db
diff --git a/dev-python/fixtures/files/fixtures-4.0.0-py311.patch b/dev-python/fixtures/files/fixtures-4.0.0-py311.patch
new file mode 100644
index 000000000000..6cda1104afca
--- /dev/null
+++ b/dev-python/fixtures/files/fixtures-4.0.0-py311.patch
@@ -0,0 +1,116 @@
+From 54ef596952d459d605fcb40f13bed6d07ef93f4c Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Micha=C5=82=20G=C3=B3rny?= <mgorny@gentoo.org>
+Date: Sat, 21 May 2022 12:15:21 +0200
+Subject: [PATCH 1/2] Update classmethod expectations (again) for Python 3.11
+
+It seems that the classmethod behavior in Python 3.11.0b1 is back
+to the one found in Python 3.8. Adjust the test expectations again.
+This time around, we expect the "old-new" behavior in CPython 3.9
+and 3.10 only.
+---
+ fixtures/tests/_fixtures/test_monkeypatch.py | 3 ++-
+ 1 file changed, 2 insertions(+), 1 deletion(-)
+
+diff --git a/fixtures/tests/_fixtures/test_monkeypatch.py b/fixtures/tests/_fixtures/test_monkeypatch.py
+index 08cd1c8..fa08b24 100644
+--- a/fixtures/tests/_fixtures/test_monkeypatch.py
++++ b/fixtures/tests/_fixtures/test_monkeypatch.py
+@@ -24,7 +24,8 @@ from fixtures import MonkeyPatch, TestWithFixtures
+ reference = 23
+
+ NEW_PY39_CLASSMETHOD = (
+- sys.version_info >= (3, 9) and not hasattr(sys, "pypy_version_info"))
++ sys.version_info[:2] in ((3, 9), (3,10))
++ and not hasattr(sys, "pypy_version_info"))
+
+ class C(object):
+ def foo(self, arg):
+--
+2.35.1
+
+From 48d8626168a374c099fa891d7e734548e1e03683 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Micha=C5=82=20G=C3=B3rny?= <mgorny@gentoo.org>
+Date: Sat, 21 May 2022 12:25:49 +0200
+Subject: [PATCH 2/2] Support Popen's process_group argument from Python 3.11
+
+---
+ fixtures/_fixtures/popen.py | 9 +++++++--
+ fixtures/tests/_fixtures/test_popen.py | 14 ++++++++++++++
+ 2 files changed, 21 insertions(+), 2 deletions(-)
+
+diff --git a/fixtures/_fixtures/popen.py b/fixtures/_fixtures/popen.py
+index ffa9bf4..a099854 100644
+--- a/fixtures/_fixtures/popen.py
++++ b/fixtures/_fixtures/popen.py
+@@ -131,7 +131,8 @@ class FakePopen(Fixture):
+ restore_signals=_unpassed, start_new_session=_unpassed,
+ pass_fds=_unpassed, *, group=_unpassed, extra_groups=_unpassed,
+ user=_unpassed, umask=_unpassed, encoding=_unpassed,
+- errors=_unpassed, text=_unpassed, pipesize=_unpassed):
++ errors=_unpassed, text=_unpassed, pipesize=_unpassed,
++ process_group=_unpassed):
+ # Reject arguments introduced by newer versions of Python in older
+ # versions; this makes it harder to accidentally hide compatibility
+ # problems using test doubles.
+@@ -149,6 +150,10 @@ class FakePopen(Fixture):
+ raise TypeError(
+ "FakePopen.__call__() got an unexpected keyword argument "
+ "'pipesize'")
++ if sys.version_info < (3, 11) and process_group is not FakePopen._unpassed:
++ raise TypeError(
++ "FakePopen.__call__() got an unexpected keyword argument "
++ "'process_group'")
+
+ proc_args = dict(args=args)
+ local = locals()
+@@ -158,7 +163,7 @@ class FakePopen(Fixture):
+ "universal_newlines", "startupinfo", "creationflags",
+ "restore_signals", "start_new_session", "pass_fds", "group",
+ "extra_groups", "user", "umask", "encoding", "errors", "text",
+- "pipesize"]:
++ "pipesize", "process_group"]:
+ if local[param] is not FakePopen._unpassed:
+ proc_args[param] = local[param]
+ proc_info = self.get_info(proc_args)
+diff --git a/fixtures/tests/_fixtures/test_popen.py b/fixtures/tests/_fixtures/test_popen.py
+index c7bf1bd..e9ab074 100644
+--- a/fixtures/tests/_fixtures/test_popen.py
++++ b/fixtures/tests/_fixtures/test_popen.py
+@@ -74,6 +74,8 @@ class TestFakePopen(testtools.TestCase, TestWithFixtures):
+ all_args["umask"] = "umask"
+ if sys.version_info >= (3, 10):
+ all_args["pipesize"] = "pipesize"
++ if sys.version_info >= (3, 11):
++ all_args["process_group"] = "process_group"
+
+ def get_info(proc_args):
+ self.assertEqual(all_args, proc_args)
+@@ -110,6 +112,15 @@ class TestFakePopen(testtools.TestCase, TestWithFixtures):
+ r".* got an unexpected keyword argument 'pipesize'"):
+ fixture(args="args", pipesize=1024)
+
++ @testtools.skipUnless(
++ sys.version_info < (3, 11), "only relevant on Python <3.11")
++ def test_rejects_3_11_args_on_older_versions(self):
++ fixture = self.useFixture(FakePopen(lambda proc_args: {}))
++ with testtools.ExpectedException(
++ TypeError,
++ r".* got an unexpected keyword argument 'process_group'"):
++ fixture(args="args", process_group=42)
++
+ def test_function_signature(self):
+ fake_signature = inspect.getfullargspec(FakePopen.__call__)
+ real_signature = inspect.getfullargspec(subprocess.Popen)
+@@ -130,6 +141,9 @@ class TestFakePopen(testtools.TestCase, TestWithFixtures):
+ fake_kwargs = set(fake_signature.kwonlyargs)
+ real_kwargs = set(real_signature.kwonlyargs)
+
++ if sys.version_info < (3, 11):
++ fake_kwargs.remove('process_group')
++
+ if sys.version_info < (3, 10):
+ fake_kwargs.remove('pipesize')
+
+--
+2.35.1
+
diff --git a/dev-python/fixtures/files/fixtures-4.0.0-pypy39.patch b/dev-python/fixtures/files/fixtures-4.0.0-pypy39.patch
new file mode 100644
index 000000000000..dfe7bade82fa
--- /dev/null
+++ b/dev-python/fixtures/files/fixtures-4.0.0-pypy39.patch
@@ -0,0 +1,56 @@
+From 2adba3989fc3d1723eb6534ae0bc1aeaf1513cfa Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Micha=C5=82=20G=C3=B3rny?= <mgorny@gentoo.org>
+Date: Thu, 28 Apr 2022 12:14:55 +0200
+Subject: [PATCH] Revert to the previous classmethod expectations for PyPy3.9
+
+Commit fe83067 has changed TestMonkeyPatch to account for changes
+in classmethod handling in CPython 3.9. Unfortunately, this broke
+the tests on PyPy3.9. Revert to the old expectations when using PyPy.
+
+Fixes #64
+---
+ fixtures/tests/_fixtures/test_monkeypatch.py | 9 ++++++---
+ 1 file changed, 6 insertions(+), 3 deletions(-)
+
+diff --git a/fixtures/tests/_fixtures/test_monkeypatch.py b/fixtures/tests/_fixtures/test_monkeypatch.py
+index 746f6dd..08cd1c8 100644
+--- a/fixtures/tests/_fixtures/test_monkeypatch.py
++++ b/fixtures/tests/_fixtures/test_monkeypatch.py
+@@ -23,6 +23,9 @@ from fixtures import MonkeyPatch, TestWithFixtures
+
+ reference = 23
+
++NEW_PY39_CLASSMETHOD = (
++ sys.version_info >= (3, 9) and not hasattr(sys, "pypy_version_info"))
++
+ class C(object):
+ def foo(self, arg):
+ return arg
+@@ -196,7 +199,7 @@ class TestMonkeyPatch(testtools.TestCase, TestWithFixtures):
+ # with the class
+ #
+ # https://bugs.python.org/issue19072
+- if sys.version_info >= (3, 9):
++ if NEW_PY39_CLASSMETHOD:
+ cls, = C.foo_cls()
+ self.expectThat(cls, Is(D))
+ cls, = C().foo_cls()
+@@ -238,13 +241,13 @@ class TestMonkeyPatch(testtools.TestCase, TestWithFixtures):
+ self.expectThat(slf, Is(d))
+ # See note in test_patch_classmethod_with_classmethod on changes in
+ # Python 3.9
+- if sys.version_info >= (3, 9):
++ if NEW_PY39_CLASSMETHOD:
+ self.expectThat(cls, Is(None))
+ else:
+ self.expectThat(cls, Is(C))
+ slf, cls = C().foo_cls()
+ self.expectThat(slf, Is(d))
+- if sys.version_info >= (3, 9):
++ if NEW_PY39_CLASSMETHOD:
+ self.expectThat(cls, Is(None))
+ else:
+ self.expectThat(cls, Is(C))
+--
+2.35.1
+
diff --git a/dev-python/fixtures/fixtures-4.0.0.ebuild b/dev-python/fixtures/fixtures-4.0.0.ebuild
new file mode 100644
index 000000000000..75916b42f6b4
--- /dev/null
+++ b/dev-python/fixtures/fixtures-4.0.0.ebuild
@@ -0,0 +1,37 @@
+# Copyright 1999-2022 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_USE_PEP517=pbr
+PYTHON_COMPAT=( python3_{8..11} pypy3 )
+
+inherit distutils-r1
+
+DESCRIPTION="Fixtures, reusable state for writing clean tests and more"
+HOMEPAGE="
+ https://github.com/testing-cabal/fixtures/
+ https://pypi.org/project/fixtures/
+"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="|| ( Apache-2.0 BSD )"
+SLOT="0"
+KEYWORDS="~alpha amd64 arm arm64 hppa ~ia64 ~m68k ~mips ppc ppc64 ~riscv ~s390 sparc x86 ~amd64-linux ~x86-linux"
+
+RDEPEND="
+ >=dev-python/pbr-5.7.0[${PYTHON_USEDEP}]
+ >=dev-python/testtools-2.5.0[${PYTHON_USEDEP}]
+"
+BDEPEND="
+ test? (
+ dev-python/mock[${PYTHON_USEDEP}]
+ )
+"
+
+distutils_enable_tests unittest
+
+PATCHES=(
+ "${FILESDIR}"/${P}-pypy39.patch
+ "${FILESDIR}"/${P}-py311.patch
+)
diff --git a/dev-python/fixtures/fixtures-4.0.1.ebuild b/dev-python/fixtures/fixtures-4.0.1.ebuild
index 9b3bfd2269d4..5bd679ac1415 100644
--- a/dev-python/fixtures/fixtures-4.0.1.ebuild
+++ b/dev-python/fixtures/fixtures-4.0.1.ebuild
@@ -17,7 +17,7 @@ SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
LICENSE="|| ( Apache-2.0 BSD )"
SLOT="0"
-KEYWORDS="~alpha amd64 arm arm64 hppa ~ia64 ~m68k ~mips ppc ppc64 ~riscv ~s390 sparc x86 ~amd64-linux ~x86-linux"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux"
RDEPEND="
>=dev-python/pbr-5.7.0[${PYTHON_USEDEP}]