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 }
