Bug 2026262 - py-radix fails to build with Python 3.11: AttributeError: 'LoadRadixPickle' object has no attribute 'assertEquals'
Summary: py-radix fails to build with Python 3.11: AttributeError: 'LoadRadixPickle' o...
Keywords:
Status: CLOSED DEFERRED
Alias: None
Product: Fedora
Classification: Fedora
Component: py-radix
Version: 36
Hardware: Unspecified
OS: Unspecified
unspecified
unspecified
Target Milestone: ---
Assignee: Kevin Fenzi
QA Contact: Fedora Extras Quality Assurance
URL:
Whiteboard:
Depends On:
Blocks: PYTHON3.11
TreeView+ depends on / blocked
 
Reported: 2021-11-24 08:09 UTC by Tomáš Hrnčiar
Modified: 2022-02-10 14:18 UTC (History)
3 users (show)

Fixed In Version:
Doc Type: If docs needed, set a value
Doc Text:
Clone Of:
Environment:
Last Closed: 2022-02-10 14:17:51 UTC
Type: Bug
Embargoed:


Attachments (Terms of Use)

Description Tomáš Hrnčiar 2021-11-24 08:09:50 UTC
py-radix fails to build with Python 3.11.0a2.

======================================================================
ERROR: test_radix_0_5_c_ext (tests.test_compat.LoadRadixPickle)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/builddir/build/BUILD/py-radix-0.9.3/tests/test_compat.py", line 41, in test_radix_0_5_c_ext
    self._check_file('radix-0.5-c_ext.pkl')
    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/builddir/build/BUILD/py-radix-0.9.3/tests/test_compat.py", line 33, in _check_file
    self.assertEquals(len(tree.nodes()), 3)
    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
AttributeError: 'LoadRadixPickle' object has no attribute 'assertEquals'

======================================================================
ERROR: test_radix_0_6_c_ext (tests.test_compat.LoadRadixPickle)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/builddir/build/BUILD/py-radix-0.9.3/tests/test_compat.py", line 44, in test_radix_0_6_c_ext
    self._check_file('radix-0.6-c_ext.pkl')
    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/builddir/build/BUILD/py-radix-0.9.3/tests/test_compat.py", line 33, in _check_file
    self.assertEquals(len(tree.nodes()), 3)
    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
AttributeError: 'LoadRadixPickle' object has no attribute 'assertEquals'

======================================================================
ERROR: test_radix_0_6_no_ext (tests.test_compat.LoadRadixPickle)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/builddir/build/BUILD/py-radix-0.9.3/tests/test_compat.py", line 47, in test_radix_0_6_no_ext
    self._check_file('radix-0.6-no_ext.pkl')
    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/builddir/build/BUILD/py-radix-0.9.3/tests/test_compat.py", line 33, in _check_file
    self.assertEquals(len(tree.nodes()), 3)
    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
AttributeError: 'LoadRadixPickle' object has no attribute 'assertEquals'

======================================================================
ERROR: test_10__use_after_free (tests.test_regression.TestRadix)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/builddir/build/BUILD/py-radix-0.9.3/tests/test_regression.py", line 171, in test_10__use_after_free
    self.assertEquals(node1.prefix, "10.0.0.0/8")
    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
AttributeError: 'TestRadix' object has no attribute 'assertEquals'

======================================================================
ERROR: test_12__inconsistent_masks4 (tests.test_regression.TestRadix)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/builddir/build/BUILD/py-radix-0.9.3/tests/test_regression.py", line 187, in test_12__inconsistent_masks4
    self.assertEquals(node1.prefix, "10.255.255.240/28")
    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
AttributeError: 'TestRadix' object has no attribute 'assertEquals'

======================================================================
ERROR: test_13__inconsistent_masks6 (tests.test_regression.TestRadix)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/builddir/build/BUILD/py-radix-0.9.3/tests/test_regression.py", line 196, in test_13__inconsistent_masks6
    self.assertEquals(node1.prefix, "dead:beef::/32")
    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
AttributeError: 'TestRadix' object has no attribute 'assertEquals'

======================================================================
ERROR: test_14__packed_addresses4 (tests.test_regression.TestRadix)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/builddir/build/BUILD/py-radix-0.9.3/tests/test_regression.py", line 202, in test_14__packed_addresses4
    self.assertEquals(node.family, socket.AF_INET)
    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
AttributeError: 'TestRadix' object has no attribute 'assertEquals'

======================================================================
ERROR: test_15__packed_addresses6 (tests.test_regression.TestRadix)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/builddir/build/BUILD/py-radix-0.9.3/tests/test_regression.py", line 213, in test_15__packed_addresses6
    self.assertEquals(node.family, socket.AF_INET6)
    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
