pyzor fails to build with Python 3.11.0a2. =================================== FAILURES =================================== ________________ LoadAccountTest.test_load_accounts_invalid_key ________________ self = <tests.unit.test_account.LoadAccountTest testMethod=test_load_accounts_invalid_key> def test_load_accounts_invalid_key(self): """Test loading the account file""" self.mock_file.write(u"public.pyzor.org : 24441 : test : ,\n" u"public2.pyzor.org : 24441 : test2 : 123abc,cba321") result = pyzor.config.load_accounts(self.filepath) self.assertNotIn(("public.pyzor.org", 24441), result) > self.assertEquals(len(result), 1) E AttributeError: 'LoadAccountTest' object has no attribute 'assertEquals' tests/unit/test_account.py:165: AttributeError ------------------------------ Captured log call ------------------------------- WARNING pyzor:config.py:163 account file: invalid line 0: keystuff can't be all None's _______________ LoadAccountTest.test_load_accounts_invalid_line ________________ self = <tests.unit.test_account.LoadAccountTest testMethod=test_load_accounts_invalid_line> def test_load_accounts_invalid_line(self): """Test loading the account file""" self.mock_file.write(u"public.pyzor.org : 24441 ; test : 123abc,cba321\n" u"public2.pyzor.org : 24441 : test2 : 123abc,cba321") result = pyzor.config.load_accounts(self.filepath) self.assertNotIn(("public.pyzor.org", 24441), result) > self.assertEquals(len(result), 1) E AttributeError: 'LoadAccountTest' object has no attribute 'assertEquals' tests/unit/test_account.py:141: AttributeError ------------------------------ Captured log call ------------------------------- WARNING pyzor:config.py:148 account file: invalid line 0: wrong number of parts ___________ LoadAccountTest.test_load_accounts_invalid_missing_comma ___________ self = <tests.unit.test_account.LoadAccountTest testMethod=test_load_accounts_invalid_missing_comma> def test_load_accounts_invalid_missing_comma(self): """Test loading the account file""" self.mock_file.write(u"public.pyzor.org : 24441 : test : 123abccba321\n" u"public2.pyzor.org : 24441 : test2 : 123abc,cba321") result = pyzor.config.load_accounts(self.filepath) self.assertNotIn(("public.pyzor.org", 24441), result) > self.assertEquals(len(result), 1) E AttributeError: 'LoadAccountTest' object has no attribute 'assertEquals' tests/unit/test_account.py:177: AttributeError ------------------------------ Captured log call ------------------------------- WARNING pyzor:config.py:160 account file: invalid line 0: Invalid number of parts for key; perhaps you forgot the comma at the beginning for the salt divider? _______________ LoadAccountTest.test_load_accounts_invalid_port ________________ self = <tests.unit.test_account.LoadAccountTest testMethod=test_load_accounts_invalid_port> def test_load_accounts_invalid_port(self): """Test loading the account file""" self.mock_file.write(u"public.pyzor.org : a4441 : test : 123abc,cba321\n" u"public2.pyzor.org : 24441 : test2 : 123abc,cba321") result = pyzor.config.load_accounts(self.filepath) self.assertNotIn(("public.pyzor.org", 24441), result) > self.assertEquals(len(result), 1) E AttributeError: 'LoadAccountTest' object has no attribute 'assertEquals' tests/unit/test_account.py:153: AttributeError ------------------------------ Captured log call ------------------------------- WARNING pyzor:config.py:154 account file: invalid line 0: invalid literal for int() with base 10: 'a4441' ________________________ ClientTest.test_handle_account ________________________ self = <tests.unit.test_client.ClientTest testMethod=test_handle_account> def test_handle_account(self): """Test client handling accounts""" test_account = pyzor.account.Account("TestUser", "TestKey", "TestSalt") self.expected["Op"] = "ping" self.expected["User"] = "TestUser" self.patch_all() > self.check_client({("public.pyzor.org", 24441): test_account}, "ping") tests/unit/test_client.py:155: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/unit/test_client.py:96: in check_client self.check_request() tests/unit/test_client.py:62: in check_request self.assertEqual(req, self.expected) E AssertionError: {'Op': 'ping', 'Thread': '33715', 'PV': '2.[58 chars]Sig'} != {'Thread': '33715', 'PV': '2.1', 'User': 'T[58 chars]ing'} E {'Op': 'ping', E 'PV': '2.1', E 'Sig': 'TestSig', E 'Thread': '33715', E - 'Time': '1637831992', E ? ^ E E + 'Time': '1637831991', E ? ^ E E 'User': 'TestUser'} =============================== warnings summary =============================== ../../../../usr/lib/python3.11/site-packages/redis/connection.py:2 /usr/lib/python3.11/site-packages/redis/connection.py:2: DeprecationWarning: The distutils package is deprecated and slated for removal in Python 3.12. Use setuptools or check PEP 632 for potential alternatives from distutils.version import StrictVersion tests/unit/test_account.py::LoadAccountTest::test_load_accounts_invalid_key /builddir/build/BUILD/pyzor-f46159bd6519cebcebf59e9334a7920371111d75/pyzor/config.py:163: DeprecationWarning: The 'warn' method is deprecated, use 'warning' instead log.warn("account file: invalid line %d: keystuff can't be " tests/unit/test_account.py::LoadAccountTest::test_load_accounts_invalid_line /builddir/build/BUILD/pyzor-f46159bd6519cebcebf59e9334a7920371111d75/pyzor/config.py:148: DeprecationWarning: The 'warn' method is deprecated, use 'warning' instead log.warn("account file: invalid line %d: wrong number of " tests/unit/test_account.py::LoadAccountTest::test_load_accounts_invalid_missing_comma /builddir/build/BUILD/pyzor-f46159bd6519cebcebf59e9334a7920371111d75/pyzor/config.py:160: DeprecationWarning: The 'warn' method is deprecated, use 'warning' instead log.warn("account file: invalid line %d: %s", lineno, ex) tests/unit/test_account.py::LoadAccountTest::test_load_accounts_invalid_port /builddir/build/BUILD/pyzor-f46159bd6519cebcebf59e9334a7920371111d75/pyzor/config.py:154: DeprecationWarning: The 'warn' method is deprecated, use 'warning' instead log.warn("account file: invalid line %d: %s", lineno, ex) tests/unit/test_account.py::LoadAccountTest::test_load_accounts_nothing /builddir/build/BUILD/pyzor-f46159bd6519cebcebf59e9334a7920371111d75/pyzor/config.py:170: DeprecationWarning: The 'warn' method is deprecated, use 'warning' instead log.warn("No accounts are setup. All commands will be executed by " tests/unit/test_config.py::TestPasswdLoad::test_invalid_line /builddir/build/BUILD/pyzor-f46159bd6519cebcebf59e9334a7920371111d75/pyzor/config.py:121: DeprecationWarning: The 'warn' method is deprecated, use 'warning' instead log.warn("Invalid accounts line: %r", line) tests/unit/test_config.py::TestAccessLoad::test_invalid_action /builddir/build/BUILD/pyzor-f46159bd6519cebcebf59e9334a7920371111d75/pyzor/config.py:71: DeprecationWarning: The 'warn' method is deprecated, use 'warning' instead log.warn("Invalid ACL line: %r", line) tests/unit/test_config.py::TestAccessLoad::test_invalid_line /builddir/build/BUILD/pyzor-f46159bd6519cebcebf59e9334a7920371111d75/pyzor/config.py:66: DeprecationWarning: The 'warn' method is deprecated, use 'warning' instead log.warn("Invalid ACL line: %r", line) tests/unit/test_server.py::RequestHandlerTest::test_invalid_pv /builddir/build/BUILD/pyzor-f46159bd6519cebcebf59e9334a7920371111d75/pyzor/server.py:275: DeprecationWarning: The 'warn' method is deprecated, use 'warning' instead self.server.log.warn("Invalid PV: %s", request["PV"]) -- Docs: https://docs.pytest.org/en/stable/warnings.html ---------- coverage: platform linux, python 3.11.0-alpha-2 ----------- Name Stmts Miss Cover Missing --------------------------------------------------------- pyzor/__init__.py 23 0 100% pyzor/account.py 35 0 100% pyzor/client.py 202 34 83% 120-123, 148-150, 153-159, 162, 169-174, 187, 190, 233-234, 238-239, 260-263, 268, 289-290, 293, 314 pyzor/config.py 156 11 93% 10, 197-207, 242 pyzor/digest.py 123 14 89% 23, 94-95, 117-118, 138-146, 189-190 pyzor/engines/__init__.py 6 0 100% pyzor/engines/common.py 53 9 83% 62, 66, 70, 74, 80, 84, 92, 102, 109 pyzor/engines/gdbm_.py 147 21 86% 5, 10-11, 24, 27-28, 66-67, 70, 144-145, 150, 154, 160-166, 202 pyzor/engines/mysql.py 220 66 70% 17-18, 69-72, 77, 79-82, 85-87, 116, 126-127, 132-139, 142, 145, 158-167, 170-179, 192-194, 235-236, 251-253, 260, 265, 271, 279-290, 297-298, 301-305, 310-316, 334-336, 347 pyzor/engines/redis_.py 121 31 74% 11-13, 44-47, 85, 101-102, 105, 117, 139-146, 150-157, 164-165, 180, 184 pyzor/engines/redis_v0.py 84 15 82% 14-16, 35-38, 74, 91-92, 95, 107, 133-134, 139, 143 pyzor/forwarder.py 38 3 92% 49-50, 59 pyzor/hacks/__init__.py 0 0 100% pyzor/hacks/py26.py 24 12 50% 22, 31-44 pyzor/hacks/py3.py 9 9 0% 3-21 pyzor/message.py 99 7 93% 40, 45, 59, 82, 86, 152, 157 pyzor/server.py 228 51 78% 49-54, 66, 106-108, 114-116, 119, 133-135, 139-152, 158-161, 167-170, 186-188, 191-192, 195-196, 206-207, 338, 348-349, 357, 367-368 --------------------------------------------------------- TOTAL 1568 283 82% =========================== short test summary info ============================ FAILED tests/unit/test_account.py::LoadAccountTest::test_load_accounts_invalid_key FAILED tests/unit/test_account.py::LoadAccountTest::test_load_accounts_invalid_line FAILED tests/unit/test_account.py::LoadAccountTest::test_load_accounts_invalid_missing_comma FAILED tests/unit/test_account.py::LoadAccountTest::test_load_accounts_invalid_port FAILED tests/unit/test_client.py::ClientTest::test_handle_account - Assertion... ================== 5 failed, 156 passed, 10 warnings in 8.45s ================== Removed many old deprecated unittest features: TestCase method aliases failUnlessEqual, failIfEqual, failUnless, failIf, failUnlessRaises, failUnlessAlmostEqual, failIfAlmostEqual (deprecated in Python 3.1), assertEquals, assertNotEquals, assert_, assertAlmostEquals, assertNotAlmostEquals, assertRegexpMatches, assertRaisesRegexp (deprecated in Python 3.2), and assertNotRegexpMatches (deprecated in Python 3.5). Undocumented and broken TestCase method assertDictContainsSubset (deprecated in Python 3.2). Undocumented <unittest.TestLoader.loadTestsFromModule> TestLoader.loadTestsFromModule() parameter use_load_tests (deprecated and ignored since Python 3.2). An alias of the TextTestResult class: _TextTestResult (deprecated in Python 3.2). (Contributed by Serhiy Storchaka in bpo-45162.) https://bugs.python.org/issue45162 https://docs.python.org/3.11/whatsnew/3.11.html For the build logs, see: https://copr-be.cloud.fedoraproject.org/results/@python/python3.11/fedora-rawhide-x86_64/02988879-pyzor/ For all our attempts to build pyzor with Python 3.11, see: https://copr.fedorainfracloud.org/coprs/g/python/python3.11/package/pyzor/ Testing and mass rebuild of packages is happening in copr. You can follow these instructions to test locally in mock if your package builds with Python 3.11: https://copr.fedorainfracloud.org/coprs/g/python/python3.11/ Let us know here if you have any questions. Python 3.11 is planned to be included in Fedora 37. To make that update smoother, we're building Fedora packages with all pre-releases of Python 3.11. A build failure prevents us from testing all dependent packages (transitive [Build]Requires), so if this package is required a lot, it's important for us to get it fixed soon. We'd appreciate help from the people who know this package best, but if you don't want to work on this now, let us know so we can try to work around it on our side.
It's probably time to just drop this package entirely. Upstream hasn't done much of anything in quite some time. They might merge a PR if one were contributed, but I don't have the time to come up with one.