Bug#953970: python-boto: autopkgtest failure with Python 3.8 as default
Source: python-boto
Version: 2.49.0-2.1
X-Debbugs-CC: debian-ci@lists.debian.org
Severity: serious
User: debian-ci@lists.debian.org
Usertags: needs-update
Hi Maintainer
The autopkgtests of python-boto started to fail with Python 3.8 as the
default Python3 interpreter [1].
I've copied what I hope is the relevant part of the log below.
Regards
Graham
[1] https://ci.debian.net/packages/p/python-boto/unstable/amd64/
======================================================================
ERROR: test_item_lookup (tests.unit.ecs.test_connection.TestECSConnection)
----------------------------------------------------------------------
Traceback (most recent call last):
File "/tmp/autopkgtest-lxc.y6hi7437/downtmp/autopkgtest_tmp/tests/unit/ecs/test_connection.py",
line 53, in test_item_lookup
item_set = self.service_connection.item_lookup(
File "/usr/lib/python3/dist-packages/boto/ecs/__init__.py", line
105, in item_lookup
return self.get_response('ItemLookup', params)
File "/usr/lib/python3/dist-packages/boto/ecs/__init__.py", line 78,
in get_response
xml.sax.parseString(body.encode('utf-8'), h)
File "/usr/lib/python3.8/xml/sax/__init__.py", line 48, in parseString
parser.parse(inpsrc)
File "/usr/lib/python3.8/xml/sax/expatreader.py", line 111, in parse
xmlreader.IncrementalParser.parse(self, source)
File "/usr/lib/python3.8/xml/sax/xmlreader.py", line 125, in parse
self.feed(buffer)
File "/usr/lib/python3.8/xml/sax/expatreader.py", line 217, in feed
self._parser.Parse(data, isFinal)
File "../Modules/pyexpat.c", line 459, in EndElement
File "/usr/lib/python3.8/xml/sax/expatreader.py", line 336, in end_element
self._cont_handler.endElement(name)
File "/usr/lib/python3/dist-packages/boto/handler.py", line 41, in endElement
self.nodes[-1][1].endElement(name, self.current_text, self.connection)
File "/usr/lib/python3/dist-packages/boto/ecs/item.py", line 136, in
endElement
self.curItem.endElement(name, value, connection)
File "/usr/lib/python3/dist-packages/boto/ecs/item.py", line 70, in endElement
self._xml.write("%s</%s>" %
(cgi.escape(value).replace("&amp;", "&"), name))
AttributeError: module 'cgi' has no attribute 'escape'
-------------------- >> begin captured logging << --------------------
boto: DEBUG: Using access key provided by client.
boto: DEBUG: Using secret key provided by client.
boto: DEBUG: Method: GET
boto: DEBUG: Path: /onca/xml
boto: DEBUG: Data:
boto: DEBUG: Headers: {}
boto: DEBUG: Host: ecs.amazonaws.com
boto: DEBUG: Port: 443
boto: DEBUG: Params: {'ItemId': '0316067938', 'ResponseGroup':
'Reviews', 'Service': 'AWSECommerceService', 'Operation':
'ItemLookup', 'Version': '2010-11-01'}
boto: DEBUG: establishing HTTPS connection: host=ecs.amazonaws.com,
kwargs={'timeout': 70, 'port': 443}
boto: DEBUG: Token: None
boto: DEBUG: using _calc_signature_2
boto: DEBUG: query string:
AWSAccessKeyId=aws_access_key_id&ItemId=0316067938&Operation=ItemLookup&ResponseGroup=Reviews&Service=AWSECommerceService&SignatureMethod=HmacSHA256&SignatureVersion=2&Timestamp=2020-03-14T06%3A57%3A17Z&Version=2010-11-01
boto: DEBUG: string_to_sign: GET
ecs.amazonaws.com
/onca/xml
AWSAccessKeyId=aws_access_key_id&ItemId=0316067938&Operation=ItemLookup&ResponseGroup=Reviews&Service=AWSECommerceService&SignatureMethod=HmacSHA256&SignatureVersion=2&Timestamp=2020-03-14T06%3A57%3A17Z&Version=2010-11-01
boto: DEBUG: len(b64)=44
boto: DEBUG: base64 encoded digest:
b'FYLEaYd20wPkhaMs5FopiEBy3GZemtbrRNg8rQ9tkmU='
boto: DEBUG: query_string:
AWSAccessKeyId=aws_access_key_id&ItemId=0316067938&Operation=ItemLookup&ResponseGroup=Reviews&Service=AWSECommerceService&SignatureMethod=HmacSHA256&SignatureVersion=2&Timestamp=2020-03-14T06%3A57%3A17Z&Version=2010-11-01
Signature: b'FYLEaYd20wPkhaMs5FopiEBy3GZemtbrRNg8rQ9tkmU='
boto: DEBUG: Final headers: {'User-Agent': 'Boto/2.49.0 Python/3.8.2
Linux/4.19.0-6-amd64', 'Content-Length': '0', 'Host':
'ecs.amazonaws.com'}
boto: DEBUG: Response headers: []
boto: DEBUG:
<Items>
<Request>
<IsValid>True</IsValid>
<ItemLookupRequest>
<ItemId>B00008OE6I</ItemId>
</ItemLookupRequest>
</Request>
<Item>
<ASIN>B00008OE6I</ASIN>
<ItemAttributes>
<Manufacturer>Canon</Manufacturer>
<ProductGroup>Photography</ProductGroup>
<Title>Canon PowerShot S400 4MP Digital Camera w/ 3x
Optical Zoom</Title>
</ItemAttributes>
</Item>
</Items>
--------------------- >> end captured logging << ---------------------
======================================================================
ERROR: test_constructor (tests.unit.utils.test_utils.TestPassword)
----------------------------------------------------------------------
Traceback (most recent call last):
File "/tmp/autopkgtest-lxc.y6hi7437/downtmp/autopkgtest_tmp/tests/unit/utils/test_utils.py",
line 104, in test_constructor
password.set('foo')
File "/usr/lib/python3/dist-packages/boto/utils.py", line 787, in set
self.str = self.hashfunc(value).hexdigest()
File "/tmp/autopkgtest-lxc.y6hi7437/downtmp/autopkgtest_tmp/tests/unit/utils/test_utils.py",
line 101, in <lambda>
hmac_hashfunc = lambda msg: hmac.new(b'mysecretkey', msg)
File "/usr/lib/python3.8/hmac.py", line 153, in new
return HMAC(key, msg, digestmod)
File "/usr/lib/python3.8/hmac.py", line 51, in __init__
raise TypeError("Missing required parameter 'digestmod'.")
TypeError: Missing required parameter 'digestmod'.
======================================================================
ERROR: test_hmac (tests.unit.utils.test_utils.TestPassword)
----------------------------------------------------------------------
Traceback (most recent call last):
File "/tmp/autopkgtest-lxc.y6hi7437/downtmp/autopkgtest_tmp/tests/unit/utils/test_utils.py",
line 93, in test_hmac
self.clstest(HMACPassword)
File "/tmp/autopkgtest-lxc.y6hi7437/downtmp/autopkgtest_tmp/tests/unit/utils/test_utils.py",
line 61, in clstest
self.assertNotEquals(password, 'foo')
File "/usr/lib/python3.8/unittest/case.py", line 1410, in deprecated_func
return original_func(*args, **kwargs)
File "/usr/lib/python3.8/unittest/case.py", line 918, in assertNotEqual
if not first != second:
File "/usr/lib/python3/dist-packages/boto/utils.py", line 797, in __eq__
return str(self.hashfunc(other).hexdigest()) == str(self.str)
File "/tmp/autopkgtest-lxc.y6hi7437/downtmp/autopkgtest_tmp/tests/unit/utils/test_utils.py",
line 88, in hmac_hashfunc
return hmac.new(b'mysecretkey', msg)
File "/usr/lib/python3.8/hmac.py", line 153, in new
return HMAC(key, msg, digestmod)
File "/usr/lib/python3.8/hmac.py", line 51, in __init__
raise TypeError("Missing required parameter 'digestmod'.")
TypeError: Missing required parameter 'digestmod'.
----------------------------------------------------------------------
Ran 1730 tests in 5.029s
FAILED (SKIP=6, errors=3)
autopkgtest [06:57:21]: test unit: -----------------------]
autopkgtest [06:57:21]: test unit: - - - - - - - - - - results - - -
- - - - - - -
unit FAIL non-zero exit status 1
Reply to: