]> review.fuel-infra Code Review - openstack-build/cinder-build.git/commit
Port API v1 and v2 to Python 3
authorVictor Stinner <vstinner@redhat.com>
Tue, 9 Feb 2016 13:36:45 +0000 (14:36 +0100)
committerVictor Stinner <vstinner@redhat.com>
Mon, 15 Feb 2016 14:22:05 +0000 (15:22 +0100)
commit30c0f797814f09d00ba4d27811a1f87da86ceabb
tree4b8cd96453538caf6053df443442f30959a4c524
parent4abec53243a9f73b7fc68e0604df9c50d2458c50
Port API v1 and v2 to Python 3

* Replace jsonutils.dumps() with jsonutils.dump_as_bytes() since
  output is used for the HTTP body, and HTTP body type is bytes, not
  Unicode. On Python 3, jsonutils.dumps() returns Unicode.
* FakeHttplibSocket: replace io.StringIO with io.BytesIO, HTTP body
  type is bytes. Encode Unicode to UTF-8.
* Fix FakeHttplibSocket.makefile() API: only the first parameter is
  mandatory. On Python 3, it's only called with the first 'mode'
  parameter.
* Use bytes strings to test HTTP bodies (JSON or XML).
* Replace dict.values() with list(dict.values()) to get a list on
  Python 3.
* Replace error.message with encodeutils.exception_to_unicode(error),
  exceptions loose their message attribute in Python 3.
* Update JSON serializer test in test_wsgi.py to use bytes.
* tests-py3.txt: add cinder.tests.unit.api.v1 and
  cinder.tests.unit.api.v2

Partial-Implements: blueprint cinder-python3
Change-Id: I0f0048f4a1344feaa3434cbf7ebd31e3f12d6ae4
14 files changed:
cinder/api/openstack/wsgi.py
cinder/api/v1/limits.py
cinder/api/v2/limits.py
cinder/api/v2/snapshots.py
cinder/tests/unit/api/openstack/test_wsgi.py
cinder/tests/unit/api/v1/test_limits.py
cinder/tests/unit/api/v1/test_snapshot_metadata.py
cinder/tests/unit/api/v1/test_types.py
cinder/tests/unit/api/v1/test_volume_metadata.py
cinder/tests/unit/api/v2/test_limits.py
cinder/tests/unit/api/v2/test_snapshot_metadata.py
cinder/tests/unit/api/v2/test_types.py
cinder/tests/unit/api/v2/test_volume_metadata.py
tests-py3.txt