AttributeError: 'TestRadix' object has no attribute 'assertEquals'

======================================================================
ERROR: test_16__bad_addresses (tests.test_regression.TestRadix)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/builddir/build/BUILD/py-radix-0.9.3/tests/test_regression.py", line 228, in test_16__bad_addresses
    self.assertEquals(len(tree.nodes()), 0)
    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
AttributeError: 'TestRadix' object has no attribute 'assertEquals'

======================================================================
ERROR: test_17__mixed_address_family (tests.test_regression.TestRadix)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/builddir/build/BUILD/py-radix-0.9.3/tests/test_regression.py", line 238, in test_17__mixed_address_family
    self.assertNotEquals(node1.prefix, node2.prefix)
    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
AttributeError: 'TestRadix' object has no attribute 'assertNotEquals'

======================================================================
ERROR: test_21__lots_of_prefixes (tests.test_regression.TestRadix)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/builddir/build/BUILD/py-radix-0.9.3/tests/test_regression.py", line 303, in test_21__lots_of_prefixes
    self.assertEquals(node.prefix, prefix)
    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
AttributeError: 'TestRadix' object has no attribute 'assertEquals'

======================================================================
ERROR: test_21__pickle (tests.test_regression.TestRadix)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/builddir/build/BUILD/py-radix-0.9.3/tests/test_regression.py", line 335, in test_21__pickle
    self.assertNotEquals(node, None)
    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
AttributeError: 'TestRadix' object has no attribute 'assertNotEquals'

======================================================================
ERROR: test_22__broken_sanitise (tests.test_regression.TestRadix)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/builddir/build/BUILD/py-radix-0.9.3/tests/test_regression.py", line 314, in test_22__broken_sanitise
    self.assertEquals(node.prefix, "255.254.0.0/15")
    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
AttributeError: 'TestRadix' object has no attribute 'assertEquals'

