When run with python 3, functional tests fail with tracebacks like the following from the test client:
2019-01-09 15:38:18.718357 | primary | 2019-01-09 15:38:18.717 | b'Traceback (most recent call last):'
2019-01-09 15:38:18.720127 | primary | 2019-01-09 15:38:18.719 | b' File "/opt/stack/new/python-manilaclient/manilaclient/tests/functional/base.py", line 69, in tearDownClass'
2019-01-09 15:38:18.722347 | primary | 2019-01-09 15:38:18.721 | b' cls.clear_resources(cls.class_resources)'
2019-01-09 15:38:18.724053 | primary | 2019-01-09 15:38:18.723 | b' File "/opt/stack/new/python-manilaclient/manilaclient/tests/functional/base.py", line 108, in clear_resources'
2019-01-09 15:38:18.725624 | primary | 2019-01-09 15:38:18.724 | b' res_id, microversion=res["microversion"])'
2019-01-09 15:38:18.727303 | primary | 2019-01-09 15:38:18.726 | b' File "/opt/stack/new/python-manilaclient/manilaclient/tests/functional/client.py", line 725, in wait_for_share_deletion'
2019-01-09 15:38:18.728826 | primary | 2019-01-09 15:38:18.728 | b' microversion=microversion)'
2019-01-09 15:38:18.731479 | primary | 2019-01-09 15:38:18.730 | b' File "/opt/stack/new/python-manilaclient/manilaclient/tests/functional/client.py", line 143, in wait_for_resource_deletion'
2019-01-09 15:38:18.733353 | primary | 2019-01-09 15:38:18.732 | b' deleted = func(res_id, microversion=microversion)'
2019-01-09 15:38:18.734818 | primary | 2019-01-09 15:38:18.734 | b' File "/opt/stack/new/python-manilaclient/manilaclient/tests/functional/client.py", line 713, in is_share_deleted'
2019-01-09 15:38:18.736633 | primary | 2019-01-09 15:38:18.736 | b' self.get_share(share, microversion=microversion)'
2019-01-09 15:38:18.738258 | primary | 2019-01-09 15:38:18.737 | b' File "/opt/stack/new/python-manilaclient/manilaclient/tests/functional/client.py", line 47, in wrapped_func'
2019-01-09 15:38:18.739739 | primary | 2019-01-09 15:38:18.739 | b' if re.search(regexp, e.stderr):'
2019-01-09 15:38:18.741498 | primary | 2019-01-09 15:38:18.740 | b' File "/opt/stack/new/python-manilaclient/.tox/functional/lib/python3.5/re.py", line 173, in search'
2019-01-09 15:38:18.743474 | primary | 2019-01-09 15:38:18.742 | b' return _compile(pattern, flags).search(string)'
2019-01-09 15:38:18.745238 | primary | 2019-01-09 15:38:18.744 | b'TypeError: cannot use a string pattern on a bytes-like object'
2019-01-09 15:38:18.753589 | primary | 2019-01-09 15:38:18.751 | b'
Reviewed: https:/ /review. openstack. org/630462 /git.openstack. org/cgit/ openstack/ python- manilaclient/ commit/ ?id=b955ac9064b 15d00e8966dda74 5814c146c8af01
Committed: https:/
Submitter: Zuul
Branch: master
commit b955ac9064b15d0 0e8966dda745814 c146c8af01
Author: Goutham Pacha Ravi <email address hidden>
Date: Wed Jan 16 16:31:21 2019 -0800
[Python3] Fix python3 bugs in code
- The BaseException class no longer has a "message"
attribute in python 3 [1]. On the contrary, the
string representation of an Exception object will
print all the exception args in all supported
python versions, so use that instead.
- Functional tests were run with a specific locale,
remove those annotations so we can handle unicode
encoding and decoding in python3 envs.
- Cleanup errors were not being handled correctly,
cleanup the code so we don't have spurious failures.
- In python3, dict.keys() gives you a view for lazy
loading, so convert occurrences to lists as expected
in our functional tests.
- Start capturing STDOUT and STDERR in tox envs to
enable troubleshooting.
Co-Authored-By: Goutham Pacha Ravi <email address hidden> 3fbd298e1957419 5f2d663c6f4 /www.python. org/dev/ peps/pep- 0352/#transitio n-plan
Closes-Bug: #1811627
Closes-Bug: #1811516
Change-Id: Idaa2fb9b60451b
[1] https:/