]> review.fuel-infra Code Review - openstack-build/cinder-build.git/commit
Fix Python 3 issues in the blockbridge driver
authorVictor Stinner <vstinner@redhat.com>
Tue, 23 Jun 2015 12:08:25 +0000 (14:08 +0200)
committerVictor Stinner <vstinner@redhat.com>
Wed, 24 Jun 2015 15:23:54 +0000 (17:23 +0200)
commit583d03e117a95ce24253eec63a3b7ef564e69307
treeeb37aba55258ff5ff26ab06f2d5e8fb17a968d77
parent72b7a18583767b9f8449345312ad2ecddd93fc00
Fix Python 3 issues in the blockbridge driver

* Replace httplib import with six.moves.http_client
* Replace urllib imports with six.moves.urllib, update urllib.
  For example, replace urllib.quote() with urllib.parse.quote().
* test_blockbridge: try get the mock module from unittest.mock, part of
  the Python stdlib since Python 3.3. The third-party mock module has a
  bug on Python 3.4.
* On Python 3, base64.encodestring() expects bytes and returns bytes.
  Encode credentials to UTF-8 and decode base64 from ASCII to get the
  final string as Unicode on Python 3.
* test_cfg_api_auth_scheme_password: parse the connection URL to compare
  it. Comparing directly the URL fails on Python 3 because URL
  parameters are rendered in a random order because of the hash
  randomization.
* Replace pools.values()[0] with list(pools.values())[0]. On Python 3,
  dict.values() returns an iterator.
* tox.ini: add cinder.tests.unit.test_blockbridge to Python 3.4.

Blueprint cinder-python3
Change-Id: I3c6b935680b5427d6ffdc1a00cd5221475209cdd
cinder/tests/unit/test_blockbridge.py
cinder/volume/drivers/blockbridge.py
tox.ini