Bug 2026920

Summary: python-etcd fails to build with Python 3.11: AttributeError: 'TestClient' object has no attribute 'assertEquals'
Product: [Fedora] Fedora Reporter: Tomáš Hrnčiar <thrnciar>
Component: python-etcdAssignee: Matthew Barnes <mbarnes>
Status: CLOSED DEFERRED QA Contact: Fedora Extras Quality Assurance <extras-qa>
Severity: unspecified Docs Contact:
Priority: unspecified    
Version: 36CC: hugovk+redhatbugzilla, mbarnes, mhroncok, smilner, thrnciar
Target Milestone: ---   
Target Release: ---   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: Doc Type: If docs needed, set a value
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2022-02-10 14:17:51 UTC Type: Bug
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:
Bug Depends On:    
Bug Blocks: 2016048    

Description Tomáš Hrnčiar 2021-11-26 13:37:22 UTC
python-etcd fails to build with Python 3.11.0a2.

======================================================================
ERROR: Verify _set_version_info makes the proper call to the server
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/builddir/build/BUILD/python-etcd-0.4.5/src/etcd/tests/unit/test_client.py", line 145, in test__set_version_info
    self.assertEquals('2.2.3', client.version)
    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
AttributeError: 'TestClient' object has no attribute 'assertEquals'
-------------------- >> begin captured logging << --------------------
etcd.client: DEBUG: New etcd client created for http://127.0.0.1:4001
--------------------- >> end captured logging << ---------------------

======================================================================
ERROR: Ensure the cluster version property is set on first access.
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/builddir/build/BUILD/python-etcd-0.4.5/src/etcd/tests/unit/test_client.py", line 174, in test_cluster_version_property
    self.assertEquals('2.3.0', client.cluster_version)
    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
AttributeError: 'TestClient' object has no attribute 'assertEquals'
-------------------- >> begin captured logging << --------------------
etcd.client: DEBUG: New etcd client created for http://127.0.0.1:4001
--------------------- >> end captured logging << ---------------------

======================================================================
ERROR: Tests discovery.
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/builddir/build/BUILD/python-etcd-0.4.5/src/etcd/tests/unit/test_client.py", line 210, in test_discover
    self.assertEquals(c.host, u'etcd1.example.com')
    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
AttributeError: 'TestClient' object has no attribute 'assertEquals'
-------------------- >> begin captured logging << --------------------
etcd.client: DEBUG: Found [('etcd1.example.com', 2379), ('etcd2.example.com', 2379)]
etcd.client: DEBUG: New etcd client created for https://etcd1.example.com:2379
etcd.client: DEBUG: Machines cache initialised to ['https://etcd2.example.com:2379']
--------------------- >> end captured logging << ---------------------

======================================================================
ERROR: Ensure the version property is set on first access.
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/builddir/build/BUILD/python-etcd-0.4.5/src/etcd/tests/unit/test_client.py", line 160, in test_version_property
    self.assertEquals('2.2.3', client.version)
    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
AttributeError: 'TestClient' object has no attribute 'assertEquals'
-------------------- >> begin captured logging << --------------------
etcd.client: DEBUG: New etcd client created for http://127.0.0.1:4001
--------------------- >> end captured logging << ---------------------

======================================================================
ERROR: Acquiring a precedingly inexistent lock works.
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/builddir/build/BUILD/python-etcd-0.4.5/src/etcd/tests/unit/test_lock.py", line 55, in test_acquire
    self.assertEquals(l.acquire(), True)
    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
AttributeError: 'TestClientLock' object has no attribute 'assertEquals'
-------------------- >> begin captured logging << --------------------
etcd.client: DEBUG: New etcd client created for http://127.0.0.1:4001
etcd.lock: DEBUG: Initiating lock for /_locks/test_lock with uuid 4af55348a9a145c29bb552033fd03da5
etcd.lock: DEBUG: Initiating lock for /_locks/test_lock with uuid 071522112c9948e4ba435e70549f9174
--------------------- >> end captured logging << ---------------------

======================================================================
ERROR: test_find_lock (etcd.tests.unit.test_lock.TestClientLock)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/builddir/build/BUILD/python-etcd-0.4.5/src/etcd/tests/unit/test_lock.py", line 174, in test_find_lock
    self.assertEquals(self.locker._sequence, '34')
    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
AttributeError: 'TestClientLock' object has no attribute 'assertEquals'
-------------------- >> begin captured logging << --------------------
etcd.client: DEBUG: New etcd client created for http://127.0.0.1:4001
etcd.lock: DEBUG: Initiating lock for /_locks/test_lock with uuid 59ef077b2c5244e29a531c5fcac61fc7
etcd.client: DEBUG: Issuing read for key /_locks/test_lock/1 with args {}
etcd.client: DEBUG: Issuing read for key /_locks/test_lock/1 with args {}
etcd.client: DEBUG: Issuing read for key /_locks/test_lock with args {'recursive': True}
--------------------- >> end captured logging << ---------------------

