commit:     fafc85759cc72fafd2b6ce6cd08569dee5268ed4
Author:     Sam James <sam <AT> gentoo <DOT> org>
AuthorDate: Wed Jun  1 07:25:24 2022 +0000
Commit:     Sam James <sam <AT> gentoo <DOT> org>
CommitDate: Wed Jun  1 07:25:37 2022 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=fafc8575

dev-python/mechanize: enable py3.11

Signed-off-by: Sam James <sam <AT> gentoo.org>

 .../mechanize-0.4.8-python3.11-test-order.patch    | 79 ++++++++++++++++++++++
 dev-python/mechanize/mechanize-0.4.8.ebuild        |  6 +-
 2 files changed, 84 insertions(+), 1 deletion(-)

diff --git 
a/dev-python/mechanize/files/mechanize-0.4.8-python3.11-test-order.patch 
b/dev-python/mechanize/files/mechanize-0.4.8-python3.11-test-order.patch
new file mode 100644
index 000000000000..0808460dcc67
--- /dev/null
+++ b/dev-python/mechanize/files/mechanize-0.4.8-python3.11-test-order.patch
@@ -0,0 +1,79 @@
+https://github.com/python-mechanize/mechanize/commit/529d2c4cb8f31284f8026642968ba3adb9de1171
+https://github.com/python-mechanize/mechanize/commit/7ba3d586368c03577c061c35bc27664a907f5435
+https://github.com/python-mechanize/mechanize/commit/560839d51e54943890c2d37c0d0854792479cb80
+
+From: Kovid Goyal <[email protected]>
+Date: Tue, 24 May 2022 11:13:16 +0530
+Subject: [PATCH] Use asserts for failing test so we get better feedback on the
+ failure
+
+--- a/test/test_cookies.py
++++ b/test/test_cookies.py
+@@ -1028,10 +1028,10 @@ def test_Cookie_iterator(self):  # noqa
+             i = 0
+             for c in cs:
+                 # assert isinstance(c, Cookie)
+-                assert c.version == versions[i]
+-                assert c.name == names[i]
+-                assert c.domain == domains[i]
+-                assert c.path == paths[i]
++                self.assertEqual(c.version, versions[i])
++                self.assertEqual(c.name, names[i])
++                self.assertEqual(c.domain, domains[i])
++                self.assertEqual(c.path, paths[i])
+                 i = i + 1
+ 
+         self.assertRaises(IndexError, lambda cs=cs: cs[5])
+
+From: Kovid Goyal <[email protected]>
+Date: Tue, 24 May 2022 17:54:50 +0530
+Subject: [PATCH] DRYer
+
+--- a/test/test_cookies.py
++++ b/test/test_cookies.py
+@@ -1025,14 +1025,9 @@ def test_Cookie_iterator(self):  # noqa
+ 
+         # sequential iteration
+         for i in range(4):
+-            i = 0
+-            for c in cs:
++            for c, expected in zip(cs, zip(versions, names, domains, paths)):
+                 # assert isinstance(c, Cookie)
+-                self.assertEqual(c.version, versions[i])
+-                self.assertEqual(c.name, names[i])
+-                self.assertEqual(c.domain, domains[i])
+-                self.assertEqual(c.path, paths[i])
+-                i = i + 1
++                self.assertEqual((c.version, c.name, c.domain, c.path), 
expected)
+ 
+         self.assertRaises(IndexError, lambda cs=cs: cs[5])
+ 
+Date: Tue, 24 May 2022 18:09:16 +0530
+Subject: [PATCH] Change test to not rely on order of cookie iteration
+
+python 3.11 iterates in add order, earlier pythons iterate in domain
+sorted order
+
+Fix #74
+--- a/test/test_cookies.py
++++ b/test/test_cookies.py
+@@ -1022,13 +1022,12 @@ def test_Cookie_iterator(self):  # noqa
+             "www.acme.com"
+         ]
+         paths = ["/", "/", "/", "/blah", "/blah/"]
+-
++        expected = set(zip(versions, names, domains, paths))
+         # sequential iteration
+-        for i in range(4):
+-            for c, expected in zip(cs, zip(versions, names, domains, paths)):
+-                # assert isinstance(c, Cookie)
+-                self.assertEqual((c.version, c.name, c.domain, c.path), 
expected)
+-
++        # python 3.11 iterates in add order, earlier pythons iterate in domain
++        # sorted order
++        actual = {(c.version, c.name, c.domain, c.path) for c in cs}
++        self.assertEqual(expected, actual)
+         self.assertRaises(IndexError, lambda cs=cs: cs[5])
+ 
+     def test_parse_ns_headers(self):
+

diff --git a/dev-python/mechanize/mechanize-0.4.8.ebuild 
b/dev-python/mechanize/mechanize-0.4.8.ebuild
index c8d729b6ea5e..327456a039dd 100644
--- a/dev-python/mechanize/mechanize-0.4.8.ebuild
+++ b/dev-python/mechanize/mechanize-0.4.8.ebuild
@@ -4,7 +4,7 @@
 EAPI=8
 
 DISTUTILS_USE_PEP517=setuptools
-PYTHON_COMPAT=( python3_{8..10} )
+PYTHON_COMPAT=( python3_{8..11} )
 inherit distutils-r1
 
 DESCRIPTION="Stateful programmatic web browsing in Python"
@@ -24,6 +24,10 @@ BDEPEND="
        )
 "
 
+PATCHES=(
+       "${FILESDIR}"/${PN}-0.4.8-python3.11-test-order.patch
+)
+
 python_test() {
        "${EPYTHON}" run_tests.py || die
 }

Reply via email to