Port test_pipelib and test_policy to Python 3

* policy_fixture: replace jsonutils.load() with jsonutils.loads() to
  support bytes and Unicode. Use also a context manager to open the
  file to fix a ResourceWarning on Python 3.
* pipelib: replace str.encode("base64") with base64.b64encode(str)
* cmd/manager.py: replace urllib.unquote() with urlparse.unquote(),
  urlparse comes from "import six.moves.urllib.parse as urlparse"
* enable tests on Python 3

  - test_pipelib
  - test_policy

* enable also tests which already passed on Python 3:

  - test_quota
  - test_test_utils

This change is partially based on the work of dims,
change Ibb4fa47cd71d697a4996425b1797ac2f8cc363cd.

Co-Authored-By: Davanum Srinivas <davanum@gmail.com>
Partially-Implements: blueprint nova-python3-newton
Change-Id: I726d867fafa2d21312e3f2542af9d9ee5e08d897
This commit is contained in:
Victor Stinner 2016-05-27 11:16:33 +02:00
parent 710bdf755a
commit 41dc566f5a

View File

@ -100,7 +100,9 @@ class RoleBasedPolicyFixture(RealPolicyFixture):
self.role = role
def _prepare_policy(self):
policy = jsonutils.load(open(CONF.oslo_policy.policy_file))
with open(CONF.oslo_policy.policy_file) as fp:
policy = fp.read()
policy = jsonutils.loads(policy)
# Convert all actions to require specified role
for action, rule in six.iteritems(policy):