======================================================================
ERROR: test_22_search_best (tests.test_regression.TestRadix)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/builddir/build/BUILD/py-radix-0.9.3/tests/test_regression.py", line 373, in test_22_search_best
    self.assertEquals(
    ^^^^^^^^^^^^^^^^^^
AttributeError: 'TestRadix' object has no attribute 'assertEquals'

======================================================================
ERROR: test_24_search_worst (tests.test_regression.TestRadix)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/builddir/build/BUILD/py-radix-0.9.3/tests/test_regression.py", line 391, in test_24_search_worst
    self.assertEquals(
    ^^^^^^^^^^^^^^^^^^
AttributeError: 'TestRadix' object has no attribute 'assertEquals'

======================================================================
ERROR: test_25_search_default (tests.test_regression.TestRadix)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/builddir/build/BUILD/py-radix-0.9.3/tests/test_regression.py", line 403, in test_25_search_default
    self.assertEquals(
    ^^^^^^^^^^^^^^^^^^
AttributeError: 'TestRadix' object has no attribute 'assertEquals'

======================================================================
ERROR: test_26_search_covered (tests.test_regression.TestRadix)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/builddir/build/BUILD/py-radix-0.9.3/tests/test_regression.py", line 413, in test_26_search_covered
    self.assertEquals(
    ^^^^^^^^^^^^^^^^^^
AttributeError: 'TestRadix' object has no attribute 'assertEquals'

======================================================================
ERROR: test_27_search_covered_segfault (tests.test_regression.TestRadix)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/builddir/build/BUILD/py-radix-0.9.3/tests/test_regression.py", line 438, in test_27_search_covered_segfault
    self.assertEquals(
    ^^^^^^^^^^^^^^^^^^
AttributeError: 'TestRadix' object has no attribute 'assertEquals'

======================================================================
ERROR: test_28_search_covered_super_node_error (tests.test_regression.TestRadix)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/builddir/build/BUILD/py-radix-0.9.3/tests/test_regression.py", line 448, in test_28_search_covered_super_node_error
    self.assertEquals(
    ^^^^^^^^^^^^^^^^^^
AttributeError: 'TestRadix' object has no attribute 'assertEquals'

======================================================================
ERROR: test_29_search_covering (tests.test_regression.TestRadix)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/builddir/build/BUILD/py-radix-0.9.3/tests/test_regression.py", line 461, in test_29_search_covering
    self.assertEquals([n.prefix for n in
    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
AttributeError: 'TestRadix' object has no attribute 'assertEquals'

----------------------------------------------------------------------
Ran 39 tests in 0.150s

FAILED (errors=20)
Test failed: <unittest.runner.TextTestResult run=39 errors=20 failures=0>


======================================================================
ERROR: test_radix_0_5_c_ext (tests.test_compat.LoadRadixPickle)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/builddir/build/BUILD/py-radix-0.9.3/tests/test_compat.py", line 41, in test_radix_0_5_c_ext
    self._check_file('radix-0.5-c_ext.pkl')
    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/builddir/build/BUILD/py-radix-0.9.3/tests/test_compat.py", line 33, in _check_file
    self.assertEquals(len(tree.nodes()), 3)
    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
AttributeError: 'LoadRadixPickle' object has no attribute 'assertEquals'

======================================================================
ERROR: test_radix_0_6_c_ext (tests.test_compat.LoadRadixPickle)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/builddir/build/BUILD/py-radix-0.9.3/tests/test_compat.py", line 44, in test_radix_0_6_c_ext
    self._check_file('radix-0.6-c_ext.pkl')
    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/builddir/build/BUILD/py-radix-0.9.3/tests/test_compat.py", line 33, in _check_file
    self.assertEquals(len(tree.nodes()), 3)
    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
AttributeError: 'LoadRadixPickle' object has no attribute 'assertEquals'

======================================================================
ERROR: test_radix_0_6_no_ext (tests.test_compat.LoadRadixPickle)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/builddir/build/BUILD/py-radix-0.9.3/tests/test_compat.py", line 47, in test_radix_0_6_no_ext
    self._check_file('radix-0.6-no_ext.pkl')
    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/builddir/build/BUILD/py-radix-0.9.3/tests/test_compat.py", line 33, in _check_file
    self.assertEquals(len(tree.nodes()), 3)
    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
AttributeError: 'LoadRadixPickle' object has no attribute 'assertEquals'

======================================================================
ERROR: test_10__use_after_free (tests.test_regression.TestRadix)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/builddir/build/BUILD/py-radix-0.9.3/tests/test_regression.py", line 171, in test_10__use_after_free
    self.assertEquals(node1.prefix, "10.0.0.0/8")
    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
AttributeError: 'TestRadix' object has no attribute 'assertEquals'

======================================================================
ERROR: test_12__inconsistent_masks4 (tests.test_regression.TestRadix)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/builddir/build/BUILD/py-radix-0.9.3/tests/test_regression.py", line 187, in test_12__inconsistent_masks4
    self.assertEquals(node1.prefix, "10.255.255.240/28")
    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
AttributeError: 'TestRadix' object has no attribute 'assertEquals'

======================================================================
ERROR: test_13__inconsistent_masks6 (tests.test_regression.TestRadix)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/builddir/build/BUILD/py-radix-0.9.3/tests/test_regression.py", line 196, in test_13__inconsistent_masks6
    self.assertEquals(node1.prefix, "dead:beef::/32")
    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
AttributeError: 'TestRadix' object has no attribute 'assertEquals'

======================================================================
ERROR: test_14__packed_addresses4 (tests.test_regression.TestRadix)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/builddir/build/BUILD/py-radix-0.9.3/tests/test_regression.py", line 202, in test_14__packed_addresses4
    self.assertEquals(node.family, socket.AF_INET)
    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
AttributeError: 'TestRadix' object has no attribute 'assertEquals'

======================================================================
ERROR: test_15__packed_addresses6 (tests.test_regression.TestRadix)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/builddir/build/BUILD/py-radix-0.9.3/tests/test_regression.py", line 213, in test_15__packed_addresses6
    self.assertEquals(node.family, socket.AF_INET6)
    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
AttributeError: 'TestRadix' object has no attribute 'assertEquals'

======================================================================
ERROR: test_16__bad_addresses (tests.test_regression.TestRadix)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/builddir/build/BUILD/py-radix-0.9.3/tests/test_regression.py", line 228, in test_16__bad_addresses
    self.assertEquals(len(tree.nodes()), 0)
    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
AttributeError: 'TestRadix' object has no attribute 'assertEquals'

======================================================================
ERROR: test_17__mixed_address_family (tests.test_regression.TestRadix)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/builddir/build/BUILD/py-radix-0.9.3/tests/test_regression.py", line 238, in test_17__mixed_address_family
    self.assertNotEquals(node1.prefix, node2.prefix)
    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
AttributeError: 'TestRadix' object has no attribute 'assertNotEquals'

======================================================================
ERROR: test_21__lots_of_prefixes (tests.test_regression.TestRadix)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/builddir/build/BUILD/py-radix-0.9.3/tests/test_regression.py", line 303, in test_21__lots_of_prefixes
    self.assertEquals(node.prefix, prefix)
    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
AttributeError: 'TestRadix' object has no attribute 'assertEquals'

======================================================================
ERROR: test_21__pickle (tests.test_regression.TestRadix)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/builddir/build/BUILD/py-radix-0.9.3/tests/test_regression.py", line 335, in test_21__pickle
    self.assertNotEquals(node, None)
    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
AttributeError: 'TestRadix' object has no attribute 'assertNotEquals'

======================================================================
ERROR: test_22__broken_sanitise (tests.test_regression.TestRadix)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/builddir/build/BUILD/py-radix-0.9.3/tests/test_regression.py", line 314, in test_22__broken_sanitise
    self.assertEquals(node.prefix, "255.254.0.0/15")
    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
AttributeError: 'TestRadix' object has no attribute 'assertEquals'

======================================================================
ERROR: test_22_search_best (tests.test_regression.TestRadix)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/builddir/build/BUILD/py-radix-0.9.3/tests/test_regression.py", line 373, in test_22_search_best
    self.assertEquals(
    ^^^^^^^^^^^^^^^^^^
AttributeError: 'TestRadix' object has no attribute 'assertEquals'

======================================================================
ERROR: test_24_search_worst (tests.test_regression.TestRadix)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/builddir/build/BUILD/py-radix-0.9.3/tests/test_regression.py", line 391, in test_24_search_worst
    self.assertEquals(
    ^^^^^^^^^^^^^^^^^^
AttributeError: 'TestRadix' object has no attribute 'assertEquals'

======================================================================
ERROR: test_25_search_default (tests.test_regression.TestRadix)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/builddir/build/BUILD/py-radix-0.9.3/tests/test_regression.py", line 403, in test_25_search_default
    self.assertEquals(
    ^^^^^^^^^^^^^^^^^^
AttributeError: 'TestRadix' object has no attribute 'assertEquals'

======================================================================
ERROR: test_26_search_covered (tests.test_regression.TestRadix)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/builddir/build/BUILD/py-radix-0.9.3/tests/test_regression.py", line 413, in test_26_search_covered
    self.assertEquals(
    ^^^^^^^^^^^^^^^^^^
AttributeError: 'TestRadix' object has no attribute 'assertEquals'

======================================================================
ERROR: test_27_search_covered_segfault (tests.test_regression.TestRadix)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/builddir/build/BUILD/py-radix-0.9.3/tests/test_regression.py", line 438, in test_27_search_covered_segfault
    self.assertEquals(
    ^^^^^^^^^^^^^^^^^^
AttributeError: 'TestRadix' object has no attribute 'assertEquals'

======================================================================
ERROR: test_28_search_covered_super_node_error (tests.test_regression.TestRadix)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/builddir/build/BUILD/py-radix-0.9.3/tests/test_regression.py", line 448, in test_28_search_covered_super_node_error
    self.assertEquals(
    ^^^^^^^^^^^^^^^^^^
AttributeError: 'TestRadix' object has no attribute 'assertEquals'

======================================================================
ERROR: test_29_search_covering (tests.test_regression.TestRadix)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/builddir/build/BUILD/py-radix-0.9.3/tests/test_regression.py", line 461, in test_29_search_covering
    self.assertEquals([n.prefix for n in
    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
AttributeError: 'TestRadix' object has no attribute 'assertEquals'

----------------------------------------------------------------------
Ran 39 tests in 0.150s

FAILED (errors=20)
Test failed: <unittest.runner.TextTestResult run=39 errors=20 failures=0>

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/02985406-py-radix/

For all our attempts to build py-radix with Python 3.11, see:
https://copr.fedorainfracloud.org/coprs/g/python/python3.11/package/py-radix/

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.

Comment 1 Ben Cotton 2022-02-08 21:26:21 UTC
This bug appears to have been reported against 'rawhide' during the Fedora 36 development cycle.
Changing version to 36.

Comment 2 Tomáš Hrnčiar 2022-02-10 14:17:51 UTC
Removal of unittest aliases was reverted in Python 3.11 and will be part of Python 3.12, so the above failure is not present anymore, thus I am closing this bugzilla. However, this will be needed next year though so I encourage you to communicate with the upstream about it.

Comment 3 Tomáš Hrnčiar 2022-02-10 14:18:24 UTC
Removal of unittest aliases was reverted in Python 3.11 and will be part of Python 3.12, so the above failure is not present anymore, thus I am closing this bugzilla. However, this will be needed next year though so I encourage you to communicate with the upstream about it.


Note You need to log in before you can comment on or make changes to this bug.