======================================================================
ERROR: test_get_locker (etcd.tests.unit.test_lock.TestClientLock)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/builddir/build/BUILD/python-etcd-0.4.5/src/etcd/tests/unit/test_lock.py", line 178, in test_get_locker
    self.assertEquals((u'/_locks/test_lock/1', etcd.EtcdResult(node={'newKey': False, '_children': [], 'createdIndex': 33, 'modifiedIndex': 33, 'value': u'2qwwwq', 'expiration': None, 'key': u'/_locks/test_lock/1', 'ttl': None, 'action': None, 'dir': False})),
    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
AttributeError: 'TestClientLock' object has no attribute 'assertEquals'
-------------------- >> begin captured logging << --------------------
etcd.client: DEBUG: New etcd client created for http://127.0.0.1:4001
etcd.lock: DEBUG: Initiating lock for /_locks/test_lock with uuid 2bae871012d848a8854e4cf1843eb57a
--------------------- >> end captured logging << ---------------------

======================================================================
ERROR: Verify the lock gets initialized correctly
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/builddir/build/BUILD/python-etcd-0.4.5/src/etcd/tests/unit/test_lock.py", line 34, in test_initialization
    self.assertEquals(self.locker.name, u'test_lock')
    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
AttributeError: 'TestClientLock' object has no attribute 'assertEquals'
-------------------- >> begin captured logging << --------------------
etcd.client: DEBUG: New etcd client created for http://127.0.0.1:4001
etcd.lock: DEBUG: Initiating lock for /_locks/test_lock with uuid c3e178a513414123b47bcd42cf8839fc
--------------------- >> end captured logging << ---------------------

======================================================================
ERROR: Test is_acquired
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/builddir/build/BUILD/python-etcd-0.4.5/src/etcd/tests/unit/test_lock.py", line 73, in test_is_acquired
    self.assertEquals(self.locker.is_acquired, True)
    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
AttributeError: 'TestClientLock' object has no attribute 'assertEquals'
-------------------- >> begin captured logging << --------------------
etcd.client: DEBUG: New etcd client created for http://127.0.0.1:4001
etcd.lock: DEBUG: Initiating lock for /_locks/test_lock with uuid 4fba31f6aacc437f8cbaacd2c31be2e0
--------------------- >> end captured logging << ---------------------

======================================================================
ERROR: Test is_acquired failures
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/builddir/build/BUILD/python-etcd-0.4.5/src/etcd/tests/unit/test_lock.py", line 81, in test_is_not_acquired
    self.assertEquals(self.locker.is_acquired, False)
    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
AttributeError: 'TestClientLock' object has no attribute 'assertEquals'
-------------------- >> begin captured logging << --------------------
etcd.client: DEBUG: New etcd client created for http://127.0.0.1:4001
etcd.lock: DEBUG: Initiating lock for /_locks/test_lock with uuid 84fbf55919f4477aaaad929603d9456c
--------------------- >> end captured logging << ---------------------

======================================================================
ERROR: Test responses from the lock_key property
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/builddir/build/BUILD/python-etcd-0.4.5/src/etcd/tests/unit/test_lock.py", line 150, in test_lock_key
    self.assertEquals(u'/_locks/test_lock/5',self.locker.lock_key)
    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
AttributeError: 'TestClientLock' object has no attribute 'assertEquals'
-------------------- >> begin captured logging << --------------------
etcd.client: DEBUG: New etcd client created for http://127.0.0.1:4001
etcd.lock: DEBUG: Initiating lock for /_locks/test_lock with uuid 7f7f20ac8ffb47149c19010b4952f419
--------------------- >> end captured logging << ---------------------

======================================================================
ERROR: test_set_sequence (etcd.tests.unit.test_lock.TestClientLock)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/builddir/build/BUILD/python-etcd-0.4.5/src/etcd/tests/unit/test_lock.py", line 154, in test_set_sequence
    self.assertEquals('10', self.locker._sequence)
    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
AttributeError: 'TestClientLock' object has no attribute 'assertEquals'
-------------------- >> begin captured logging << --------------------
etcd.client: DEBUG: New etcd client created for http://127.0.0.1:4001
etcd.lock: DEBUG: Initiating lock for /_locks/test_lock with uuid 2c639838d1dd4a3cb3a756059565be6b
--------------------- >> end captured logging << ---------------------

======================================================================
ERROR: http delete request
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/builddir/build/BUILD/python-etcd-0.4.5/src/etcd/tests/unit/test_old_request.py", line 278, in test_delete
    self.assertEquals('arbitrary json data'.encode('utf-8'), result.data)
    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
AttributeError: 'TestClientApiExecutor' object has no attribute 'assertEquals'
-------------------- >> begin captured logging << --------------------
etcd.client: DEBUG: New etcd client created for http://127.0.0.1:4001
--------------------- >> end captured logging << ---------------------

======================================================================
ERROR: http get request
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/builddir/build/BUILD/python-etcd-0.4.5/src/etcd/tests/unit/test_old_request.py", line 270, in test_get
    self.assertEquals('arbitrary json data'.encode('utf-8'), result.data)
    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
AttributeError: 'TestClientApiExecutor' object has no attribute 'assertEquals'
-------------------- >> begin captured logging << --------------------
etcd.client: DEBUG: New etcd client created for http://127.0.0.1:4001
--------------------- >> end captured logging << ---------------------

======================================================================
ERROR: http get error request 101
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/builddir/build/BUILD/python-etcd-0.4.5/src/etcd/tests/unit/test_old_request.py", line 292, in test_get_error
    self.assertEquals(str(e), 'message : cause')
    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
AttributeError: 'TestClientApiExecutor' object has no attribute 'assertEquals'
-------------------- >> begin captured logging << --------------------
etcd.client: DEBUG: New etcd client created for http://127.0.0.1:4001
--------------------- >> end captured logging << ---------------------

======================================================================
ERROR: http put request
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/builddir/build/BUILD/python-etcd-0.4.5/src/etcd/tests/unit/test_old_request.py", line 300, in test_put
    self.assertEquals('arbitrary json data'.encode('utf-8'), result.data)
    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
AttributeError: 'TestClientApiExecutor' object has no attribute 'assertEquals'
-------------------- >> begin captured logging << --------------------
etcd.client: DEBUG: New etcd client created for http://127.0.0.1:4001
--------------------- >> end captured logging << ---------------------

======================================================================
ERROR: http post error request 102
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/builddir/build/BUILD/python-etcd-0.4.5/src/etcd/tests/unit/test_old_request.py", line 328, in test_set_not_file_error
    self.assertEquals('message : cause', str(e))
    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
AttributeError: 'TestClientApiExecutor' object has no attribute 'assertEquals'
-------------------- >> begin captured logging << --------------------
etcd.client: DEBUG: New etcd client created for http://127.0.0.1:4001
--------------------- >> end captured logging << ---------------------

======================================================================
ERROR: http post error request 101
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/builddir/build/BUILD/python-etcd-0.4.5/src/etcd/tests/unit/test_old_request.py", line 314, in test_test_and_set_error
    self.assertEquals('message : cause', str(e))
    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
AttributeError: 'TestClientApiExecutor' object has no attribute 'assertEquals'
-------------------- >> begin captured logging << --------------------
etcd.client: DEBUG: New etcd client created for http://127.0.0.1:4001
--------------------- >> end captured logging << ---------------------

======================================================================
ERROR: Can delete a value
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/builddir/build/BUILD/python-etcd-0.4.5/src/etcd/tests/unit/test_old_request.py", line 114, in test_delete
    self.assertEquals(etcd.EtcdResult(
    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
AttributeError: 'TestClientRequest' object has no attribute 'assertEquals'
-------------------- >> begin captured logging << --------------------
etcd.client: DEBUG: New etcd client created for http://127.0.0.1:4001
etcd.client: DEBUG: Deleting /testkey recursive=None dir=None extra args={}
etcd.client: DEBUG: Calculated params = {}
--------------------- >> end captured logging << ---------------------

======================================================================
ERROR: Can get a value
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/builddir/build/BUILD/python-etcd-0.4.5/src/etcd/tests/unit/test_old_request.py", line 136, in test_get
    self.assertEquals(etcd.EtcdResult(
    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
AttributeError: 'TestClientRequest' object has no attribute 'assertEquals'
-------------------- >> begin captured logging << --------------------
etcd.client: DEBUG: New etcd client created for http://127.0.0.1:4001
etcd.client: DEBUG: Issuing read for key /testkey with args {}
--------------------- >> end captured logging << ---------------------

======================================================================
ERROR: Can check if key is in client
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/builddir/build/BUILD/python-etcd-0.4.5/src/etcd/tests/unit/test_old_request.py", line 172, in test_in
    self.assertEquals(True, result)
    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
AttributeError: 'TestClientRequest' object has no attribute 'assertEquals'
-------------------- >> begin captured logging << --------------------
etcd.client: DEBUG: New etcd client created for http://127.0.0.1:4001
etcd.client: DEBUG: Issuing read for key /testkey with args {}
--------------------- >> end captured logging << ---------------------

======================================================================
ERROR: Can watch values from index
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/builddir/build/BUILD/python-etcd-0.4.5/src/etcd/tests/unit/test_old_request.py", line 216, in test_index_watch
    self.assertEquals(
    ^^^^^^^^^^^^^^^^^^
AttributeError: 'TestClientRequest' object has no attribute 'assertEquals'
-------------------- >> begin captured logging << --------------------
etcd.client: DEBUG: New etcd client created for http://127.0.0.1:4001
etcd.client: DEBUG: About to wait on key /testkey, index 180
etcd.client: DEBUG: Issuing read for key /testkey with args {'wait': True, 'waitIndex': 180, 'timeout': None, 'recursive': None}
--------------------- >> end captured logging << ---------------------

======================================================================
ERROR: Can check if key is not in client
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/builddir/build/BUILD/python-etcd-0.4.5/src/etcd/tests/unit/test_old_request.py", line 157, in test_not_in
    self.assertEquals(True, result)
    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
AttributeError: 'TestClientRequest' object has no attribute 'assertEquals'
-------------------- >> begin captured logging << --------------------
etcd.client: DEBUG: New etcd client created for http://127.0.0.1:4001
--------------------- >> end captured logging << ---------------------

======================================================================
ERROR: Can set a value
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/builddir/build/BUILD/python-etcd-0.4.5/src/etcd/tests/unit/test_old_request.py", line 45, in test_set
    self.assertEquals(
    ^^^^^^^^^^^^^^^^^^
AttributeError: 'TestClientRequest' object has no attribute 'assertEquals'
-------------------- >> begin captured logging << --------------------
etcd.client: DEBUG: New etcd client created for http://127.0.0.1:4001
etcd.client: DEBUG: Writing test to key /testkey ttl=19 dir=False append=False
--------------------- >> end captured logging << ---------------------

======================================================================
ERROR: Can watch values
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/builddir/build/BUILD/python-etcd-0.4.5/src/etcd/tests/unit/test_old_request.py", line 189, in test_simple_watch
    self.assertEquals(
    ^^^^^^^^^^^^^^^^^^
AttributeError: 'TestClientRequest' object has no attribute 'assertEquals'
-------------------- >> begin captured logging << --------------------
etcd.client: DEBUG: New etcd client created for http://127.0.0.1:4001
etcd.client: DEBUG: About to wait on key /testkey, index None
etcd.client: DEBUG: Issuing read for key /testkey with args {'wait': True, 'timeout': None, 'recursive': None}
--------------------- >> end captured logging << ---------------------

======================================================================
ERROR: Can test and set a value
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/builddir/build/BUILD/python-etcd-0.4.5/src/etcd/tests/unit/test_old_request.py", line 70, in test_test_and_set
    self.assertEquals(
    ^^^^^^^^^^^^^^^^^^
AttributeError: 'TestClientRequest' object has no attribute 'assertEquals'
-------------------- >> begin captured logging << --------------------
etcd.client: DEBUG: New etcd client created for http://127.0.0.1:4001
etcd.client: DEBUG: Writing newvalue to key /testkey ttl=19 dir=False append=False
--------------------- >> end captured logging << ---------------------

======================================================================
ERROR: Exception will be raised if prevValue != value in test_set
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/builddir/build/BUILD/python-etcd-0.4.5/src/etcd/tests/unit/test_old_request.py", line 97, in test_test_and_test_failure
    self.assertEquals(
    ^^^^^^^^^^^^^^^^^^
AttributeError: 'TestClientRequest' object has no attribute 'assertEquals'
-------------------- >> begin captured logging << --------------------
etcd.client: DEBUG: New etcd client created for http://127.0.0.1:4001
etcd.client: DEBUG: Writing newvalue to key /testkey ttl=19 dir=False append=False
--------------------- >> end captured logging << ---------------------

======================================================================
ERROR: Can set compare-and-swap a value
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/builddir/build/BUILD/python-etcd-0.4.5/src/etcd/tests/unit/test_request.py", line 256, in test_compare_and_swap
    self.assertEquals(res, etcd.EtcdResult(**d))
    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
AttributeError: 'TestClientApiInterface' object has no attribute 'assertEquals'
-------------------- >> begin captured logging << --------------------
etcd.client: DEBUG: New etcd client created for http://127.0.0.1:4001
etcd.client: DEBUG: Writing test to key /testkey ttl=None dir=False append=False
--------------------- >> end captured logging << ---------------------

======================================================================
ERROR: Can delete a value
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/builddir/build/BUILD/python-etcd-0.4.5/src/etcd/tests/unit/test_request.py", line 301, in test_delete
    self.assertEquals(res, etcd.EtcdResult(**d))
    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
AttributeError: 'TestClientApiInterface' object has no attribute 'assertEquals'
-------------------- >> begin captured logging << --------------------
etcd.client: DEBUG: New etcd client created for http://127.0.0.1:4001
etcd.client: DEBUG: Deleting /testKey recursive=None dir=None extra args={}
etcd.client: DEBUG: Calculated params = {}
--------------------- >> end captured logging << ---------------------

======================================================================
ERROR: Can get values in dirs
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/builddir/build/BUILD/python-etcd-0.4.5/src/etcd/tests/unit/test_request.py", line 361, in test_get_dir
    self.assertEquals(res, etcd.EtcdResult(**d))
    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
AttributeError: 'TestClientApiInterface' object has no attribute 'assertEquals'
-------------------- >> begin captured logging << --------------------
etcd.client: DEBUG: New etcd client created for http://127.0.0.1:4001
etcd.client: DEBUG: Issuing read for key /testDir with args {'recursive': True}
--------------------- >> end captured logging << ---------------------

======================================================================
ERROR: Can request the leader
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/usr/lib/python3.11/site-packages/mock/mock.py", line 1330, in patched
    return func(*args, **keywargs)
           ^^^^^^^^^^^^^^^^^^^^^^^
  File "/builddir/build/BUILD/python-etcd-0.4.5/src/etcd/tests/unit/test_request.py", line 166, in test_leader
    self.assertEquals(self.client.leader, members["ce2a822cea30bfca"])
    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
AttributeError: 'TestClientApiInterface' object has no attribute 'assertEquals'
-------------------- >> begin captured logging << --------------------
etcd.client: DEBUG: New etcd client created for http://127.0.0.1:4001
--------------------- >> end captured logging << ---------------------

======================================================================
ERROR: Request for leader stats
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/builddir/build/BUILD/python-etcd-0.4.5/src/etcd/tests/unit/test_request.py", line 157, in test_leader_stats
    self.assertEquals(self.client.leader_stats['leader'], "924e2e83e93f2560")
    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
AttributeError: 'TestClientApiInterface' object has no attribute 'assertEquals'
-------------------- >> begin captured logging << --------------------
etcd.client: DEBUG: New etcd client created for http://127.0.0.1:4001
--------------------- >> end captured logging << ---------------------

======================================================================
ERROR: Can request machines
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/usr/lib/python3.11/site-packages/mock/mock.py", line 1330, in patched
    return func(*args, **keywargs)
           ^^^^^^^^^^^^^^^^^^^^^^^
  File "/builddir/build/BUILD/python-etcd-0.4.5/src/etcd/tests/unit/test_request.py", line 89, in test_machines
    self.assertEquals(data, self.client.machines)
    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
AttributeError: 'TestClientApiInterface' object has no attribute 'assertEquals'
-------------------- >> begin captured logging << --------------------
etcd.client: DEBUG: New etcd client created for http://127.0.0.1:4001
--------------------- >> end captured logging << ---------------------

======================================================================
ERROR: Can request machines
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/builddir/build/BUILD/python-etcd-0.4.5/src/etcd/tests/unit/test_request.py", line 131, in test_members
    self.assertEquals(self.client.members["ce2a822cea30bfca"]["id"], "ce2a822cea30bfca")
    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
AttributeError: 'TestClientApiInterface' object has no attribute 'assertEquals'
-------------------- >> begin captured logging << --------------------
etcd.client: DEBUG: New etcd client created for http://127.0.0.1:4001
--------------------- >> end captured logging << ---------------------

======================================================================
ERROR: Can set a new value
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/builddir/build/BUILD/python-etcd-0.4.5/src/etcd/tests/unit/test_request.py", line 218, in test_newkey
    self.assertEquals(res, etcd.EtcdResult(**d))
    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
AttributeError: 'TestClientApiInterface' object has no attribute 'assertEquals'
-------------------- >> begin captured logging << --------------------
etcd.client: DEBUG: New etcd client created for http://127.0.0.1:4001
etcd.client: DEBUG: Writing test to key /testkey ttl=None dir=False append=False
--------------------- >> end captured logging << ---------------------

======================================================================
ERROR: Can pop a value
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/builddir/build/BUILD/python-etcd-0.4.5/src/etcd/tests/unit/test_request.py", line 319, in test_pop
    self.assertEquals({attr: getattr(res, attr) for attr in dir(res)
    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
AttributeError: 'TestClientApiInterface' object has no attribute 'assertEquals'
-------------------- >> begin captured logging << --------------------
etcd.client: DEBUG: New etcd client created for http://127.0.0.1:4001
etcd.client: DEBUG: Deleting /testkey recursive=None dir=None extra args={}
etcd.client: DEBUG: Calculated params = {}
--------------------- >> end captured logging << ---------------------

======================================================================
ERROR: Can get a value
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/builddir/build/BUILD/python-etcd-0.4.5/src/etcd/tests/unit/test_request.py", line 335, in test_read
    self.assertEquals(res, etcd.EtcdResult(**d))
    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
AttributeError: 'TestClientApiInterface' object has no attribute 'assertEquals'
-------------------- >> begin captured logging << --------------------
etcd.client: DEBUG: New etcd client created for http://127.0.0.1:4001
etcd.client: DEBUG: Issuing read for key /testKey with args {}
--------------------- >> end captured logging << ---------------------

======================================================================
ERROR: Can refresh a new value
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/builddir/build/BUILD/python-etcd-0.4.5/src/etcd/tests/unit/test_request.py", line 235, in test_refresh
    self.assertEquals(res, etcd.EtcdResult(**d))
    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
AttributeError: 'TestClientApiInterface' object has no attribute 'assertEquals'
-------------------- >> begin captured logging << --------------------
etcd.client: DEBUG: New etcd client created for http://127.0.0.1:4001
etcd.client: DEBUG: Writing None to key /testkey ttl=600 dir=False append=False
--------------------- >> end captured logging << ---------------------

======================================================================
ERROR: Request for stats
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/builddir/build/BUILD/python-etcd-0.4.5/src/etcd/tests/unit/test_request.py", line 151, in test_self_stats
    self.assertEquals(self.client.stats['name'], "node3")
    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
AttributeError: 'TestClientApiInterface' object has no attribute 'assertEquals'
-------------------- >> begin captured logging << --------------------
etcd.client: DEBUG: New etcd client created for http://127.0.0.1:4001
--------------------- >> end captured logging << ---------------------

======================================================================
ERROR: Can append a new key
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/builddir/build/BUILD/python-etcd-0.4.5/src/etcd/tests/unit/test_request.py", line 282, in test_set_append
    self.assertEquals(res.createdIndex, 190)
    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
AttributeError: 'TestClientApiInterface' object has no attribute 'assertEquals'
-------------------- >> begin captured logging << --------------------
etcd.client: DEBUG: New etcd client created for http://127.0.0.1:4001
etcd.client: DEBUG: Writing test to key /testdir ttl=None dir=False append=False
--------------------- >> end captured logging << ---------------------

======================================================================
ERROR: Can set a value
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/builddir/build/BUILD/python-etcd-0.4.5/src/etcd/tests/unit/test_request.py", line 182, in test_set_plain
    self.assertEquals(res, etcd.EtcdResult(**d))
    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
AttributeError: 'TestClientApiInterface' object has no attribute 'assertEquals'
-------------------- >> begin captured logging << --------------------
etcd.client: DEBUG: New etcd client created for http://127.0.0.1:4001
etcd.client: DEBUG: Writing test to key /testkey ttl=None dir=False append=False
--------------------- >> end captured logging << ---------------------

======================================================================
ERROR: Can update a result.
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/builddir/build/BUILD/python-etcd-0.4.5/src/etcd/tests/unit/test_request.py", line 201, in test_update
    self.assertEquals(newres.value, 'ciao')
    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
AttributeError: 'TestClientApiInterface' object has no attribute 'assertEquals'
-------------------- >> begin captured logging << --------------------
etcd.client: DEBUG: New etcd client created for http://127.0.0.1:4001
etcd.client: DEBUG: Issuing read for key /testkey with args {}
etcd.client: DEBUG: Updating /testkey to ciao.
etcd.client: DEBUG: Writing ciao to key /testkey ttl=19 dir=False append=False
--------------------- >> end captured logging << ---------------------

======================================================================
ERROR: Do not overwrite the machines cache when using proxies
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/usr/lib/python3.11/site-packages/mock/mock.py", line 1330, in patched
    return func(*args, **keywargs)
           ^^^^^^^^^^^^^^^^^^^^^^^
  File "/builddir/build/BUILD/python-etcd-0.4.5/src/etcd/tests/unit/test_request.py", line 104, in test_use_proxies
    self.assertEquals(c._machines_cache, ['https://localproxy:4001'])
    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
AttributeError: 'TestClientApiInterface' object has no attribute 'assertEquals'
-------------------- >> begin captured logging << --------------------
etcd.client: DEBUG: New etcd client created for http://127.0.0.1:4001
etcd.client: DEBUG: New etcd client created for https://localhost:4001
etcd.client: DEBUG: Machines cache initialised to ['https://localproxy:4001']
--------------------- >> end captured logging << ---------------------

======================================================================
ERROR: Can watch a key
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/builddir/build/BUILD/python-etcd-0.4.5/src/etcd/tests/unit/test_request.py", line 393, in test_watch
    self.assertEquals(res, etcd.EtcdResult(**d))
    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
AttributeError: 'TestClientApiInterface' object has no attribute 'assertEquals'
-------------------- >> begin captured logging << --------------------
etcd.client: DEBUG: New etcd client created for http://127.0.0.1:4001
etcd.client: DEBUG: Issuing read for key /testkey with args {'wait': True}
--------------------- >> end captured logging << ---------------------

======================================================================
ERROR: Can watch a key starting from the given Index
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/builddir/build/BUILD/python-etcd-0.4.5/src/etcd/tests/unit/test_request.py", line 407, in test_watch_index
    self.assertEquals(res, etcd.EtcdResult(**d))
    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
AttributeError: 'TestClientApiInterface' object has no attribute 'assertEquals'
-------------------- >> begin captured logging << --------------------
etcd.client: DEBUG: New etcd client created for http://127.0.0.1:4001
etcd.client: DEBUG: Issuing read for key /testkey with args {'wait': True, 'waitIndex': True}
--------------------- >> end captured logging << ---------------------

======================================================================
ERROR: Calling `write` without a value argument will omit the `value` from
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/builddir/build/BUILD/python-etcd-0.4.5/src/etcd/tests/unit/test_request.py", line 71, in test_write_no_params
    self.assertEquals(self.client.api_execute.call_args,
    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
AttributeError: 'TestClientApiInternals' object has no attribute 'assertEquals'
-------------------- >> begin captured logging << --------------------
etcd.client: DEBUG: New etcd client created for http://127.0.0.1:4001
etcd.client: DEBUG: Writing None to key /newdir ttl=None dir=True append=False
--------------------- >> end captured logging << ---------------------

======================================================================
ERROR: Can set compare-and-swap a value
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/builddir/build/BUILD/python-etcd-0.4.5/src/etcd/tests/unit/test_request.py", line 256, in test_compare_and_swap
    self.assertEquals(res, etcd.EtcdResult(**d))
    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
AttributeError: 'TestClientRequest' object has no attribute 'assertEquals'
-------------------- >> begin captured logging << --------------------
etcd.client: DEBUG: New etcd client created for http://127.0.0.1:4001
etcd.client: DEBUG: Writing test to key /testkey ttl=None dir=False append=False
--------------------- >> end captured logging << ---------------------

======================================================================
ERROR: Can delete a value
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/builddir/build/BUILD/python-etcd-0.4.5/src/etcd/tests/unit/test_request.py", line 301, in test_delete
    self.assertEquals(res, etcd.EtcdResult(**d))
    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
AttributeError: 'TestClientRequest' object has no attribute 'assertEquals'
-------------------- >> begin captured logging << --------------------
etcd.client: DEBUG: New etcd client created for http://127.0.0.1:4001
etcd.client: DEBUG: Deleting /testKey recursive=None dir=None extra args={}
etcd.client: DEBUG: Calculated params = {}
--------------------- >> end captured logging << ---------------------

======================================================================
ERROR: Can get values in dirs
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/builddir/build/BUILD/python-etcd-0.4.5/src/etcd/tests/unit/test_request.py", line 361, in test_get_dir
    self.assertEquals(res, etcd.EtcdResult(**d))
    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
AttributeError: 'TestClientRequest' object has no attribute 'assertEquals'
-------------------- >> begin captured logging << --------------------
etcd.client: DEBUG: New etcd client created for http://127.0.0.1:4001
etcd.client: DEBUG: Issuing read for key /testDir with args {'recursive': True}
--------------------- >> end captured logging << ---------------------

======================================================================
ERROR: Can request the leader
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/usr/lib/python3.11/site-packages/mock/mock.py", line 1330, in patched
    return func(*args, **keywargs)
           ^^^^^^^^^^^^^^^^^^^^^^^
  File "/builddir/build/BUILD/python-etcd-0.4.5/src/etcd/tests/unit/test_request.py", line 166, in test_leader
    self.assertEquals(self.client.leader, members["ce2a822cea30bfca"])
    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
AttributeError: 'TestClientRequest' object has no attribute 'assertEquals'
-------------------- >> begin captured logging << --------------------
etcd.client: DEBUG: New etcd client created for http://127.0.0.1:4001
--------------------- >> end captured logging << ---------------------

======================================================================
ERROR: Request for leader stats
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/builddir/build/BUILD/python-etcd-0.4.5/src/etcd/tests/unit/test_request.py", line 157, in test_leader_stats
    self.assertEquals(self.client.leader_stats['leader'], "924e2e83e93f2560")
    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
AttributeError: 'TestClientRequest' object has no attribute 'assertEquals'
-------------------- >> begin captured logging << --------------------
etcd.client: DEBUG: New etcd client created for http://127.0.0.1:4001
--------------------- >> end captured logging << ---------------------

======================================================================
ERROR: Can request machines
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/usr/lib/python3.11/site-packages/mock/mock.py", line 1330, in patched
    return func(*args, **keywargs)
           ^^^^^^^^^^^^^^^^^^^^^^^
  File "/builddir/build/BUILD/python-etcd-0.4.5/src/etcd/tests/unit/test_request.py", line 89, in test_machines
    self.assertEquals(data, self.client.machines)
    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
AttributeError: 'TestClientRequest' object has no attribute 'assertEquals'
-------------------- >> begin captured logging << --------------------
etcd.client: DEBUG: New etcd client created for http://127.0.0.1:4001
--------------------- >> end captured logging << ---------------------

======================================================================
ERROR: Can request machines
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/builddir/build/BUILD/python-etcd-0.4.5/src/etcd/tests/unit/test_request.py", line 131, in test_members
    self.assertEquals(self.client.members["ce2a822cea30bfca"]["id"], "ce2a822cea30bfca")
    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
AttributeError: 'TestClientRequest' object has no attribute 'assertEquals'
-------------------- >> begin captured logging << --------------------
etcd.client: DEBUG: New etcd client created for http://127.0.0.1:4001
--------------------- >> end captured logging << ---------------------

======================================================================
ERROR: Can set a new value
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/builddir/build/BUILD/python-etcd-0.4.5/src/etcd/tests/unit/test_request.py", line 218, in test_newkey
    self.assertEquals(res, etcd.EtcdResult(**d))
    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
AttributeError: 'TestClientRequest' object has no attribute 'assertEquals'
-------------------- >> begin captured logging << --------------------
etcd.client: DEBUG: New etcd client created for http://127.0.0.1:4001
etcd.client: DEBUG: Writing test to key /testkey ttl=None dir=False append=False
--------------------- >> end captured logging << ---------------------

======================================================================
ERROR: Can pop a value
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/builddir/build/BUILD/python-etcd-0.4.5/src/etcd/tests/unit/test_request.py", line 319, in test_pop
    self.assertEquals({attr: getattr(res, attr) for attr in dir(res)
    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
AttributeError: 'TestClientRequest' object has no attribute 'assertEquals'
-------------------- >> begin captured logging << --------------------
etcd.client: DEBUG: New etcd client created for http://127.0.0.1:4001
etcd.client: DEBUG: Deleting /testkey recursive=None dir=None extra args={}
etcd.client: DEBUG: Calculated params = {}
--------------------- >> end captured logging << ---------------------

======================================================================
ERROR: Can get a value
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/builddir/build/BUILD/python-etcd-0.4.5/src/etcd/tests/unit/test_request.py", line 335, in test_read
    self.assertEquals(res, etcd.EtcdResult(**d))
    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
AttributeError: 'TestClientRequest' object has no attribute 'assertEquals'
-------------------- >> begin captured logging << --------------------
etcd.client: DEBUG: New etcd client created for http://127.0.0.1:4001
etcd.client: DEBUG: Issuing read for key /testKey with args {}
--------------------- >> end captured logging << ---------------------

======================================================================
ERROR: Can refresh a new value
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/builddir/build/BUILD/python-etcd-0.4.5/src/etcd/tests/unit/test_request.py", line 235, in test_refresh
    self.assertEquals(res, etcd.EtcdResult(**d))
    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
AttributeError: 'TestClientRequest' object has no attribute 'assertEquals'
-------------------- >> begin captured logging << --------------------
etcd.client: DEBUG: New etcd client created for http://127.0.0.1:4001
etcd.client: DEBUG: Writing None to key /testkey ttl=600 dir=False append=False
--------------------- >> end captured logging << ---------------------

======================================================================
ERROR: Request for stats
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/builddir/build/BUILD/python-etcd-0.4.5/src/etcd/tests/unit/test_request.py", line 151, in test_self_stats
    self.assertEquals(self.client.stats['name'], "node3")
    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
AttributeError: 'TestClientRequest' object has no attribute 'assertEquals'
-------------------- >> begin captured logging << --------------------
etcd.client: DEBUG: New etcd client created for http://127.0.0.1:4001
--------------------- >> end captured logging << ---------------------

======================================================================
ERROR: Can append a new key
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/builddir/build/BUILD/python-etcd-0.4.5/src/etcd/tests/unit/test_request.py", line 282, in test_set_append
    self.assertEquals(res.createdIndex, 190)
    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
AttributeError: 'TestClientRequest' object has no attribute 'assertEquals'
-------------------- >> begin captured logging << --------------------
etcd.client: DEBUG: New etcd client created for http://127.0.0.1:4001
etcd.client: DEBUG: Writing test to key /testdir ttl=None dir=False append=False
--------------------- >> end captured logging << ---------------------

======================================================================
ERROR: Can set a value
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/builddir/build/BUILD/python-etcd-0.4.5/src/etcd/tests/unit/test_request.py", line 182, in test_set_plain
    self.assertEquals(res, etcd.EtcdResult(**d))
    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
AttributeError: 'TestClientRequest' object has no attribute 'assertEquals'
-------------------- >> begin captured logging << --------------------
etcd.client: DEBUG: New etcd client created for http://127.0.0.1:4001
etcd.client: DEBUG: Writing test to key /testkey ttl=None dir=False append=False
--------------------- >> end captured logging << ---------------------

======================================================================
ERROR: Can update a result.
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/builddir/build/BUILD/python-etcd-0.4.5/src/etcd/tests/unit/test_request.py", line 201, in test_update
    self.assertEquals(newres.value, 'ciao')
    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
AttributeError: 'TestClientRequest' object has no attribute 'assertEquals'
-------------------- >> begin captured logging << --------------------
etcd.client: DEBUG: New etcd client created for http://127.0.0.1:4001
etcd.client: DEBUG: Issuing read for key /testkey with args {}
etcd.client: DEBUG: Updating /testkey to ciao.
etcd.client: DEBUG: Writing ciao to key /testkey ttl=19 dir=False append=False
--------------------- >> end captured logging << ---------------------

======================================================================
ERROR: Do not overwrite the machines cache when using proxies
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/usr/lib/python3.11/site-packages/mock/mock.py", line 1330, in patched
    return func(*args, **keywargs)
           ^^^^^^^^^^^^^^^^^^^^^^^
  File "/builddir/build/BUILD/python-etcd-0.4.5/src/etcd/tests/unit/test_request.py", line 104, in test_use_proxies
    self.assertEquals(c._machines_cache, ['https://localproxy:4001'])
    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
AttributeError: 'TestClientRequest' object has no attribute 'assertEquals'
-------------------- >> begin captured logging << --------------------
etcd.client: DEBUG: New etcd client created for http://127.0.0.1:4001
etcd.client: DEBUG: New etcd client created for https://localhost:4001
etcd.client: DEBUG: Machines cache initialised to ['https://localproxy:4001']
--------------------- >> end captured logging << ---------------------

======================================================================
ERROR: Can watch a key
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/builddir/build/BUILD/python-etcd-0.4.5/src/etcd/tests/unit/test_request.py", line 393, in test_watch
    self.assertEquals(res, etcd.EtcdResult(**d))
    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
AttributeError: 'TestClientRequest' object has no attribute 'assertEquals'
-------------------- >> begin captured logging << --------------------
etcd.client: DEBUG: New etcd client created for http://127.0.0.1:4001
etcd.client: DEBUG: Issuing read for key /testkey with args {'wait': True}
--------------------- >> end captured logging << ---------------------

======================================================================
ERROR: Can watch a key starting from the given Index
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/builddir/build/BUILD/python-etcd-0.4.5/src/etcd/tests/unit/test_request.py", line 407, in test_watch_index
    self.assertEquals(res, etcd.EtcdResult(**d))
    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
AttributeError: 'TestClientRequest' object has no attribute 'assertEquals'
-------------------- >> begin captured logging << --------------------
etcd.client: DEBUG: New etcd client created for http://127.0.0.1:4001
etcd.client: DEBUG: Issuing read for key /testkey with args {'wait': True, 'waitIndex': True}
--------------------- >> end captured logging << ---------------------

----------------------------------------------------------------------
Ran 122 tests in 0.930s

FAILED (errors=64)

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/02990029-python-etcd/

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

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 Hugo van Kemenade 2022-01-10 15:11:18 UTC
Upstream PR: https://github.com/matrix-org/python-signedjson/pull/17

Comment 2 Hugo van Kemenade 2022-01-10 15:17:28 UTC
Correction: this is the upstream PR: https://github.com/jplana/python-etcd/pull/279

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

Comment 4 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 5 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.