Source: python-etcd
Version: 0.4.5-4
Severity: serious
Justification: FTBFS
Tags: trixie sid ftbfs
User: [email protected]
Usertags: ftbfs-20231212 ftbfs-trixie

Hi,

During a rebuild of all packages in sid, your package failed to build
on amd64.


Relevant part (hopefully):
>  debian/rules binary
> dh binary --with python3 --buildsystem pybuild
>    dh_update_autotools_config -O--buildsystem=pybuild
>    dh_autoreconf -O--buildsystem=pybuild
>    dh_auto_configure -O--buildsystem=pybuild
> I: pybuild base:310: python3.12 setup.py config 
> running config
> I: pybuild base:310: python3.11 setup.py config 
> running config
>    dh_auto_build -O--buildsystem=pybuild
> I: pybuild base:310: /usr/bin/python3.12 setup.py build 
> running build
> running build_py
> creating /<<PKGBUILDDIR>>/.pybuild/cpython3_3.12_etcd/build/etcd
> copying src/etcd/auth.py -> 
> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.12_etcd/build/etcd
> copying src/etcd/__init__.py -> 
> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.12_etcd/build/etcd
> copying src/etcd/client.py -> 
> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.12_etcd/build/etcd
> copying src/etcd/lock.py -> 
> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.12_etcd/build/etcd
> creating /<<PKGBUILDDIR>>/.pybuild/cpython3_3.12_etcd/build/etcd/tests
> copying src/etcd/tests/__init__.py -> 
> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.12_etcd/build/etcd/tests
> copying src/etcd/tests/test_auth.py -> 
> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.12_etcd/build/etcd/tests
> creating /<<PKGBUILDDIR>>/.pybuild/cpython3_3.12_etcd/build/etcd/tests/unit
> copying src/etcd/tests/unit/__init__.py -> 
> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.12_etcd/build/etcd/tests/unit
> copying src/etcd/tests/unit/test_request.py -> 
> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.12_etcd/build/etcd/tests/unit
> copying src/etcd/tests/unit/test_client.py -> 
> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.12_etcd/build/etcd/tests/unit
> copying src/etcd/tests/unit/test_old_request.py -> 
> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.12_etcd/build/etcd/tests/unit
> copying src/etcd/tests/unit/test_lock.py -> 
> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.12_etcd/build/etcd/tests/unit
> copying src/etcd/tests/unit/test_result.py -> 
> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.12_etcd/build/etcd/tests/unit
> creating 
> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.12_etcd/build/etcd/tests/integration
> copying src/etcd/tests/integration/__init__.py -> 
> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.12_etcd/build/etcd/tests/integration
> copying src/etcd/tests/integration/test_ssl.py -> 
> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.12_etcd/build/etcd/tests/integration
> copying src/etcd/tests/integration/test_simple.py -> 
> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.12_etcd/build/etcd/tests/integration
> copying src/etcd/tests/integration/helpers.py -> 
> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.12_etcd/build/etcd/tests/integration
> running egg_info
> creating src/python_etcd.egg-info
> writing src/python_etcd.egg-info/PKG-INFO
> writing dependency_links to src/python_etcd.egg-info/dependency_links.txt
> writing requirements to src/python_etcd.egg-info/requires.txt
> writing top-level names to src/python_etcd.egg-info/top_level.txt
> writing manifest file 'src/python_etcd.egg-info/SOURCES.txt'
> reading manifest file 'src/python_etcd.egg-info/SOURCES.txt'
> reading manifest template 'MANIFEST.in'
> adding license file 'LICENSE.txt'
> adding license file 'AUTHORS'
> writing manifest file 'src/python_etcd.egg-info/SOURCES.txt'
> I: pybuild base:310: /usr/bin/python3 setup.py build 
> running build
> running build_py
> creating /<<PKGBUILDDIR>>/.pybuild/cpython3_3.11_etcd/build/etcd
> copying src/etcd/auth.py -> 
> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.11_etcd/build/etcd
> copying src/etcd/__init__.py -> 
> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.11_etcd/build/etcd
> copying src/etcd/client.py -> 
> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.11_etcd/build/etcd
> copying src/etcd/lock.py -> 
> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.11_etcd/build/etcd
> creating /<<PKGBUILDDIR>>/.pybuild/cpython3_3.11_etcd/build/etcd/tests
> copying src/etcd/tests/__init__.py -> 
> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.11_etcd/build/etcd/tests
> copying src/etcd/tests/test_auth.py -> 
> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.11_etcd/build/etcd/tests
> creating /<<PKGBUILDDIR>>/.pybuild/cpython3_3.11_etcd/build/etcd/tests/unit
> copying src/etcd/tests/unit/__init__.py -> 
> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.11_etcd/build/etcd/tests/unit
> copying src/etcd/tests/unit/test_request.py -> 
> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.11_etcd/build/etcd/tests/unit
> copying src/etcd/tests/unit/test_client.py -> 
> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.11_etcd/build/etcd/tests/unit
> copying src/etcd/tests/unit/test_old_request.py -> 
> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.11_etcd/build/etcd/tests/unit
> copying src/etcd/tests/unit/test_lock.py -> 
> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.11_etcd/build/etcd/tests/unit
> copying src/etcd/tests/unit/test_result.py -> 
> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.11_etcd/build/etcd/tests/unit
> creating 
> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.11_etcd/build/etcd/tests/integration
> copying src/etcd/tests/integration/__init__.py -> 
> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.11_etcd/build/etcd/tests/integration
> copying src/etcd/tests/integration/test_ssl.py -> 
> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.11_etcd/build/etcd/tests/integration
> copying src/etcd/tests/integration/test_simple.py -> 
> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.11_etcd/build/etcd/tests/integration
> copying src/etcd/tests/integration/helpers.py -> 
> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.11_etcd/build/etcd/tests/integration
> running egg_info
> writing src/python_etcd.egg-info/PKG-INFO
> writing dependency_links to src/python_etcd.egg-info/dependency_links.txt
> writing requirements to src/python_etcd.egg-info/requires.txt
> writing top-level names to src/python_etcd.egg-info/top_level.txt
> reading manifest file 'src/python_etcd.egg-info/SOURCES.txt'
> reading manifest template 'MANIFEST.in'
> adding license file 'LICENSE.txt'
> adding license file 'AUTHORS'
> writing manifest file 'src/python_etcd.egg-info/SOURCES.txt'
>    dh_auto_test -O--buildsystem=pybuild
> I: pybuild base:310: cd /<<PKGBUILDDIR>>/.pybuild/cpython3_3.12_etcd/build; 
> python3.12 -m pytest etcd/tests/unit/
> ============================= test session starts 
> ==============================
> platform linux -- Python 3.12.1, pytest-7.4.3, pluggy-1.3.0
> rootdir: /<<PKGBUILDDIR>>
> collected 119 items
> 
> etcd/tests/unit/test_client.py F.F.........F..............F              [ 
> 23%]
> etcd/tests/unit/test_lock.py F..FFFFFF.F                                 [ 
> 32%]
> etcd/tests/unit/test_old_request.py FF..FFFFFFFxFFF...FFF                [ 
> 50%]
> etcd/tests/unit/test_request.py ...FF.FF.FFFFF..FFFFF.FFFFF.F.FF.FFFFF.. [ 
> 84%]
> .FF..FFF.FF.FFF.                                                         [ 
> 97%]
> etcd/tests/unit/test_result.py ...                                       
> [100%]
> 
> =================================== FAILURES 
> ===================================
> ______________________ TestClient.test__set_version_info 
> _______________________
> 
> self = <etcd.tests.unit.test_client.TestClient 
> testMethod=test__set_version_info>
> 
>     def test__set_version_info(self):
>         """Verify _set_version_info makes the proper call to the server"""
>         with mock.patch('urllib3.PoolManager') as _pm:
>             _request = _pm().request
>             # Return the expected data type
>             _request.return_value = mock.MagicMock(
>                 data=b'{"etcdserver": "2.2.3", "etcdcluster": "2.3.0"}')
>     
>             # Create the client and make the call.
>             client = etcd.Client()
>             client._set_version_info()
>     
>             # Verify we call the proper endpoint
>             _request.assert_called_once_with(
>                 client._MGET,
>                 client._base_uri + '/version',
>                 headers=mock.ANY,
>                 redirect=mock.ANY,
>                 timeout=mock.ANY)
>     
>             # Verify the properties while we are here
> >           self.assertEquals('2.2.3', client.version)
> E           AttributeError: 'TestClient' object has no attribute 
> 'assertEquals'. Did you mean: 'assertEqual'?
> 
> etcd/tests/unit/test_client.py:145: AttributeError
> ___________________ TestClient.test_cluster_version_property 
> ___________________
> 
> self = <etcd.tests.unit.test_client.TestClient 
> testMethod=test_cluster_version_property>
> 
>     def test_cluster_version_property(self):
>         """Ensure the cluster version property is set on first access."""
>         with mock.patch('urllib3.PoolManager') as _pm:
>             _request = _pm().request
>             # Return the expected data type
>             _request.return_value = mock.MagicMock(
>                 data=b'{"etcdserver": "2.2.3", "etcdcluster": "2.3.0"}')
>     
>             # Create the client.
>             client = etcd.Client()
>     
>             # Verify the cluster_version property is set
> >           self.assertEquals('2.3.0', client.cluster_version)
> E           AttributeError: 'TestClient' object has no attribute 
> 'assertEquals'. Did you mean: 'assertEqual'?
> 
> etcd/tests/unit/test_client.py:174: AttributeError
> ___________________________ TestClient.test_discover 
> ___________________________
> 
> self = <etcd.tests.unit.test_client.TestClient testMethod=test_discover>
> 
>     def test_discover(self):
>         """Tests discovery."""
>         answers = []
>         for i in range(1,3):
>             r = mock.create_autospec(dns.rdtypes.IN.SRV.SRV)
>             r.port = 2379
>             try:
>                 method = dns.name.from_unicode
>             except AttributeError:
>                 method = dns.name.from_text
>             r.target = method(u'etcd{}.example.com'.format(i))
>             answers.append(r)
>         dns.resolver.query = mock.create_autospec(dns.resolver.query, 
> return_value=answers)
>         self.machines = etcd.Client.machines
>         etcd.Client.machines = mock.create_autospec(etcd.Client.machines, 
> return_value=[u'https://etcd2.example.com:2379'])
>         c = etcd.Client(srv_domain="example.com", allow_reconnect=True, 
> protocol="https")
>         etcd.Client.machines = self.machines
> >       self.assertEquals(c.host, u'etcd1.example.com')
> E       AttributeError: 'TestClient' object has no attribute 'assertEquals'. 
> Did you mean: 'assertEqual'?
> 
> etcd/tests/unit/test_client.py:210: AttributeError
> _______________________ TestClient.test_version_property 
> _______________________
> 
> self = <etcd.tests.unit.test_client.TestClient 
> testMethod=test_version_property>
> 
>     def test_version_property(self):
>         """Ensure the version property is set on first access."""
>         with mock.patch('urllib3.PoolManager') as _pm:
>             _request = _pm().request
>             # Return the expected data type
>             _request.return_value = mock.MagicMock(
>                 data=b'{"etcdserver": "2.2.3", "etcdcluster": "2.3.0"}')
>     
>             # Create the client.
>             client = etcd.Client()
>     
>             # Verify the version property is set
> >           self.assertEquals('2.2.3', client.version)
> E           AttributeError: 'TestClient' object has no attribute 
> 'assertEquals'. Did you mean: 'assertEqual'?
> 
> etcd/tests/unit/test_client.py:160: AttributeError
> _________________________ TestClientLock.test_acquire 
> __________________________
> 
> self = <etcd.tests.unit.test_lock.TestClientLock testMethod=test_acquire>
> 
>     def test_acquire(self):
>         """
>         Acquiring a precedingly inexistent lock works.
>         """
>         l = etcd.Lock(self.client, 'test_lock')
>         l._find_lock = mock.MagicMock(spec=l._find_lock, return_value=False)
>         l._acquired = mock.MagicMock(spec=l._acquired, return_value=True)
>         # Mock the write
>         d = {
>             u'action': u'set',
>             u'node': {
>                 u'modifiedIndex': 190,
>                 u'key': u'/_locks/test_lock/1',
>                 u'value': l.uuid
>             }
>         }
>         self._mock_api(200, d)
> >       self.assertEquals(l.acquire(), True)
> E       AttributeError: 'TestClientLock' object has no attribute 
> 'assertEquals'. Did you mean: 'assertEqual'?
> 
> etcd/tests/unit/test_lock.py:55: AttributeError
> ________________________ TestClientLock.test_find_lock 
> _________________________
> 
> self = <etcd.tests.unit.test_lock.TestClientLock testMethod=test_find_lock>
> 
>     def test_find_lock(self):
>         d = {
>             u'action': u'get',
>             u'node': {
>                 u'modifiedIndex': 190,
>                 u'key': u'/_locks/test_lock/1',
>                 u'value': self.locker.uuid
>             }
>         }
>         self._mock_api(200, d)
>         self.locker._sequence = '1'
>         self.assertTrue(self.locker._find_lock())
>         # Now let's pretend the lock is not there
>         self._mock_exception(etcd.EtcdKeyNotFound, self.locker.lock_key)
>         self.assertFalse(self.locker._find_lock())
>         self.locker._sequence = None
>         self.recursive_read()
>         self.assertTrue(self.locker._find_lock())
> >       self.assertEquals(self.locker._sequence, '34')
> E       AttributeError: 'TestClientLock' object has no attribute 
> 'assertEquals'. Did you mean: 'assertEqual'?
> 
> etcd/tests/unit/test_lock.py:174: AttributeError
> ________________________ TestClientLock.test_get_locker 
> ________________________
> 
> self = <etcd.tests.unit.test_lock.TestClientLock testMethod=test_get_locker>
> 
>     def test_get_locker(self):
>         self.recursive_read()
> >       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})),
>                           self.locker._get_locker())
> E       AttributeError: 'TestClientLock' object has no attribute 
> 'assertEquals'. Did you mean: 'assertEqual'?
> 
> etcd/tests/unit/test_lock.py:178: AttributeError
> ______________________ TestClientLock.test_initialization 
> ______________________
> 
> self = <etcd.tests.unit.test_lock.TestClientLock 
> testMethod=test_initialization>
> 
>     def test_initialization(self):
>         """
>         Verify the lock gets initialized correctly
>         """
> >       self.assertEquals(self.locker.name, u'test_lock')
> E       AttributeError: 'TestClientLock' object has no attribute 
> 'assertEquals'. Did you mean: 'assertEqual'?
> 
> etcd/tests/unit/test_lock.py:34: AttributeError
> _______________________ TestClientLock.test_is_acquired 
> ________________________
> 
> self = <etcd.tests.unit.test_lock.TestClientLock testMethod=test_is_acquired>
> 
>     def test_is_acquired(self):
>         """
>         Test is_acquired
>         """
>         self.locker._sequence = '1'
>         d = {
>             u'action': u'get',
>             u'node': {
>                 u'modifiedIndex': 190,
>                 u'key': u'/_locks/test_lock/1',
>                 u'value': self.locker.uuid
>             }
>         }
>         self._mock_api(200, d)
>         self.locker.is_taken = True
> >       self.assertEquals(self.locker.is_acquired, True)
> E       AttributeError: 'TestClientLock' object has no attribute 
> 'assertEquals'. Did you mean: 'assertEqual'?
> 
> etcd/tests/unit/test_lock.py:73: AttributeError
> _____________________ TestClientLock.test_is_not_acquired 
> ______________________
> 
> self = <etcd.tests.unit.test_lock.TestClientLock 
> testMethod=test_is_not_acquired>
> 
>     def test_is_not_acquired(self):
>         """
>         Test is_acquired failures
>         """
>         self.locker._sequence = '2'
>         self.locker.is_taken = False
> >       self.assertEquals(self.locker.is_acquired, False)
> E       AttributeError: 'TestClientLock' object has no attribute 
> 'assertEquals'. Did you mean: 'assertEqual'?
> 
> etcd/tests/unit/test_lock.py:81: AttributeError
> _________________________ TestClientLock.test_lock_key 
> _________________________
> 
> self = <etcd.tests.unit.test_lock.TestClientLock testMethod=test_lock_key>
> 
>     def test_lock_key(self):
>         """
>         Test responses from the lock_key property
>         """
>         with self.assertRaises(ValueError):
>             self.locker.lock_key
>         self.locker._sequence = '5'
> >       self.assertEquals(u'/_locks/test_lock/5',self.locker.lock_key)
> E       AttributeError: 'TestClientLock' object has no attribute 
> 'assertEquals'. Did you mean: 'assertEqual'?
> 
> etcd/tests/unit/test_lock.py:150: AttributeError
> _______________________ TestClientLock.test_set_sequence 
> _______________________
> 
> self = <etcd.tests.unit.test_lock.TestClientLock testMethod=test_set_sequence>
> 
>     def test_set_sequence(self):
>         self.locker._set_sequence('/_locks/test_lock/10')
> >       self.assertEquals('10', self.locker._sequence)
> E       AttributeError: 'TestClientLock' object has no attribute 
> 'assertEquals'. Did you mean: 'assertEqual'?
> 
> etcd/tests/unit/test_lock.py:154: AttributeError
> ________________________ TestClientRequest.test_delete 
> _________________________
> 
> self = <etcd.tests.unit.test_old_request.TestClientRequest 
> testMethod=test_delete>
> 
>     def test_delete(self):
>         """ Can delete a value """
>         client = etcd.Client()
>         client.api_execute = mock.Mock(
>             return_value=FakeHTTPResponse(200,
>                                           '{"action":"DELETE",'
>                                           '"node": {'
>                                           '"key":"/testkey",'
>                                           '"prevValue":"test",'
>                                           
> '"expiration":"2013-09-14T01:06:35.5242587+02:00",'
>                                           '"modifiedIndex":189}}')
>         )
>         result = client.delete('/testkey')
> >       self.assertEquals(etcd.EtcdResult(
>             **{u'action': u'DELETE',
>                u'node': {
>                    u'expiration': u'2013-09-14T01:06:35.5242587+02:00',
>                    u'modifiedIndex': 189,
>                    u'key': u'/testkey',
>                    u'prevValue': u'test'}
>                }), result)
> E       AttributeError: 'TestClientRequest' object has no attribute 
> 'assertEquals'. Did you mean: 'assertEqual'?
> 
> etcd/tests/unit/test_old_request.py:114: AttributeError
> __________________________ TestClientRequest.test_get 
> __________________________
> 
> self = <etcd.tests.unit.test_old_request.TestClientRequest 
> testMethod=test_get>
> 
>     def test_get(self):
>         """ Can get a value """
>         client = etcd.Client()
>         client.api_execute = mock.Mock(
>             return_value=FakeHTTPResponse(200,
>                                           '{"action":"GET",'
>                                           '"node": {'
>                                           '"key":"/testkey",'
>                                           '"value":"test",'
>                                           '"modifiedIndex":190}}')
>         )
>     
>         result = client.get('/testkey')
> >       self.assertEquals(etcd.EtcdResult(
>             **{u'action': u'GET',
>                u'node': {
>                    u'modifiedIndex': 190,
>                    u'key': u'/testkey',
>                    u'value': u'test'}
>                }), result)
> E       AttributeError: 'TestClientRequest' object has no attribute 
> 'assertEquals'. Did you mean: 'assertEqual'?
> 
> etcd/tests/unit/test_old_request.py:136: AttributeError
> __________________________ TestClientRequest.test_in 
> ___________________________
> 
> self = <etcd.tests.unit.test_old_request.TestClientRequest testMethod=test_in>
> 
>     def test_in(self):
>         """ Can check if key is in client """
>         client = etcd.Client()
>         client.api_execute = mock.Mock(
>             return_value=FakeHTTPResponse(200,
>                                           '{"action":"GET",'
>                                           '"node": {'
>                                           '"key":"/testkey",'
>                                           '"value":"test",'
>                                           '"modifiedIndex":190}}')
>         )
>         result = '/testkey' in client
>     
> >       self.assertEquals(True, result)
> E       AttributeError: 'TestClientRequest' object has no attribute 
> 'assertEquals'. Did you mean: 'assertEqual'?
> 
> etcd/tests/unit/test_old_request.py:172: AttributeError
> ______________________ TestClientRequest.test_index_watch 
> ______________________
> 
> self = <etcd.tests.unit.test_old_request.TestClientRequest 
> testMethod=test_index_watch>
> 
>     def test_index_watch(self):
>         """ Can watch values from index """
>         client = etcd.Client()
>         client.api_execute = mock.Mock(
>             return_value=FakeHTTPResponse(200,
>                                           '{"action":"SET",'
>                                           '"node": {'
>                                           '"key":"/testkey",'
>                                           '"value":"test",'
>                                           '"newKey":true,'
>                                           
> '"expiration":"2013-09-14T01:35:07.623681365+02:00",'
>                                           '"ttl":19,'
>                                           '"modifiedIndex":180}}')
>         )
>         result = client.watch('/testkey', index=180)
> >       self.assertEquals(
>             etcd.EtcdResult(
>                 **{u'action': u'SET',
>                    u'node': {
>                        u'expiration': u'2013-09-14T01:35:07.623681365+02:00',
>                        u'modifiedIndex': 180,
>                        u'key': u'/testkey',
>                        u'newKey': True,
>                        u'ttl': 19,
>                        u'value': u'test'}
>                    }), result)
> E       AttributeError: 'TestClientRequest' object has no attribute 
> 'assertEquals'. Did you mean: 'assertEqual'?
> 
> etcd/tests/unit/test_old_request.py:216: AttributeError
> ________________________ TestClientRequest.test_not_in 
> _________________________
> 
> self = <etcd.tests.unit.test_old_request.TestClientRequest 
> testMethod=test_not_in>
> 
>     def test_not_in(self):
>         """ Can check if key is not in client """
>         client = etcd.Client()
>         client.get = mock.Mock(side_effect=etcd.EtcdKeyNotFound())
>         result = '/testkey' not in client
> >       self.assertEquals(True, result)
> E       AttributeError: 'TestClientRequest' object has no attribute 
> 'assertEquals'. Did you mean: 'assertEqual'?
> 
> etcd/tests/unit/test_old_request.py:157: AttributeError
> __________________________ TestClientRequest.test_set 
> __________________________
> 
> self = <etcd.tests.unit.test_old_request.TestClientRequest 
> testMethod=test_set>
> 
>     def test_set(self):
>         """ Can set a value """
>         client = etcd.Client()
>         client.api_execute = mock.Mock(
>             return_value=FakeHTTPResponse(201,
>                                           '{"action":"SET",'
>                                           '"node": {'
>                                           '"key":"/testkey",'
>                                           '"value":"test",'
>                                           '"newKey":true,'
>                                           
> '"expiration":"2013-09-14T00:56:59.316195568+02:00",'
>                                           '"ttl":19,"modifiedIndex":183}}')
>         )
>     
>         result = client.set('/testkey', 'test', ttl=19)
>     
> >       self.assertEquals(
>             etcd.EtcdResult(
>                 **{u'action': u'SET',
>                    'node': {
>                        u'expiration': u'2013-09-14T00:56:59.316195568+02:00',
>                        u'modifiedIndex': 183,
>                        u'key': u'/testkey',
>                        u'newKey': True,
>                        u'ttl': 19,
>                        u'value': u'test'}}), result)
> E       AttributeError: 'TestClientRequest' object has no attribute 
> 'assertEquals'. Did you mean: 'assertEqual'?
> 
> etcd/tests/unit/test_old_request.py:45: AttributeError
> _____________________ TestClientRequest.test_simple_watch 
> ______________________
> 
> self = <etcd.tests.unit.test_old_request.TestClientRequest 
> testMethod=test_simple_watch>
> 
>     def test_simple_watch(self):
>         """ Can watch values """
>         client = etcd.Client()
>         client.api_execute = mock.Mock(
>             return_value=FakeHTTPResponse(200,
>                                           '{"action":"SET",'
>                                           '"node": {'
>                                           '"key":"/testkey",'
>                                           '"value":"test",'
>                                           '"newKey":true,'
>                                           
> '"expiration":"2013-09-14T01:35:07.623681365+02:00",'
>                                           '"ttl":19,'
>                                           '"modifiedIndex":192}}')
>         )
>         result = client.watch('/testkey')
> >       self.assertEquals(
>             etcd.EtcdResult(
>                 **{u'action': u'SET',
>                    u'node': {
>                        u'expiration': u'2013-09-14T01:35:07.623681365+02:00',
>                        u'modifiedIndex': 192,
>                        u'key': u'/testkey',
>                        u'newKey': True,
>                        u'ttl': 19,
>                        u'value': u'test'}
>                    }), result)
> E       AttributeError: 'TestClientRequest' object has no attribute 
> 'assertEquals'. Did you mean: 'assertEqual'?
> 
> etcd/tests/unit/test_old_request.py:189: AttributeError
> _____________________ TestClientRequest.test_test_and_set 
> ______________________
> 
> self = <etcd.tests.unit.test_old_request.TestClientRequest 
> testMethod=test_test_and_set>
> 
>     def test_test_and_set(self):
>         """ Can test and set a value """
>         client = etcd.Client()
>         client.api_execute = mock.Mock(
>             return_value=FakeHTTPResponse(200,
>                                           '{"action":"SET",'
>                                           '"node": {'
>                                           '"key":"/testkey",'
>                                           '"prevValue":"test",'
>                                           '"value":"newvalue",'
>                                           
> '"expiration":"2013-09-14T02:09:44.24390976+02:00",'
>                                           '"ttl":49,"modifiedIndex":203}}')
>         )
>         result = client.test_and_set('/testkey', 'newvalue', 'test', ttl=19)
> >       self.assertEquals(
>             etcd.EtcdResult(
>                 **{u'action': u'SET',
>                    u'node': {
>                        u'expiration': u'2013-09-14T02:09:44.24390976+02:00',
>                        u'modifiedIndex': 203,
>                        u'key': u'/testkey',
>                        u'prevValue': u'test',
>                        u'ttl': 49,
>                        u'value': u'newvalue'}
>                    }), result)
> E       AttributeError: 'TestClientRequest' object has no attribute 
> 'assertEquals'. Did you mean: 'assertEqual'?
> 
> etcd/tests/unit/test_old_request.py:70: AttributeError
> _________________ TestClientRequest.test_test_and_test_failure 
> _________________
> 
> self = <etcd.tests.unit.test_old_request.TestClientRequest 
> testMethod=test_test_and_test_failure>
> 
>     def test_test_and_test_failure(self):
>         """ Exception will be raised if prevValue != value in test_set """
>     
>         client = etcd.Client()
>         client.api_execute = mock.Mock(
>             side_effect=ValueError(
>                 'The given PrevValue is not equal'
>                 ' to the value of the key : TestAndSet: 1!=3'))
>         try:
> >           result = client.test_and_set(
>                 '/testkey',
>                 'newvalue',
>                 'test', ttl=19)
> 
> etcd/tests/unit/test_old_request.py:91: 
> _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
> _ 
> etcd/client.py:703: in test_and_set
>     return self.write(key, value, prevValue=prev_value, ttl=ttl)
> etcd/client.py:500: in write
>     response = self.api_execute(path, method, params=params)
> /usr/lib/python3/dist-packages/mock/mock.py:1100: in __call__
>     return _mock_self._mock_call(*args, **kwargs)
> /usr/lib/python3/dist-packages/mock/mock.py:1104: in _mock_call
>     return _mock_self._execute_mock_call(*args, **kwargs)
> _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
> _ 
> 
> _mock_self = <Mock id='140596450276944'>, args = ('/v2/keys/testkey', 'PUT')
> kwargs = {'params': {'prevValue': 'test', 'ttl': 19, 'value': 'newvalue'}}
> self = <Mock id='140596450276944'>
> effect = ValueError('The given PrevValue is not equal to the value of the key 
> : TestAndSet: 1!=3')
> 
>     def _execute_mock_call(_mock_self, *args, **kwargs):
>         self = _mock_self
>         # separate from _increment_mock_call so that awaited functions are
>         # executed separately from their call, also AsyncMock overrides this 
> method
>     
>         effect = self.side_effect
>         if effect is not None:
>             if _is_exception(effect):
> >               raise effect
> E               ValueError: The given PrevValue is not equal to the value of 
> the key : TestAndSet: 1!=3
> 
> /usr/lib/python3/dist-packages/mock/mock.py:1161: ValueError
> 
> During handling of the above exception, another exception occurred:
> 
> self = <etcd.tests.unit.test_old_request.TestClientRequest 
> testMethod=test_test_and_test_failure>
> 
>     def test_test_and_test_failure(self):
>         """ Exception will be raised if prevValue != value in test_set """
>     
>         client = etcd.Client()
>         client.api_execute = mock.Mock(
>             side_effect=ValueError(
>                 'The given PrevValue is not equal'
>                 ' to the value of the key : TestAndSet: 1!=3'))
>         try:
>             result = client.test_and_set(
>                 '/testkey',
>                 'newvalue',
>                 'test', ttl=19)
>         except ValueError as e:
>             #from ipdb import set_trace; set_trace()
> >           self.assertEquals(
>                 'The given PrevValue is not equal'
>                 ' to the value of the key : TestAndSet: 1!=3', str(e))
> E           AttributeError: 'TestClientRequest' object has no attribute 
> 'assertEquals'. Did you mean: 'assertEqual'?
> 
> etcd/tests/unit/test_old_request.py:97: AttributeError
> ______________________ TestClientApiExecutor.test_delete 
> _______________________
> 
> self = <etcd.tests.unit.test_old_request.TestClientApiExecutor 
> testMethod=test_delete>
> 
>     def test_delete(self):
>         """ http delete request """
>         client = etcd.Client()
>         response = FakeHTTPResponse(status=200, data='arbitrary json data')
>         client.http.request = mock.Mock(return_value=response)
>         result = client.api_execute('/v1/keys/testkey', client._MDELETE)
> >       self.assertEquals('arbitrary json data'.encode('utf-8'), result.data)
> E       AttributeError: 'TestClientApiExecutor' object has no attribute 
> 'assertEquals'. Did you mean: 'assertEqual'?
> 
> etcd/tests/unit/test_old_request.py:278: AttributeError
> ________________________ TestClientApiExecutor.test_get 
> ________________________
> 
> self = <etcd.tests.unit.test_old_request.TestClientApiExecutor 
> testMethod=test_get>
> 
>     def test_get(self):
>         """ http get request """
>         client = etcd.Client()
>         response = FakeHTTPResponse(status=200, data='arbitrary json data')
>         client.http.request = mock.Mock(return_value=response)
>         result = client.api_execute('/v1/keys/testkey', client._MGET)
> >       self.assertEquals('arbitrary json data'.encode('utf-8'), result.data)
> E       AttributeError: 'TestClientApiExecutor' object has no attribute 
> 'assertEquals'. Did you mean: 'assertEqual'?
> 
> etcd/tests/unit/test_old_request.py:270: AttributeError
> _____________________ TestClientApiExecutor.test_get_error 
> _____________________
> 
> self = <etcd.tests.unit.test_old_request.TestClientApiExecutor 
> testMethod=test_get_error>
> 
>     def test_get_error(self):
>         """ http get error request 101"""
>         client = etcd.Client()
>         response = FakeHTTPResponse(status=400,
>                                     data='{"message": "message",'
>                                     ' "cause": "cause",'
>                                     ' "errorCode": 100}')
>         client.http.request = mock.Mock(return_value=response)
>         try:
> >           client.api_execute('/v2/keys/testkey', client._MGET)
> 
> etcd/tests/unit/test_old_request.py:289: 
> _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
> _ 
> etcd/client.py:907: in wrapper
>     return self._handle_server_response(response)
> etcd/client.py:987: in _handle_server_response
>     etcd.EtcdError.handle(r)
> _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
> _ 
> 
> cls = <class 'etcd.EtcdError'>
> payload = {'cause': 'cause', 'errorCode': 100, 'message': 'message', 
> 'status': 400}
> 
>     @classmethod
>     def handle(cls, payload):
>         """
>         Decodes the error and throws the appropriate error message
>     
>         :param payload: The decoded JSON error payload as a dict.
>         """
>         error_code = payload.get("errorCode")
>         message = payload.get("message")
>         cause = payload.get("cause")
>         msg = '{} : {}'.format(message, cause)
>         status = payload.get("status")
>         # Some general status handling, as
>         # not all endpoints return coherent error messages
>         if status == 404:
>             error_code = 100
>         elif status == 401:
>             error_code = 110
>         exc = cls.error_exceptions.get(error_code, EtcdException)
>         if issubclass(exc, EtcdException):
> >           raise exc(msg, payload)
> E           etcd.EtcdKeyNotFound: message : cause
> 
> etcd/__init__.py:306: EtcdKeyNotFound
> 
> During handling of the above exception, another exception occurred:
> 
> self = <etcd.tests.unit.test_old_request.TestClientApiExecutor 
> testMethod=test_get_error>
> 
>     def test_get_error(self):
>         """ http get error request 101"""
>         client = etcd.Client()
>         response = FakeHTTPResponse(status=400,
>                                     data='{"message": "message",'
>                                     ' "cause": "cause",'
>                                     ' "errorCode": 100}')
>         client.http.request = mock.Mock(return_value=response)
>         try:
>             client.api_execute('/v2/keys/testkey', client._MGET)
>             assert False
>         except etcd.EtcdKeyNotFound as e:
> >           self.assertEquals(str(e), 'message : cause')
> E           AttributeError: 'TestClientApiExecutor' object has no attribute 
> 'assertEquals'. Did you mean: 'assertEqual'?
> 
> etcd/tests/unit/test_old_request.py:292: AttributeError
> ________________________ TestClientApiExecutor.test_put 
> ________________________
> 
> self = <etcd.tests.unit.test_old_request.TestClientApiExecutor 
> testMethod=test_put>
> 
>     def test_put(self):
>         """ http put request """
>         client = etcd.Client()
>         response = FakeHTTPResponse(status=200, data='arbitrary json data')
>         client.http.request_encode_body = mock.Mock(return_value=response)
>         result = client.api_execute('/v2/keys/testkey', client._MPUT)
> >       self.assertEquals('arbitrary json data'.encode('utf-8'), result.data)
> E       AttributeError: 'TestClientApiExecutor' object has no attribute 
> 'assertEquals'. Did you mean: 'assertEqual'?
> 
> etcd/tests/unit/test_old_request.py:300: AttributeError
> ________________ TestClientApiExecutor.test_set_not_file_error 
> _________________
> 
> self = <etcd.tests.unit.test_old_request.TestClientApiExecutor 
> testMethod=test_set_not_file_error>
> 
>     def test_set_not_file_error(self):
>         """ http post error request 102 """
>         client = etcd.Client()
>         response = FakeHTTPResponse(
>             status=400,
>             data='{"message": "message", "cause": "cause", "errorCode": 102}')
>         client.http.request_encode_body = mock.Mock(return_value=response)
>         payload = {'value': 'value', 'prevValue': 'oldValue', 'ttl': '60'}
>         try:
> >           client.api_execute('/v2/keys/testkey', client._MPUT, payload)
> 
> etcd/tests/unit/test_old_request.py:325: 
> _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
> _ 
> etcd/client.py:907: in wrapper
>     return self._handle_server_response(response)
> etcd/client.py:987: in _handle_server_response
>     etcd.EtcdError.handle(r)
> _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
> _ 
> 
> cls = <class 'etcd.EtcdError'>
> payload = {'cause': 'cause', 'errorCode': 102, 'message': 'message', 
> 'status': 400}
> 
>     @classmethod
>     def handle(cls, payload):
>         """
>         Decodes the error and throws the appropriate error message
>     
>         :param payload: The decoded JSON error payload as a dict.
>         """
>         error_code = payload.get("errorCode")
>         message = payload.get("message")
>         cause = payload.get("cause")
>         msg = '{} : {}'.format(message, cause)
>         status = payload.get("status")
>         # Some general status handling, as
>         # not all endpoints return coherent error messages
>         if status == 404:
>             error_code = 100
>         elif status == 401:
>             error_code = 110
>         exc = cls.error_exceptions.get(error_code, EtcdException)
>         if issubclass(exc, EtcdException):
> >           raise exc(msg, payload)
> E           etcd.EtcdNotFile: message : cause
> 
> etcd/__init__.py:306: EtcdNotFile
> 
> During handling of the above exception, another exception occurred:
> 
> self = <etcd.tests.unit.test_old_request.TestClientApiExecutor 
> testMethod=test_set_not_file_error>
> 
>     def test_set_not_file_error(self):
>         """ http post error request 102 """
>         client = etcd.Client()
>         response = FakeHTTPResponse(
>             status=400,
>             data='{"message": "message", "cause": "cause", "errorCode": 102}')
>         client.http.request_encode_body = mock.Mock(return_value=response)
>         payload = {'value': 'value', 'prevValue': 'oldValue', 'ttl': '60'}
>         try:
>             client.api_execute('/v2/keys/testkey', client._MPUT, payload)
>             self.fail()
>         except etcd.EtcdNotFile as e:
> >           self.assertEquals('message : cause', str(e))
> E           AttributeError: 'TestClientApiExecutor' object has no attribute 
> 'assertEquals'. Did you mean: 'assertEqual'?
> 
> etcd/tests/unit/test_old_request.py:328: AttributeError
> ________________ TestClientApiExecutor.test_test_and_set_error 
> _________________
> 
> self = <etcd.tests.unit.test_old_request.TestClientApiExecutor 
> testMethod=test_test_and_set_error>
> 
>     def test_test_and_set_error(self):
>         """ http post error request 101 """
>         client = etcd.Client()
>         response = FakeHTTPResponse(
>             status=400,
>             data='{"message": "message", "cause": "cause", "errorCode": 101}')
>         client.http.request_encode_body = mock.Mock(return_value=response)
>         payload = {'value': 'value', 'prevValue': 'oldValue', 'ttl': '60'}
>         try:
> >           client.api_execute('/v2/keys/testkey', client._MPUT, payload)
> 
> etcd/tests/unit/test_old_request.py:311: 
> _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
> _ 
> etcd/client.py:907: in wrapper
>     return self._handle_server_response(response)
> etcd/client.py:987: in _handle_server_response
>     etcd.EtcdError.handle(r)
> _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
> _ 
> 
> cls = <class 'etcd.EtcdError'>
> payload = {'cause': 'cause', 'errorCode': 101, 'message': 'message', 
> 'status': 400}
> 
>     @classmethod
>     def handle(cls, payload):
>         """
>         Decodes the error and throws the appropriate error message
>     
>         :param payload: The decoded JSON error payload as a dict.
>         """
>         error_code = payload.get("errorCode")
>         message = payload.get("message")
>         cause = payload.get("cause")
>         msg = '{} : {}'.format(message, cause)
>         status = payload.get("status")
>         # Some general status handling, as
>         # not all endpoints return coherent error messages
>         if status == 404:
>             error_code = 100
>         elif status == 401:
>             error_code = 110
>         exc = cls.error_exceptions.get(error_code, EtcdException)
>         if issubclass(exc, EtcdException):
> >           raise exc(msg, payload)
> E           etcd.EtcdCompareFailed: message : cause
> 
> etcd/__init__.py:306: EtcdCompareFailed
> 
> During handling of the above exception, another exception occurred:
> 
> self = <etcd.tests.unit.test_old_request.TestClientApiExecutor 
> testMethod=test_test_and_set_error>
> 
>     def test_test_and_set_error(self):
>         """ http post error request 101 """
>         client = etcd.Client()
>         response = FakeHTTPResponse(
>             status=400,
>             data='{"message": "message", "cause": "cause", "errorCode": 101}')
>         client.http.request_encode_body = mock.Mock(return_value=response)
>         payload = {'value': 'value', 'prevValue': 'oldValue', 'ttl': '60'}
>         try:
>             client.api_execute('/v2/keys/testkey', client._MPUT, payload)
>             self.fail()
>         except ValueError as e:
> >           self.assertEquals('message : cause', str(e))
> E           AttributeError: 'TestClientApiExecutor' object has no attribute 
> 'assertEquals'. Did you mean: 'assertEqual'?
> 
> etcd/tests/unit/test_old_request.py:314: AttributeError
> _________________ TestClientApiInternals.test_write_no_params 
> __________________
> 
> self = <etcd.tests.unit.test_request.TestClientApiInternals 
> testMethod=test_write_no_params>
> 
>     def test_write_no_params(self):
>         """ Calling `write` without a value argument will omit the `value` 
> from
>         the API call params """
>         d = {
>             u'action': u'set',
>             u'node': {
>                 u'createdIndex': 17,
>                 u'dir': True,
>                 u'key': u'/newdir',
>                 u'modifiedIndex': 17
>             }
>         }
>         self._mock_api(200, d)
>         self.client.write('/newdir', None, dir=True)
> >       self.assertEquals(self.client.api_execute.call_args,
>                           (('/v2/keys/newdir', 'PUT'),
>                            dict(params={'dir': 'true'})))
> E       AttributeError: 'TestClientApiInternals' object has no attribute 
> 'assertEquals'. Did you mean: 'assertEqual'?
> 
> etcd/tests/unit/test_request.py:71: AttributeError
> _________________ TestClientApiInterface.test_compare_and_swap 
> _________________
> 
> self = <etcd.tests.unit.test_request.TestClientApiInterface 
> testMethod=test_compare_and_swap>
> 
>     def test_compare_and_swap(self):
>         """ Can set compare-and-swap a value """
>         d = {u'action': u'compareAndSwap',
>              u'node': {
>                  u'expiration': u'2013-09-14T00:56:59.316195568+02:00',
>                  u'modifiedIndex': 183,
>                  u'key': u'/testkey',
>                  u'ttl': 19,
>                  u'value': u'test'
>              }
>              }
>     
>         self._mock_api(200, d)
>         res = self.client.write('/testkey', 'test', prevValue='test_old')
> >       self.assertEquals(res, etcd.EtcdResult(**d))
> E       AttributeError: 'TestClientApiInterface' object has no attribute 
> 'assertEquals'. Did you mean: 'assertEqual'?
> 
> etcd/tests/unit/test_request.py:256: AttributeError
> ______________________ TestClientApiInterface.test_delete 
> ______________________
> 
> self = <etcd.tests.unit.test_request.TestClientApiInterface 
> testMethod=test_delete>
> 
>     def test_delete(self):
>         """ Can delete a value """
>         d = {
>             u'action': u'delete',
>             u'node': {
>                 u'key': u'/testkey',
>                 "modifiedIndex": 3,
>                 "createdIndex": 2
>             }
>         }
>         self._mock_api(200, d)
>         res = self.client.delete('/testKey')
> >       self.assertEquals(res, etcd.EtcdResult(**d))
> E       AttributeError: 'TestClientApiInterface' object has no attribute 
> 'assertEquals'. Did you mean: 'assertEqual'?
> 
> etcd/tests/unit/test_request.py:301: AttributeError
> _____________________ TestClientApiInterface.test_get_dir 
> ______________________
> 
> self = <etcd.tests.unit.test_request.TestClientApiInterface 
> testMethod=test_get_dir>
> 
>     def test_get_dir(self):
>         """Can get values in dirs"""
>         d = {
>             u'action': u'get',
>             u'node': {
>                 u'modifiedIndex': 190,
>                 u'key': u'/testkey',
>                 u'dir': True,
>                 u'nodes': [
>                     {
>                         u'key': u'/testDir/testKey',
>                         u'modifiedIndex': 150,
>                         u'value': 'test'
>                     },
>                     {
>                         u'key': u'/testDir/testKey2',
>                         u'modifiedIndex': 190,
>                         u'value': 'test2'
>                     }
>                 ]
>             }
>         }
>         self._mock_api(200, d)
>         res = self.client.read('/testDir', recursive=True)
> >       self.assertEquals(res, etcd.EtcdResult(**d))
> E       AttributeError: 'TestClientApiInterface' object has no attribute 
> 'assertEquals'. Did you mean: 'assertEqual'?
> 
> etcd/tests/unit/test_request.py:361: AttributeError
> ______________________ TestClientApiInterface.test_leader 
> ______________________
> 
> self = <etcd.tests.unit.test_request.TestClientApiInterface 
> testMethod=test_leader>
> mocker = <PropertyMock name='members' id='140596445132080'>
> 
>     @mock.patch('etcd.Client.members', new_callable=mock.PropertyMock)
>     def test_leader(self, mocker):
>         """ Can request the leader """
>         members = {"ce2a822cea30bfca": {"id": "ce2a822cea30bfca", "name": 
> "default"}}
>         mocker.return_value = members
>         self._mock_api(200, {"leaderInfo":{"leader": "ce2a822cea30bfca", 
> "followers": {}}})
> >       self.assertEquals(self.client.leader, members["ce2a822cea30bfca"])
> E       AttributeError: 'TestClientApiInterface' object has no attribute 
> 'assertEquals'. Did you mean: 'assertEqual'?
> 
> etcd/tests/unit/test_request.py:166: AttributeError
> ___________________ TestClientApiInterface.test_leader_stats 
> ___________________
> 
> self = <etcd.tests.unit.test_request.TestClientApiInterface 
> testMethod=test_leader_stats>
> 
>     def test_leader_stats(self):
>         """ Request for leader stats """
>         data = {"leader": "924e2e83e93f2560", "followers": {}}
>         self._mock_api(200,data)
> >       self.assertEquals(self.client.leader_stats['leader'], 
> > "924e2e83e93f2560")
> E       AttributeError: 'TestClientApiInterface' object has no attribute 
> 'assertEquals'. Did you mean: 'assertEqual'?
> 
> etcd/tests/unit/test_request.py:157: AttributeError
> _____________________ TestClientApiInterface.test_machines 
> _____________________
> 
> self = <etcd.tests.unit.test_request.TestClientApiInterface 
> testMethod=test_machines>
> mocker = <MagicMock name='request' id='140596447542832'>
> 
>     @mock.patch('urllib3.request.RequestMethods.request')
>     def test_machines(self, mocker):
>         """ Can request machines """
>         data = ['http://127.0.0.1:4001',
>                 'http://127.0.0.1:4002', 'http://127.0.0.1:4003']
>         d = ','.join(data)
>         mocker.return_value = self._prepare_response(200, d)
> >       self.assertEquals(data, self.client.machines)
> E       AttributeError: 'TestClientApiInterface' object has no attribute 
> 'assertEquals'. Did you mean: 'assertEqual'?
> 
> etcd/tests/unit/test_request.py:89: AttributeError
> _____________________ TestClientApiInterface.test_members 
> ______________________
> 
> self = <etcd.tests.unit.test_request.TestClientApiInterface 
> testMethod=test_members>
> 
>     def test_members(self):
>         """ Can request machines """
>         data = {
>             "members":
>             [
>                 {
>                     "id": "ce2a822cea30bfca",
>                     "name": "default",
>                     "peerURLs": ["http://localhost:2380";, 
> "http://localhost:7001";],
>                     "clientURLs": ["http://127.0.0.1:4001";]
>                 }
>             ]
>         }
>         self._mock_api(200, data)
> >       self.assertEquals(self.client.members["ce2a822cea30bfca"]["id"], 
> > "ce2a822cea30bfca")
> E       AttributeError: 'TestClientApiInterface' object has no attribute 
> 'assertEquals'. Did you mean: 'assertEqual'?
> 
> etcd/tests/unit/test_request.py:131: AttributeError
> ______________________ TestClientApiInterface.test_newkey 
> ______________________
> 
> self = <etcd.tests.unit.test_request.TestClientApiInterface 
> testMethod=test_newkey>
> 
>     def test_newkey(self):
>         """ Can set a new value """
>         d = {
>             u'action': u'set',
>             u'node': {
>                 u'expiration': u'2013-09-14T00:56:59.316195568+02:00',
>                 u'modifiedIndex': 183,
>                 u'key': u'/testkey',
>                 u'ttl': 19,
>                 u'value': u'test'
>             }
>         }
>         self._mock_api(201, d)
>         res = self.client.write('/testkey', 'test')
>         d['node']['newKey'] = True
> >       self.assertEquals(res, etcd.EtcdResult(**d))
> E       AttributeError: 'TestClientApiInterface' object has no attribute 
> 'assertEquals'. Did you mean: 'assertEqual'?
> 
> etcd/tests/unit/test_request.py:218: AttributeError
> _______________________ TestClientApiInterface.test_pop 
> ________________________
> 
> self = <etcd.tests.unit.test_request.TestClientApiInterface 
> testMethod=test_pop>
> 
>     def test_pop(self):
>         """ Can pop a value """
>         d = {
>             u'action': u'delete',
>             u'node': {
>                 u'key': u'/testkey',
>                 u'modifiedIndex': 3,
>                 u'createdIndex': 2
>             },
>             u'prevNode': {u'newKey': False, u'createdIndex': None,
>                           u'modifiedIndex': 190, u'value': u'test', 
> u'expiration': None,
>                           u'key': u'/testkey', u'ttl': None, u'dir': False}
>         }
>     
>         self._mock_api(200, d)
>         res = self.client.pop(d['node']['key'])
> >       self.assertEquals({attr: getattr(res, attr) for attr in dir(res)
>                            if attr in etcd.EtcdResult._node_props}, 
> d['prevNode'])
> E       AttributeError: 'TestClientApiInterface' object has no attribute 
> 'assertEquals'. Did you mean: 'assertEqual'?
> 
> etcd/tests/unit/test_request.py:319: AttributeError
> _______________________ TestClientApiInterface.test_read 
> _______________________
> 
> self = <etcd.tests.unit.test_request.TestClientApiInterface 
> testMethod=test_read>
> 
>     def test_read(self):
>         """ Can get a value """
>         d = {
>             u'action': u'get',
>             u'node': {
>                 u'modifiedIndex': 190,
>                 u'key': u'/testkey',
>                 u'value': u'test'
>             }
>         }
>         self._mock_api(200, d)
>         res = self.client.read('/testKey')
> >       self.assertEquals(res, etcd.EtcdResult(**d))
> E       AttributeError: 'TestClientApiInterface' object has no attribute 
> 'assertEquals'. Did you mean: 'assertEqual'?
> 
> etcd/tests/unit/test_request.py:335: AttributeError
> _____________________ TestClientApiInterface.test_refresh 
> ______________________
> 
> self = <etcd.tests.unit.test_request.TestClientApiInterface 
> testMethod=test_refresh>
> 
>     def test_refresh(self):
>         """ Can refresh a new value """
>         d = {
>             u'action': u'update',
>             u'node': {
>                 u'expiration': u'2016-05-31T08:27:54.660337Z',
>                 u'modifiedIndex': 183,
>                 u'key': u'/testkey',
>                 u'ttl': 600,
>                 u'value': u'test'
>             }
>         }
>     
>         self._mock_api(200, d)
>         res = self.client.refresh('/testkey', ttl=600)
> >       self.assertEquals(res, etcd.EtcdResult(**d))
> E       AttributeError: 'TestClientApiInterface' object has no attribute 
> 'assertEquals'. Did you mean: 'assertEqual'?
> 
> etcd/tests/unit/test_request.py:235: AttributeError
> ____________________ TestClientApiInterface.test_self_stats 
> ____________________
> 
> self = <etcd.tests.unit.test_request.TestClientApiInterface 
> testMethod=test_self_stats>
> 
>     def test_self_stats(self):
>         """ Request for stats """
>         data = {
>             "id": "eca0338f4ea31566",
>             "leaderInfo": {
>                 "leader": "8a69d5f6b7814500",
>                 "startTime": "2014-10-24T13:15:51.186620747-07:00",
>                 "uptime": "10m59.322358947s"
>             },
>             "name": "node3",
>             "recvAppendRequestCnt": 5944,
>             "recvBandwidthRate": 570.6254930219969,
>             "recvPkgRate": 9.00892789741075,
>             "sendAppendRequestCnt": 0,
>             "startTime": "2014-10-24T13:15:50.072007085-07:00",
>             "state": "StateFollower"
>         }
>         self._mock_api(200,data)
> >       self.assertEquals(self.client.stats['name'], "node3")
> E       AttributeError: 'TestClientApiInterface' object has no attribute 
> 'assertEquals'. Did you mean: 'assertEqual'?
> 
> etcd/tests/unit/test_request.py:151: AttributeError
> ____________________ TestClientApiInterface.test_set_append 
> ____________________
> 
> self = <etcd.tests.unit.test_request.TestClientApiInterface 
> testMethod=test_set_append>
> 
>     def test_set_append(self):
>         """ Can append a new key """
>         d = {
>             u'action': u'create',
>             u'node': {
>                 u'createdIndex': 190,
>                 u'modifiedIndex': 190,
>                 u'key': u'/testdir/190',
>                 u'value': u'test'
>             }
>         }
>         self._mock_api(201, d)
>         res = self.client.write('/testdir', 'test')
> >       self.assertEquals(res.createdIndex, 190)
> E       AttributeError: 'TestClientApiInterface' object has no attribute 
> 'assertEquals'. Did you mean: 'assertEqual'?
> 
> etcd/tests/unit/test_request.py:282: AttributeError
> ____________________ TestClientApiInterface.test_set_plain 
> _____________________
> 
> self = <etcd.tests.unit.test_request.TestClientApiInterface 
> testMethod=test_set_plain>
> 
>     def test_set_plain(self):
>         """ Can set a value """
>         d = {u'action': u'set',
>              u'node': {
>                  u'expiration': u'2013-09-14T00:56:59.316195568+02:00',
>                  u'modifiedIndex': 183,
>                  u'key': u'/testkey',
>                  u'ttl': 19,
>                  u'value': u'test'
>              }
>          }
>     
>         self._mock_api(200, d)
>         res = self.client.write('/testkey', 'test')
> >       self.assertEquals(res, etcd.EtcdResult(**d))
> E       AttributeError: 'TestClientApiInterface' object has no attribute 
> 'assertEquals'. Did you mean: 'assertEqual'?
> 
> etcd/tests/unit/test_request.py:182: AttributeError
> ______________________ TestClientApiInterface.test_update 
> ______________________
> 
> self = <etcd.tests.unit.test_request.TestClientApiInterface 
> testMethod=test_update>
> 
>     def test_update(self):
>         """Can update a result."""
>         d = {u'action': u'set',
>              u'node': {
>                  u'expiration': u'2013-09-14T00:56:59.316195568+02:00',
>                  u'modifiedIndex': 6,
>                  u'key': u'/testkey',
>                  u'ttl': 19,
>                  u'value': u'test'
>                  }
>              }
>         self._mock_api(200,d)
>         res = self.client.get('/testkey')
>         res.value = 'ciao'
>         d['node']['value'] = 'ciao'
>         self._mock_api(200,d)
>         newres = self.client.update(res)
> >       self.assertEquals(newres.value, 'ciao')
> E       AttributeError: 'TestClientApiInterface' object has no attribute 
> 'assertEquals'. Did you mean: 'assertEqual'?
> 
> etcd/tests/unit/test_request.py:201: AttributeError
> ___________________ TestClientApiInterface.test_use_proxies 
> ____________________
> 
> self = <etcd.tests.unit.test_request.TestClientApiInterface 
> testMethod=test_use_proxies>
> mocker = <PropertyMock name='machines' id='140596450265280'>
> 
>     @mock.patch('etcd.Client.machines', new_callable=mock.PropertyMock)
>     def test_use_proxies(self, mocker):
>         """Do not overwrite the machines cache when using proxies"""
>         mocker.return_value = ['https://10.0.0.2:4001',
>                                'https://10.0.0.3:4001',
>                                'https://10.0.0.4:4001']
>         c = etcd.Client(
>             host=(('localhost', 4001), ('localproxy', 4001)),
>             protocol='https',
>             allow_reconnect=True,
>             use_proxies=True
>         )
>     
> >       self.assertEquals(c._machines_cache, ['https://localproxy:4001'])
> E       AttributeError: 'TestClientApiInterface' object has no attribute 
> 'assertEquals'. Did you mean: 'assertEqual'?
> 
> etcd/tests/unit/test_request.py:104: AttributeError
> ______________________ TestClientApiInterface.test_watch 
> _______________________
> 
> self = <etcd.tests.unit.test_request.TestClientApiInterface 
> testMethod=test_watch>
> 
>     def test_watch(self):
>         """ Can watch a key """
>         d = {
>             u'action': u'get',
>             u'node': {
>                 u'modifiedIndex': 190,
>                 u'key': u'/testkey',
>                 u'value': u'test'
>             }
>         }
>         self._mock_api(200, d)
>         res = self.client.read('/testkey', wait=True)
> >       self.assertEquals(res, etcd.EtcdResult(**d))
> E       AttributeError: 'TestClientApiInterface' object has no attribute 
> 'assertEquals'. Did you mean: 'assertEqual'?
> 
> etcd/tests/unit/test_request.py:393: AttributeError
> ___________________ TestClientApiInterface.test_watch_index 
> ____________________
> 
> self = <etcd.tests.unit.test_request.TestClientApiInterface 
> testMethod=test_watch_index>
> 
>     def test_watch_index(self):
>         """ Can watch a key starting from the given Index """
>         d = {
>             u'action': u'get',
>             u'node': {
>                 u'modifiedIndex': 170,
>                 u'key': u'/testkey',
>                 u'value': u'testold'
>             }
>         }
>         self._mock_api(200, d)
>         res = self.client.read('/testkey', wait=True, waitIndex=True)
> >       self.assertEquals(res, etcd.EtcdResult(**d))
> E       AttributeError: 'TestClientApiInterface' object has no attribute 
> 'assertEquals'. Did you mean: 'assertEqual'?
> 
> etcd/tests/unit/test_request.py:407: AttributeError
> ___________________ TestClientRequest.test_compare_and_swap 
> ____________________
> 
> self = <etcd.tests.unit.test_request.TestClientRequest 
> testMethod=test_compare_and_swap>
> 
>     def test_compare_and_swap(self):
>         """ Can set compare-and-swap a value """
>         d = {u'action': u'compareAndSwap',
>              u'node': {
>                  u'expiration': u'2013-09-14T00:56:59.316195568+02:00',
>                  u'modifiedIndex': 183,
>                  u'key': u'/testkey',
>                  u'ttl': 19,
>                  u'value': u'test'
>              }
>              }
>     
>         self._mock_api(200, d)
>         res = self.client.write('/testkey', 'test', prevValue='test_old')
> >       self.assertEquals(res, etcd.EtcdResult(**d))
> E       AttributeError: 'TestClientRequest' object has no attribute 
> 'assertEquals'. Did you mean: 'assertEqual'?
> 
> etcd/tests/unit/test_request.py:256: AttributeError
> ________________________ TestClientRequest.test_delete 
> _________________________
> 
> self = <etcd.tests.unit.test_request.TestClientRequest testMethod=test_delete>
> 
>     def test_delete(self):
>         """ Can delete a value """
>         d = {
>             u'action': u'delete',
>             u'node': {
>                 u'key': u'/testkey',
>                 "modifiedIndex": 3,
>                 "createdIndex": 2
>             }
>         }
>         self._mock_api(200, d)
>         res = self.client.delete('/testKey')
> >       self.assertEquals(res, etcd.EtcdResult(**d))
> E       AttributeError: 'TestClientRequest' object has no attribute 
> 'assertEquals'. Did you mean: 'assertEqual'?
> 
> etcd/tests/unit/test_request.py:301: AttributeError
> ________________________ TestClientRequest.test_get_dir 
> ________________________
> 
> self = <etcd.tests.unit.test_request.TestClientRequest 
> testMethod=test_get_dir>
> 
>     def test_get_dir(self):
>         """Can get values in dirs"""
>         d = {
>             u'action': u'get',
>             u'node': {
>                 u'modifiedIndex': 190,
>                 u'key': u'/testkey',
>                 u'dir': True,
>                 u'nodes': [
>                     {
>                         u'key': u'/testDir/testKey',
>                         u'modifiedIndex': 150,
>                         u'value': 'test'
>                     },
>                     {
>                         u'key': u'/testDir/testKey2',
>                         u'modifiedIndex': 190,
>                         u'value': 'test2'
>                     }
>                 ]
>             }
>         }
>         self._mock_api(200, d)
>         res = self.client.read('/testDir', recursive=True)
> >       self.assertEquals(res, etcd.EtcdResult(**d))
> E       AttributeError: 'TestClientRequest' object has no attribute 
> 'assertEquals'. Did you mean: 'assertEqual'?
> 
> etcd/tests/unit/test_request.py:361: AttributeError
> ________________________ TestClientRequest.test_leader 
> _________________________
> 
> self = <etcd.tests.unit.test_request.TestClientRequest testMethod=test_leader>
> mocker = <PropertyMock name='members' id='140596449941296'>
> 
>     @mock.patch('etcd.Client.members', new_callable=mock.PropertyMock)
>     def test_leader(self, mocker):
>         """ Can request the leader """
>         members = {"ce2a822cea30bfca": {"id": "ce2a822cea30bfca", "name": 
> "default"}}
>         mocker.return_value = members
>         self._mock_api(200, {"leaderInfo":{"leader": "ce2a822cea30bfca", 
> "followers": {}}})
> >       self.assertEquals(self.client.leader, members["ce2a822cea30bfca"])
> E       AttributeError: 'TestClientRequest' object has no attribute 
> 'assertEquals'. Did you mean: 'assertEqual'?
> 
> etcd/tests/unit/test_request.py:166: AttributeError
> _____________________ TestClientRequest.test_leader_stats 
> ______________________
> 
> self = <etcd.tests.unit.test_request.TestClientRequest 
> testMethod=test_leader_stats>
> 
>     def test_leader_stats(self):
>         """ Request for leader stats """
>         data = {"leader": "924e2e83e93f2560", "followers": {}}
>         self._mock_api(200,data)
> >       self.assertEquals(self.client.leader_stats['leader'], 
> > "924e2e83e93f2560")
> E       AttributeError: 'TestClientRequest' object has no attribute 
> 'assertEquals'. Did you mean: 'assertEqual'?
> 
> etcd/tests/unit/test_request.py:157: AttributeError
> _______________________ TestClientRequest.test_machines 
> ________________________
> 
> self = <etcd.tests.unit.test_request.TestClientRequest 
> testMethod=test_machines>
> mocker = <MagicMock name='request' id='140596449087408'>
> 
>     @mock.patch('urllib3.request.RequestMethods.request')
>     def test_machines(self, mocker):
>         """ Can request machines """
>         data = ['http://127.0.0.1:4001',
>                 'http://127.0.0.1:4002', 'http://127.0.0.1:4003']
>         d = ','.join(data)
>         mocker.return_value = self._prepare_response(200, d)
> >       self.assertEquals(data, self.client.machines)
> E       AttributeError: 'TestClientRequest' object has no attribute 
> 'assertEquals'. Did you mean: 'assertEqual'?
> 
> etcd/tests/unit/test_request.py:89: AttributeError
> ________________________ TestClientRequest.test_members 
> ________________________
> 
> self = <etcd.tests.unit.test_request.TestClientRequest 
> testMethod=test_members>
> 
>     def test_members(self):
>         """ Can request machines """
>         data = {
>             "members":
>             [
>                 {
>                     "id": "ce2a822cea30bfca",
>                     "name": "default",
>                     "peerURLs": ["http://localhost:2380";, 
> "http://localhost:7001";],
>                     "clientURLs": ["http://127.0.0.1:4001";]
>                 }
>             ]
>         }
>         self._mock_api(200, data)
> >       self.assertEquals(self.client.members["ce2a822cea30bfca"]["id"], 
> > "ce2a822cea30bfca")
> E       AttributeError: 'TestClientRequest' object has no attribute 
> 'assertEquals'. Did you mean: 'assertEqual'?
> 
> etcd/tests/unit/test_request.py:131: AttributeError
> ________________________ TestClientRequest.test_newkey 
> _________________________
> 
> self = <etcd.tests.unit.test_request.TestClientRequest testMethod=test_newkey>
> 
>     def test_newkey(self):
>         """ Can set a new value """
>         d = {
>             u'action': u'set',
>             u'node': {
>                 u'expiration': u'2013-09-14T00:56:59.316195568+02:00',
>                 u'modifiedIndex': 183,
>                 u'key': u'/testkey',
>                 u'ttl': 19,
>                 u'value': u'test'
>             }
>         }
>         self._mock_api(201, d)
>         res = self.client.write('/testkey', 'test')
>         d['node']['newKey'] = True
> >       self.assertEquals(res, etcd.EtcdResult(**d))
> E       AttributeError: 'TestClientRequest' object has no attribute 
> 'assertEquals'. Did you mean: 'assertEqual'?
> 
> etcd/tests/unit/test_request.py:218: AttributeError
> __________________________ TestClientRequest.test_pop 
> __________________________
> 
> self = <etcd.tests.unit.test_request.TestClientRequest testMethod=test_pop>
> 
>     def test_pop(self):
>         """ Can pop a value """
>         d = {
>             u'action': u'delete',
>             u'node': {
>                 u'key': u'/testkey',
>                 u'modifiedIndex': 3,
>                 u'createdIndex': 2
>             },
>             u'prevNode': {u'newKey': False, u'createdIndex': None,
>                           u'modifiedIndex': 190, u'value': u'test', 
> u'expiration': None,
>                           u'key': u'/testkey', u'ttl': None, u'dir': False}
>         }
>     
>         self._mock_api(200, d)
>         res = self.client.pop(d['node']['key'])
> >       self.assertEquals({attr: getattr(res, attr) for attr in dir(res)
>                            if attr in etcd.EtcdResult._node_props}, 
> d['prevNode'])
> E       AttributeError: 'TestClientRequest' object has no attribute 
> 'assertEquals'. Did you mean: 'assertEqual'?
> 
> etcd/tests/unit/test_request.py:319: AttributeError
> _________________________ TestClientRequest.test_read 
> __________________________
> 
> self = <etcd.tests.unit.test_request.TestClientRequest testMethod=test_read>
> 
>     def test_read(self):
>         """ Can get a value """
>         d = {
>             u'action': u'get',
>             u'node': {
>                 u'modifiedIndex': 190,
>                 u'key': u'/testkey',
>                 u'value': u'test'
>             }
>         }
>         self._mock_api(200, d)
>         res = self.client.read('/testKey')
> >       self.assertEquals(res, etcd.EtcdResult(**d))
> E       AttributeError: 'TestClientRequest' object has no attribute 
> 'assertEquals'. Did you mean: 'assertEqual'?
> 
> etcd/tests/unit/test_request.py:335: AttributeError
> ________________________ TestClientRequest.test_refresh 
> ________________________
> 
> self = <etcd.tests.unit.test_request.TestClientRequest 
> testMethod=test_refresh>
> 
>     def test_refresh(self):
>         """ Can refresh a new value """
>         d = {
>             u'action': u'update',
>             u'node': {
>                 u'expiration': u'2016-05-31T08:27:54.660337Z',
>                 u'modifiedIndex': 183,
>                 u'key': u'/testkey',
>                 u'ttl': 600,
>                 u'value': u'test'
>             }
>         }
>     
>         self._mock_api(200, d)
>         res = self.client.refresh('/testkey', ttl=600)
> >       self.assertEquals(res, etcd.EtcdResult(**d))
> E       AttributeError: 'TestClientRequest' object has no attribute 
> 'assertEquals'. Did you mean: 'assertEqual'?
> 
> etcd/tests/unit/test_request.py:235: AttributeError
> ______________________ TestClientRequest.test_self_stats 
> _______________________
> 
> self = <etcd.tests.unit.test_request.TestClientRequest 
> testMethod=test_self_stats>
> 
>     def test_self_stats(self):
>         """ Request for stats """
>         data = {
>             "id": "eca0338f4ea31566",
>             "leaderInfo": {
>                 "leader": "8a69d5f6b7814500",
>                 "startTime": "2014-10-24T13:15:51.186620747-07:00",
>                 "uptime": "10m59.322358947s"
>             },
>             "name": "node3",
>             "recvAppendRequestCnt": 5944,
>             "recvBandwidthRate": 570.6254930219969,
>             "recvPkgRate": 9.00892789741075,
>             "sendAppendRequestCnt": 0,
>             "startTime": "2014-10-24T13:15:50.072007085-07:00",
>             "state": "StateFollower"
>         }
>         self._mock_api(200,data)
> >       self.assertEquals(self.client.stats['name'], "node3")
> E       AttributeError: 'TestClientRequest' object has no attribute 
> 'assertEquals'. Did you mean: 'assertEqual'?
> 
> etcd/tests/unit/test_request.py:151: AttributeError
> ______________________ TestClientRequest.test_set_append 
> _______________________
> 
> self = <etcd.tests.unit.test_request.TestClientRequest 
> testMethod=test_set_append>
> 
>     def test_set_append(self):
>         """ Can append a new key """
>         d = {
>             u'action': u'create',
>             u'node': {
>                 u'createdIndex': 190,
>                 u'modifiedIndex': 190,
>                 u'key': u'/testdir/190',
>                 u'value': u'test'
>             }
>         }
>         self._mock_api(201, d)
>         res = self.client.write('/testdir', 'test')
> >       self.assertEquals(res.createdIndex, 190)
> E       AttributeError: 'TestClientRequest' object has no attribute 
> 'assertEquals'. Did you mean: 'assertEqual'?
> 
> etcd/tests/unit/test_request.py:282: AttributeError
> _______________________ TestClientRequest.test_set_plain 
> _______________________
> 
> self = <etcd.tests.unit.test_request.TestClientRequest 
> testMethod=test_set_plain>
> 
>     def test_set_plain(self):
>         """ Can set a value """
>         d = {u'action': u'set',
>              u'node': {
>                  u'expiration': u'2013-09-14T00:56:59.316195568+02:00',
>                  u'modifiedIndex': 183,
>                  u'key': u'/testkey',
>                  u'ttl': 19,
>                  u'value': u'test'
>              }
>          }
>     
>         self._mock_api(200, d)
>         res = self.client.write('/testkey', 'test')
> >       self.assertEquals(res, etcd.EtcdResult(**d))
> E       AttributeError: 'TestClientRequest' object has no attribute 
> 'assertEquals'. Did you mean: 'assertEqual'?
> 
> etcd/tests/unit/test_request.py:182: AttributeError
> ________________________ TestClientRequest.test_update 
> _________________________
> 
> self = <etcd.tests.unit.test_request.TestClientRequest testMethod=test_update>
> 
>     def test_update(self):
>         """Can update a result."""
>         d = {u'action': u'set',
>              u'node': {
>                  u'expiration': u'2013-09-14T00:56:59.316195568+02:00',
>                  u'modifiedIndex': 6,
>                  u'key': u'/testkey',
>                  u'ttl': 19,
>                  u'value': u'test'
>                  }
>              }
>         self._mock_api(200,d)
>         res = self.client.get('/testkey')
>         res.value = 'ciao'
>         d['node']['value'] = 'ciao'
>         self._mock_api(200,d)
>         newres = self.client.update(res)
> >       self.assertEquals(newres.value, 'ciao')
> E       AttributeError: 'TestClientRequest' object has no attribute 
> 'assertEquals'. Did you mean: 'assertEqual'?
> 
> etcd/tests/unit/test_request.py:201: AttributeError
> ______________________ TestClientRequest.test_use_proxies 
> ______________________
> 
> self = <etcd.tests.unit.test_request.TestClientRequest 
> testMethod=test_use_proxies>
> mocker = <PropertyMock name='machines' id='140596450000000'>
> 
>     @mock.patch('etcd.Client.machines', new_callable=mock.PropertyMock)
>     def test_use_proxies(self, mocker):
>         """Do not overwrite the machines cache when using proxies"""
>         mocker.return_value = ['https://10.0.0.2:4001',
>                                'https://10.0.0.3:4001',
>                                'https://10.0.0.4:4001']
>         c = etcd.Client(
>             host=(('localhost', 4001), ('localproxy', 4001)),
>             protocol='https',
>             allow_reconnect=True,
>             use_proxies=True
>         )
>     
> >       self.assertEquals(c._machines_cache, ['https://localproxy:4001'])
> E       AttributeError: 'TestClientRequest' object has no attribute 
> 'assertEquals'. Did you mean: 'assertEqual'?
> 
> etcd/tests/unit/test_request.py:104: AttributeError
> _________________________ TestClientRequest.test_watch 
> _________________________
> 
> self = <etcd.tests.unit.test_request.TestClientRequest testMethod=test_watch>
> 
>     def test_watch(self):
>         """ Can watch a key """
>         d = {
>             u'action': u'get',
>             u'node': {
>                 u'modifiedIndex': 190,
>                 u'key': u'/testkey',
>                 u'value': u'test'
>             }
>         }
>         self._mock_api(200, d)
>         res = self.client.read('/testkey', wait=True)
> >       self.assertEquals(res, etcd.EtcdResult(**d))
> E       AttributeError: 'TestClientRequest' object has no attribute 
> 'assertEquals'. Did you mean: 'assertEqual'?
> 
> etcd/tests/unit/test_request.py:393: AttributeError
> ______________________ TestClientRequest.test_watch_index 
> ______________________
> 
> self = <etcd.tests.unit.test_request.TestClientRequest 
> testMethod=test_watch_index>
> 
>     def test_watch_index(self):
>         """ Can watch a key starting from the given Index """
>         d = {
>             u'action': u'get',
>             u'node': {
>                 u'modifiedIndex': 170,
>                 u'key': u'/testkey',
>                 u'value': u'testold'
>             }
>         }
>         self._mock_api(200, d)
>         res = self.client.read('/testkey', wait=True, waitIndex=True)
> >       self.assertEquals(res, etcd.EtcdResult(**d))
> E       AttributeError: 'TestClientRequest' object has no attribute 
> 'assertEquals'. Did you mean: 'assertEqual'?
> 
> etcd/tests/unit/test_request.py:407: AttributeError
> =============================== warnings summary 
> ===============================
> etcd/__init__.py:314
>   /<<PKGBUILDDIR>>/.pybuild/cpython3_3.12_etcd/build/etcd/__init__.py:314: 
> DeprecationWarning: 'urllib3.contrib.pyopenssl' module is deprecated and will 
> be removed in a future release of urllib3 2.x. Read more in this issue: 
> https://github.com/urllib3/urllib3/issues/2680
>     from urllib3.contrib import pyopenssl
> 
> .pybuild/cpython3_3.12_etcd/build/etcd/tests/unit/test_old_request.py:243
>   .pybuild/cpython3_3.12_etcd/build/etcd/tests/unit/test_old_request.py:243: 
> PytestCollectionWarning: yield tests were removed in pytest 4.0 - 
> test_eternal_watch will be ignored
> 
> -- Docs: https://docs.pytest.org/en/stable/how-to/capture-warnings.html
> =========================== short test summary info 
> ============================
> FAILED etcd/tests/unit/test_client.py::TestClient::test__set_version_info - 
> A...
> FAILED 
> etcd/tests/unit/test_client.py::TestClient::test_cluster_version_property
> FAILED etcd/tests/unit/test_client.py::TestClient::test_discover - 
> AttributeE...
> FAILED etcd/tests/unit/test_client.py::TestClient::test_version_property - 
> At...
> FAILED etcd/tests/unit/test_lock.py::TestClientLock::test_acquire - 
> Attribute...
> FAILED etcd/tests/unit/test_lock.py::TestClientLock::test_find_lock - 
> Attribu...
> FAILED etcd/tests/unit/test_lock.py::TestClientLock::test_get_locker - 
> Attrib...
> FAILED etcd/tests/unit/test_lock.py::TestClientLock::test_initialization - 
> At...
> FAILED etcd/tests/unit/test_lock.py::TestClientLock::test_is_acquired - 
> Attri...
> FAILED etcd/tests/unit/test_lock.py::TestClientLock::test_is_not_acquired - 
> A...
> FAILED etcd/tests/unit/test_lock.py::TestClientLock::test_lock_key - 
> Attribut...
> FAILED etcd/tests/unit/test_lock.py::TestClientLock::test_set_sequence - 
> Attr...
> FAILED etcd/tests/unit/test_old_request.py::TestClientRequest::test_delete - 
> ...
> FAILED etcd/tests/unit/test_old_request.py::TestClientRequest::test_get - 
> Att...
> FAILED etcd/tests/unit/test_old_request.py::TestClientRequest::test_in - 
> Attr...
> FAILED 
> etcd/tests/unit/test_old_request.py::TestClientRequest::test_index_watch
> FAILED etcd/tests/unit/test_old_request.py::TestClientRequest::test_not_in - 
> ...
> FAILED etcd/tests/unit/test_old_request.py::TestClientRequest::test_set - 
> Att...
> FAILED 
> etcd/tests/unit/test_old_request.py::TestClientRequest::test_simple_watch
> FAILED 
> etcd/tests/unit/test_old_request.py::TestClientRequest::test_test_and_set
> FAILED 
> etcd/tests/unit/test_old_request.py::TestClientRequest::test_test_and_test_failure
> FAILED etcd/tests/unit/test_old_request.py::TestClientApiExecutor::test_delete
> FAILED etcd/tests/unit/test_old_request.py::TestClientApiExecutor::test_get
> FAILED 
> etcd/tests/unit/test_old_request.py::TestClientApiExecutor::test_get_error
> FAILED etcd/tests/unit/test_old_request.py::TestClientApiExecutor::test_put
> FAILED 
> etcd/tests/unit/test_old_request.py::TestClientApiExecutor::test_set_not_file_error
> FAILED 
> etcd/tests/unit/test_old_request.py::TestClientApiExecutor::test_test_and_set_error
> FAILED 
> etcd/tests/unit/test_request.py::TestClientApiInternals::test_write_no_params
> FAILED 
> etcd/tests/unit/test_request.py::TestClientApiInterface::test_compare_and_swap
> FAILED etcd/tests/unit/test_request.py::TestClientApiInterface::test_delete
> FAILED etcd/tests/unit/test_request.py::TestClientApiInterface::test_get_dir
> FAILED etcd/tests/unit/test_request.py::TestClientApiInterface::test_leader
> FAILED 
> etcd/tests/unit/test_request.py::TestClientApiInterface::test_leader_stats
> FAILED etcd/tests/unit/test_request.py::TestClientApiInterface::test_machines
> FAILED etcd/tests/unit/test_request.py::TestClientApiInterface::test_members
> FAILED etcd/tests/unit/test_request.py::TestClientApiInterface::test_newkey
> FAILED etcd/tests/unit/test_request.py::TestClientApiInterface::test_pop - 
> At...
> FAILED etcd/tests/unit/test_request.py::TestClientApiInterface::test_read - 
> A...
> FAILED etcd/tests/unit/test_request.py::TestClientApiInterface::test_refresh
> FAILED 
> etcd/tests/unit/test_request.py::TestClientApiInterface::test_self_stats
> FAILED 
> etcd/tests/unit/test_request.py::TestClientApiInterface::test_set_append
> FAILED etcd/tests/unit/test_request.py::TestClientApiInterface::test_set_plain
> FAILED etcd/tests/unit/test_request.py::TestClientApiInterface::test_update
> FAILED 
> etcd/tests/unit/test_request.py::TestClientApiInterface::test_use_proxies
> FAILED etcd/tests/unit/test_request.py::TestClientApiInterface::test_watch - 
> ...
> FAILED 
> etcd/tests/unit/test_request.py::TestClientApiInterface::test_watch_index
> FAILED 
> etcd/tests/unit/test_request.py::TestClientRequest::test_compare_and_swap
> FAILED etcd/tests/unit/test_request.py::TestClientRequest::test_delete - 
> Attr...
> FAILED etcd/tests/unit/test_request.py::TestClientRequest::test_get_dir - 
> Att...
> FAILED etcd/tests/unit/test_request.py::TestClientRequest::test_leader - 
> Attr...
> FAILED etcd/tests/unit/test_request.py::TestClientRequest::test_leader_stats
> FAILED etcd/tests/unit/test_request.py::TestClientRequest::test_machines - 
> At...
> FAILED etcd/tests/unit/test_request.py::TestClientRequest::test_members - 
> Att...
> FAILED etcd/tests/unit/test_request.py::TestClientRequest::test_newkey - 
> Attr...
> FAILED etcd/tests/unit/test_request.py::TestClientRequest::test_pop - 
> Attribu...
> FAILED etcd/tests/unit/test_request.py::TestClientRequest::test_read - 
> Attrib...
> FAILED etcd/tests/unit/test_request.py::TestClientRequest::test_refresh - 
> Att...
> FAILED etcd/tests/unit/test_request.py::TestClientRequest::test_self_stats - 
> ...
> FAILED etcd/tests/unit/test_request.py::TestClientRequest::test_set_append - 
> ...
> FAILED etcd/tests/unit/test_request.py::TestClientRequest::test_set_plain - 
> A...
> FAILED etcd/tests/unit/test_request.py::TestClientRequest::test_update - 
> Attr...
> FAILED etcd/tests/unit/test_request.py::TestClientRequest::test_use_proxies
> FAILED etcd/tests/unit/test_request.py::TestClientRequest::test_watch - 
> Attri...
> FAILED etcd/tests/unit/test_request.py::TestClientRequest::test_watch_index
> ============= 64 failed, 54 passed, 1 xfailed, 2 warnings in 2.43s 
> =============
> E: pybuild pybuild:395: test: plugin distutils failed with: exit code=1: cd 
> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.12_etcd/build; python3.12 -m pytest 
> etcd/tests/unit/
> I: pybuild base:310: cd /<<PKGBUILDDIR>>/.pybuild/cpython3_3.11_etcd/build; 
> python3.11 -m pytest etcd/tests/unit/
> ============================= test session starts 
> ==============================
> platform linux -- Python 3.11.7, pytest-7.4.3, pluggy-1.3.0
> rootdir: /<<PKGBUILDDIR>>
> collected 119 items
> 
> etcd/tests/unit/test_client.py ............................              [ 
> 23%]
> etcd/tests/unit/test_lock.py ...........                                 [ 
> 32%]
> etcd/tests/unit/test_old_request.py ...........x.........                [ 
> 50%]
> etcd/tests/unit/test_request.py ........................................ [ 
> 84%]
> ................                                                         [ 
> 97%]
> etcd/tests/unit/test_result.py ...                                       
> [100%]
> 
> =============================== warnings summary 
> ===============================
> etcd/__init__.py:314
>   /<<PKGBUILDDIR>>/.pybuild/cpython3_3.11_etcd/build/etcd/__init__.py:314: 
> DeprecationWarning: 'urllib3.contrib.pyopenssl' module is deprecated and will 
> be removed in a future release of urllib3 2.x. Read more in this issue: 
> https://github.com/urllib3/urllib3/issues/2680
>     from urllib3.contrib import pyopenssl
> 
> .pybuild/cpython3_3.11_etcd/build/etcd/tests/unit/test_old_request.py:243
>   .pybuild/cpython3_3.11_etcd/build/etcd/tests/unit/test_old_request.py:243: 
> PytestCollectionWarning: yield tests were removed in pytest 4.0 - 
> test_eternal_watch will be ignored
> 
> .pybuild/cpython3_3.11_etcd/build/etcd/tests/unit/test_client.py::TestClient::test__set_version_info
>   
> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.11_etcd/build/etcd/tests/unit/test_client.py:145:
>  DeprecationWarning: Please use assertEqual instead.
>     self.assertEquals('2.2.3', client.version)
> 
> .pybuild/cpython3_3.11_etcd/build/etcd/tests/unit/test_client.py::TestClient::test__set_version_info
>   
> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.11_etcd/build/etcd/tests/unit/test_client.py:146:
>  DeprecationWarning: Please use assertEqual instead.
>     self.assertEquals('2.3.0', client.cluster_version)
> 
> .pybuild/cpython3_3.11_etcd/build/etcd/tests/unit/test_client.py::TestClient::test_cluster_version_property
>   
> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.11_etcd/build/etcd/tests/unit/test_client.py:174:
>  DeprecationWarning: Please use assertEqual instead.
>     self.assertEquals('2.3.0', client.cluster_version)
> 
> .pybuild/cpython3_3.11_etcd/build/etcd/tests/unit/test_client.py::TestClient::test_discover
>   
> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.11_etcd/build/etcd/tests/unit/test_client.py:210:
>  DeprecationWarning: Please use assertEqual instead.
>     self.assertEquals(c.host, u'etcd1.example.com')
> 
> .pybuild/cpython3_3.11_etcd/build/etcd/tests/unit/test_client.py::TestClient::test_discover
>   
> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.11_etcd/build/etcd/tests/unit/test_client.py:211:
>  DeprecationWarning: Please use assertEqual instead.
>     self.assertEquals(c.port, 2379)
> 
> .pybuild/cpython3_3.11_etcd/build/etcd/tests/unit/test_client.py::TestClient::test_discover
>   
> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.11_etcd/build/etcd/tests/unit/test_client.py:212:
>  DeprecationWarning: Please use assertEqual instead.
>     self.assertEquals(c._machines_cache,
> 
> .pybuild/cpython3_3.11_etcd/build/etcd/tests/unit/test_client.py::TestClient::test_version_property
>   
> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.11_etcd/build/etcd/tests/unit/test_client.py:160:
>  DeprecationWarning: Please use assertEqual instead.
>     self.assertEquals('2.2.3', client.version)
> 
> .pybuild/cpython3_3.11_etcd/build/etcd/tests/unit/test_lock.py::TestClientLock::test_acquire
>   
> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.11_etcd/build/etcd/tests/unit/test_lock.py:55:
>  DeprecationWarning: Please use assertEqual instead.
>     self.assertEquals(l.acquire(), True)
> 
> .pybuild/cpython3_3.11_etcd/build/etcd/tests/unit/test_lock.py::TestClientLock::test_acquire
>   
> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.11_etcd/build/etcd/tests/unit/test_lock.py:56:
>  DeprecationWarning: Please use assertEqual instead.
>     self.assertEquals(l._sequence, '1')
> 
> .pybuild/cpython3_3.11_etcd/build/etcd/tests/unit/test_lock.py::TestClientLock::test_find_lock
>   
> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.11_etcd/build/etcd/tests/unit/test_lock.py:174:
>  DeprecationWarning: Please use assertEqual instead.
>     self.assertEquals(self.locker._sequence, '34')
> 
> .pybuild/cpython3_3.11_etcd/build/etcd/tests/unit/test_lock.py::TestClientLock::test_get_locker
>   
> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.11_etcd/build/etcd/tests/unit/test_lock.py:178:
>  DeprecationWarning: Please use assertEqual instead.
>     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})),
> 
> .pybuild/cpython3_3.11_etcd/build/etcd/tests/unit/test_lock.py::TestClientLock::test_initialization
>   
> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.11_etcd/build/etcd/tests/unit/test_lock.py:34:
>  DeprecationWarning: Please use assertEqual instead.
>     self.assertEquals(self.locker.name, u'test_lock')
> 
> .pybuild/cpython3_3.11_etcd/build/etcd/tests/unit/test_lock.py::TestClientLock::test_initialization
>   
> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.11_etcd/build/etcd/tests/unit/test_lock.py:35:
>  DeprecationWarning: Please use assertEqual instead.
>     self.assertEquals(self.locker.path, u'/_locks/test_lock')
> 
> .pybuild/cpython3_3.11_etcd/build/etcd/tests/unit/test_lock.py::TestClientLock::test_initialization
>   
> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.11_etcd/build/etcd/tests/unit/test_lock.py:36:
>  DeprecationWarning: Please use assertEqual instead.
>     self.assertEquals(self.locker.is_taken, False)
> 
> .pybuild/cpython3_3.11_etcd/build/etcd/tests/unit/test_lock.py::TestClientLock::test_is_acquired
>   
> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.11_etcd/build/etcd/tests/unit/test_lock.py:73:
>  DeprecationWarning: Please use assertEqual instead.
>     self.assertEquals(self.locker.is_acquired, True)
> 
> .pybuild/cpython3_3.11_etcd/build/etcd/tests/unit/test_lock.py::TestClientLock::test_is_not_acquired
>   
> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.11_etcd/build/etcd/tests/unit/test_lock.py:81:
>  DeprecationWarning: Please use assertEqual instead.
>     self.assertEquals(self.locker.is_acquired, False)
> 
> .pybuild/cpython3_3.11_etcd/build/etcd/tests/unit/test_lock.py::TestClientLock::test_is_not_acquired
>   /<<PKGBUILDDIR>>/.pybuild/cpython3_3.11_etcd/build/etcd/lock.py:53: 
> DeprecationWarning: The 'warn' method is deprecated, use 'warning' instead
>     _log.warn("Lock was supposedly taken, but we cannot find it")
> 
> .pybuild/cpython3_3.11_etcd/build/etcd/tests/unit/test_lock.py::TestClientLock::test_is_not_acquired
>   
> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.11_etcd/build/etcd/tests/unit/test_lock.py:84:
>  DeprecationWarning: Please use assertEqual instead.
>     self.assertEquals(self.locker.is_acquired, False)
> 
> .pybuild/cpython3_3.11_etcd/build/etcd/tests/unit/test_lock.py::TestClientLock::test_is_not_acquired
>   
> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.11_etcd/build/etcd/tests/unit/test_lock.py:85:
>  DeprecationWarning: Please use assertEqual instead.
>     self.assertEquals(self.locker.is_taken, False)
> 
> .pybuild/cpython3_3.11_etcd/build/etcd/tests/unit/test_lock.py::TestClientLock::test_lock_key
>   
> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.11_etcd/build/etcd/tests/unit/test_lock.py:150:
>  DeprecationWarning: Please use assertEqual instead.
>     self.assertEquals(u'/_locks/test_lock/5',self.locker.lock_key)
> 
> .pybuild/cpython3_3.11_etcd/build/etcd/tests/unit/test_lock.py::TestClientLock::test_set_sequence
>   
> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.11_etcd/build/etcd/tests/unit/test_lock.py:154:
>  DeprecationWarning: Please use assertEqual instead.
>     self.assertEquals('10', self.locker._sequence)
> 
> .pybuild/cpython3_3.11_etcd/build/etcd/tests/unit/test_old_request.py::TestClientRequest::test_delete
>   
> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.11_etcd/build/etcd/tests/unit/test_old_request.py:114:
>  DeprecationWarning: Please use assertEqual instead.
>     self.assertEquals(etcd.EtcdResult(
> 
> .pybuild/cpython3_3.11_etcd/build/etcd/tests/unit/test_old_request.py::TestClientRequest::test_get
>   
> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.11_etcd/build/etcd/tests/unit/test_old_request.py:136:
>  DeprecationWarning: Please use assertEqual instead.
>     self.assertEquals(etcd.EtcdResult(
> 
> .pybuild/cpython3_3.11_etcd/build/etcd/tests/unit/test_old_request.py::TestClientRequest::test_in
>   
> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.11_etcd/build/etcd/tests/unit/test_old_request.py:172:
>  DeprecationWarning: Please use assertEqual instead.
>     self.assertEquals(True, result)
> 
> .pybuild/cpython3_3.11_etcd/build/etcd/tests/unit/test_old_request.py::TestClientRequest::test_index_watch
>   
> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.11_etcd/build/etcd/tests/unit/test_old_request.py:216:
>  DeprecationWarning: Please use assertEqual instead.
>     self.assertEquals(
> 
> .pybuild/cpython3_3.11_etcd/build/etcd/tests/unit/test_old_request.py::TestClientRequest::test_not_in
>   
> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.11_etcd/build/etcd/tests/unit/test_old_request.py:157:
>  DeprecationWarning: Please use assertEqual instead.
>     self.assertEquals(True, result)
> 
> .pybuild/cpython3_3.11_etcd/build/etcd/tests/unit/test_old_request.py::TestClientRequest::test_set
>   
> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.11_etcd/build/etcd/tests/unit/test_old_request.py:45:
>  DeprecationWarning: Please use assertEqual instead.
>     self.assertEquals(
> 
> .pybuild/cpython3_3.11_etcd/build/etcd/tests/unit/test_old_request.py::TestClientRequest::test_simple_watch
>   
> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.11_etcd/build/etcd/tests/unit/test_old_request.py:189:
>  DeprecationWarning: Please use assertEqual instead.
>     self.assertEquals(
> 
> .pybuild/cpython3_3.11_etcd/build/etcd/tests/unit/test_old_request.py::TestClientRequest::test_test_and_set
>   
> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.11_etcd/build/etcd/tests/unit/test_old_request.py:70:
>  DeprecationWarning: Please use assertEqual instead.
>     self.assertEquals(
> 
> .pybuild/cpython3_3.11_etcd/build/etcd/tests/unit/test_old_request.py::TestClientRequest::test_test_and_test_failure
>   
> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.11_etcd/build/etcd/tests/unit/test_old_request.py:97:
>  DeprecationWarning: Please use assertEqual instead.
>     self.assertEquals(
> 
> .pybuild/cpython3_3.11_etcd/build/etcd/tests/unit/test_old_request.py::TestClientApiExecutor::test_delete
>   
> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.11_etcd/build/etcd/tests/unit/test_old_request.py:278:
>  DeprecationWarning: Please use assertEqual instead.
>     self.assertEquals('arbitrary json data'.encode('utf-8'), result.data)
> 
> .pybuild/cpython3_3.11_etcd/build/etcd/tests/unit/test_old_request.py::TestClientApiExecutor::test_get
>   
> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.11_etcd/build/etcd/tests/unit/test_old_request.py:270:
>  DeprecationWarning: Please use assertEqual instead.
>     self.assertEquals('arbitrary json data'.encode('utf-8'), result.data)
> 
> .pybuild/cpython3_3.11_etcd/build/etcd/tests/unit/test_old_request.py::TestClientApiExecutor::test_get_error
>   
> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.11_etcd/build/etcd/tests/unit/test_old_request.py:292:
>  DeprecationWarning: Please use assertEqual instead.
>     self.assertEquals(str(e), 'message : cause')
> 
> .pybuild/cpython3_3.11_etcd/build/etcd/tests/unit/test_old_request.py::TestClientApiExecutor::test_put
>   
> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.11_etcd/build/etcd/tests/unit/test_old_request.py:300:
>  DeprecationWarning: Please use assertEqual instead.
>     self.assertEquals('arbitrary json data'.encode('utf-8'), result.data)
> 
> .pybuild/cpython3_3.11_etcd/build/etcd/tests/unit/test_old_request.py::TestClientApiExecutor::test_set_not_file_error
>   
> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.11_etcd/build/etcd/tests/unit/test_old_request.py:328:
>  DeprecationWarning: Please use assertEqual instead.
>     self.assertEquals('message : cause', str(e))
> 
> .pybuild/cpython3_3.11_etcd/build/etcd/tests/unit/test_old_request.py::TestClientApiExecutor::test_test_and_set_error
>   
> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.11_etcd/build/etcd/tests/unit/test_old_request.py:314:
>  DeprecationWarning: Please use assertEqual instead.
>     self.assertEquals('message : cause', str(e))
> 
> .pybuild/cpython3_3.11_etcd/build/etcd/tests/unit/test_request.py::TestClientApiInternals::test_write_no_params
>   
> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.11_etcd/build/etcd/tests/unit/test_request.py:71:
>  DeprecationWarning: Please use assertEqual instead.
>     self.assertEquals(self.client.api_execute.call_args,
> 
> .pybuild/cpython3_3.11_etcd/build/etcd/tests/unit/test_request.py::TestClientApiInterface::test_compare_and_swap
> .pybuild/cpython3_3.11_etcd/build/etcd/tests/unit/test_request.py::TestClientRequest::test_compare_and_swap
>   
> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.11_etcd/build/etcd/tests/unit/test_request.py:256:
>  DeprecationWarning: Please use assertEqual instead.
>     self.assertEquals(res, etcd.EtcdResult(**d))
> 
> .pybuild/cpython3_3.11_etcd/build/etcd/tests/unit/test_request.py::TestClientApiInterface::test_delete
> .pybuild/cpython3_3.11_etcd/build/etcd/tests/unit/test_request.py::TestClientRequest::test_delete
>   
> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.11_etcd/build/etcd/tests/unit/test_request.py:301:
>  DeprecationWarning: Please use assertEqual instead.
>     self.assertEquals(res, etcd.EtcdResult(**d))
> 
> .pybuild/cpython3_3.11_etcd/build/etcd/tests/unit/test_request.py::TestClientApiInterface::test_get_dir
> .pybuild/cpython3_3.11_etcd/build/etcd/tests/unit/test_request.py::TestClientRequest::test_get_dir
>   
> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.11_etcd/build/etcd/tests/unit/test_request.py:361:
>  DeprecationWarning: Please use assertEqual instead.
>     self.assertEquals(res, etcd.EtcdResult(**d))
> 
> .pybuild/cpython3_3.11_etcd/build/etcd/tests/unit/test_request.py::TestClientApiInterface::test_leader
> .pybuild/cpython3_3.11_etcd/build/etcd/tests/unit/test_request.py::TestClientRequest::test_leader
>   
> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.11_etcd/build/etcd/tests/unit/test_request.py:166:
>  DeprecationWarning: Please use assertEqual instead.
>     self.assertEquals(self.client.leader, members["ce2a822cea30bfca"])
> 
> .pybuild/cpython3_3.11_etcd/build/etcd/tests/unit/test_request.py::TestClientApiInterface::test_leader_stats
> .pybuild/cpython3_3.11_etcd/build/etcd/tests/unit/test_request.py::TestClientRequest::test_leader_stats
>   
> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.11_etcd/build/etcd/tests/unit/test_request.py:157:
>  DeprecationWarning: Please use assertEqual instead.
>     self.assertEquals(self.client.leader_stats['leader'], "924e2e83e93f2560")
> 
> .pybuild/cpython3_3.11_etcd/build/etcd/tests/unit/test_request.py::TestClientApiInterface::test_machines
> .pybuild/cpython3_3.11_etcd/build/etcd/tests/unit/test_request.py::TestClientRequest::test_machines
>   
> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.11_etcd/build/etcd/tests/unit/test_request.py:89:
>  DeprecationWarning: Please use assertEqual instead.
>     self.assertEquals(data, self.client.machines)
> 
> .pybuild/cpython3_3.11_etcd/build/etcd/tests/unit/test_request.py::TestClientApiInterface::test_members
> .pybuild/cpython3_3.11_etcd/build/etcd/tests/unit/test_request.py::TestClientRequest::test_members
>   
> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.11_etcd/build/etcd/tests/unit/test_request.py:131:
>  DeprecationWarning: Please use assertEqual instead.
>     self.assertEquals(self.client.members["ce2a822cea30bfca"]["id"], 
> "ce2a822cea30bfca")
> 
> .pybuild/cpython3_3.11_etcd/build/etcd/tests/unit/test_request.py::TestClientApiInterface::test_newkey
> .pybuild/cpython3_3.11_etcd/build/etcd/tests/unit/test_request.py::TestClientRequest::test_newkey
>   
> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.11_etcd/build/etcd/tests/unit/test_request.py:218:
>  DeprecationWarning: Please use assertEqual instead.
>     self.assertEquals(res, etcd.EtcdResult(**d))
> 
> .pybuild/cpython3_3.11_etcd/build/etcd/tests/unit/test_request.py::TestClientApiInterface::test_pop
> .pybuild/cpython3_3.11_etcd/build/etcd/tests/unit/test_request.py::TestClientRequest::test_pop
>   
> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.11_etcd/build/etcd/tests/unit/test_request.py:319:
>  DeprecationWarning: Please use assertEqual instead.
>     self.assertEquals({attr: getattr(res, attr) for attr in dir(res)
> 
> .pybuild/cpython3_3.11_etcd/build/etcd/tests/unit/test_request.py::TestClientApiInterface::test_read
> .pybuild/cpython3_3.11_etcd/build/etcd/tests/unit/test_request.py::TestClientRequest::test_read
>   
> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.11_etcd/build/etcd/tests/unit/test_request.py:335:
>  DeprecationWarning: Please use assertEqual instead.
>     self.assertEquals(res, etcd.EtcdResult(**d))
> 
> .pybuild/cpython3_3.11_etcd/build/etcd/tests/unit/test_request.py::TestClientApiInterface::test_refresh
> .pybuild/cpython3_3.11_etcd/build/etcd/tests/unit/test_request.py::TestClientRequest::test_refresh
>   
> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.11_etcd/build/etcd/tests/unit/test_request.py:235:
>  DeprecationWarning: Please use assertEqual instead.
>     self.assertEquals(res, etcd.EtcdResult(**d))
> 
> .pybuild/cpython3_3.11_etcd/build/etcd/tests/unit/test_request.py::TestClientApiInterface::test_self_stats
> .pybuild/cpython3_3.11_etcd/build/etcd/tests/unit/test_request.py::TestClientRequest::test_self_stats
>   
> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.11_etcd/build/etcd/tests/unit/test_request.py:151:
>  DeprecationWarning: Please use assertEqual instead.
>     self.assertEquals(self.client.stats['name'], "node3")
> 
> .pybuild/cpython3_3.11_etcd/build/etcd/tests/unit/test_request.py::TestClientApiInterface::test_set_append
> .pybuild/cpython3_3.11_etcd/build/etcd/tests/unit/test_request.py::TestClientRequest::test_set_append
>   
> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.11_etcd/build/etcd/tests/unit/test_request.py:282:
>  DeprecationWarning: Please use assertEqual instead.
>     self.assertEquals(res.createdIndex, 190)
> 
> .pybuild/cpython3_3.11_etcd/build/etcd/tests/unit/test_request.py::TestClientApiInterface::test_set_plain
> .pybuild/cpython3_3.11_etcd/build/etcd/tests/unit/test_request.py::TestClientRequest::test_set_plain
>   
> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.11_etcd/build/etcd/tests/unit/test_request.py:182:
>  DeprecationWarning: Please use assertEqual instead.
>     self.assertEquals(res, etcd.EtcdResult(**d))
> 
> .pybuild/cpython3_3.11_etcd/build/etcd/tests/unit/test_request.py::TestClientApiInterface::test_update
> .pybuild/cpython3_3.11_etcd/build/etcd/tests/unit/test_request.py::TestClientRequest::test_update
>   
> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.11_etcd/build/etcd/tests/unit/test_request.py:201:
>  DeprecationWarning: Please use assertEqual instead.
>     self.assertEquals(newres.value, 'ciao')
> 
> .pybuild/cpython3_3.11_etcd/build/etcd/tests/unit/test_request.py::TestClientApiInterface::test_use_proxies
> .pybuild/cpython3_3.11_etcd/build/etcd/tests/unit/test_request.py::TestClientRequest::test_use_proxies
>   
> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.11_etcd/build/etcd/tests/unit/test_request.py:104:
>  DeprecationWarning: Please use assertEqual instead.
>     self.assertEquals(c._machines_cache, ['https://localproxy:4001'])
> 
> .pybuild/cpython3_3.11_etcd/build/etcd/tests/unit/test_request.py::TestClientApiInterface::test_use_proxies
> .pybuild/cpython3_3.11_etcd/build/etcd/tests/unit/test_request.py::TestClientRequest::test_use_proxies
>   
> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.11_etcd/build/etcd/tests/unit/test_request.py:105:
>  DeprecationWarning: Please use assertEqual instead.
>     self.assertEquals(c._base_uri, 'https://localhost:4001')
> 
> .pybuild/cpython3_3.11_etcd/build/etcd/tests/unit/test_request.py::TestClientApiInterface::test_watch
> .pybuild/cpython3_3.11_etcd/build/etcd/tests/unit/test_request.py::TestClientRequest::test_watch
>   
> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.11_etcd/build/etcd/tests/unit/test_request.py:393:
>  DeprecationWarning: Please use assertEqual instead.
>     self.assertEquals(res, etcd.EtcdResult(**d))
> 
> .pybuild/cpython3_3.11_etcd/build/etcd/tests/unit/test_request.py::TestClientApiInterface::test_watch_index
> .pybuild/cpython3_3.11_etcd/build/etcd/tests/unit/test_request.py::TestClientRequest::test_watch_index
>   
> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.11_etcd/build/etcd/tests/unit/test_request.py:407:
>  DeprecationWarning: Please use assertEqual instead.
>     self.assertEquals(res, etcd.EtcdResult(**d))
> 
> -- Docs: https://docs.pytest.org/en/stable/how-to/capture-warnings.html
> ================= 118 passed, 1 xfailed, 77 warnings in 1.64s 
> ==================
> dh_auto_test: error: pybuild --test --test-pytest -i python{version} -p "3.12 
> 3.11" returned exit code 13


The full build log is available from:
http://qa-logs.debian.net/2023/12/12/python-etcd_0.4.5-4_unstable.log

All bugs filed during this archive rebuild are listed at:
https://bugs.debian.org/cgi-bin/pkgreport.cgi?tag=ftbfs-20231212;[email protected]
or:
https://udd.debian.org/bugs/?release=na&merged=ign&fnewerval=7&flastmodval=7&fusertag=only&fusertagtag=ftbfs-20231212&[email protected]&allbugs=1&cseverity=1&ctags=1&caffected=1#results

A list of current common problems and possible solutions is available at
http://wiki.debian.org/qa.debian.org/FTBFS . You're welcome to contribute!

If you reassign this bug to another package, please mark it as 'affects'-ing
this package. See https://www.debian.org/Bugs/server-control#affects

If you fail to reproduce this, please provide a build log and diff it with mine
so that we can identify if something relevant changed in the meantime.

Reply via email to