Import six.StringIO

six.StringIO
This is an fake file object for textual data. It is an alias for
StringIO.StringIO in Python 2 and io.StringIO in Python 3.

Partial Implement: blueprint py33-support

Change-Id: I76c05041565614241eea7b7595e4503c88211ee8
Fix module importing issues for Python 3

Copy py3kcompat from oslo for urlparse
Substitute StringIO / httplib with six

Partial Implement: blueprint py33-support

Change-Id: Ic8da2ca53b4217ef13f15be094437f1f4e643001
Translate print statement to print function

Use "from __future__ import print_function"
docs.python.org/3/howto/pyporting.html#from-future-import-print-function

Partial Implement: blueprint py33-support

Change-Id: I92fc07257851795a9972c8273d3278c8679d6628
Use six.iteritems() for dict

Fix the error:
AttributeError: 'dict' object has no attribute 'iteritems'

Partial Implement: blueprint py33-support

Change-Id: I5dff17d1df01d6583f882f818434804d65726c51
Import urlutils to substitute urllib

Use the openstack common urlutils.

Partial Implement: blueprint py33-support

Change-Id: I45f21d7316fe87952e841004d4c25999138a842b
replace dict.keys() with list(dict)

Partial Implement: blueprint py33-support

Change-Id: I774e5a25d25ef19ffc217910987f2c9b68d13cd3
Replace unicode() with six.u()

six.u(text)
A fake unicode literal. text should always be a normal string literal.
In Python 2, u() returns unicode, and in Python 3, a string.

Partial Implement: blueprint py33-support

Change-Id: I02849e540c1fbb1f8b02bcbfa4d9be4f60279926
replace basetring/xrange

basetring --> six.string_types
xrange --> six.moves.xrange

Partial Implement: blueprint py33-support

Change-Id: Iedc2cd66ec65c0e4685e56a3bfbf8e9d38fd0072
align the order of parameters for urlencode()

In Python 3.3, hash randomization is enabled by default. It causes the
iteration order of dicts and sets to be unpredictable and differ
across Python runs.

In the test case, the fixed expecting string will not match the test
result, it is relying on the dict order.

This change transforms the input dict to a sequence of two-element list,
with fixed order, and update the related expecitng string / fixture
in test cases.

Partial Implement: blueprint py33-support

Change-Id: I6dccde9e584be8335a6375f5fbad5c5cbd7b9b6d
Replace mox with mox3

Mox3 is an unofficial port of the Google mox framework
(http://code.google.com/p/pymox/) to Python 3.
https://pypi.python.org/pypi/mox3

Align with global-requirement and update the importing clause.

There is still py33 issue induced by keystoneclient.
https://review.openstack.org/#/c/51788/

When keystoneclient is upgraded in requirements.txt, all py33
issues should be fixed.

Change-Id: If0d00c088779b4a71e606cc87b37b5b1f9701081
Implement: blueprint py33-support
Updated from global requirements

Change-Id: Id45c2a5fee6a57e70749830406310cbe1a9cde5a
Fix missed Pep8 error with 1.4.6

Missed E126 continuation line over-indented for hanging indent

Change-Id: I17ce2a984367fdb078d59bf6603610a01ad168f4
Merge "Updated from global requirements"
Updated from global requirements

Change-Id: I9c1b02904b83c537ea4f51a54fd7c32b18244c7d
Replace mox3 with mock in unit test

Compared to mox3, mock is tested much more in various Python 3 versions.

Change-Id: I9e83aa622257c36ff47c79f6b491c1b074d2245d
Merge "Replace mox3 with mock in unit test"
Updated from global requirements

Change-Id: I59b276d83dd40d82e5713d9e8d1991bd0c41fa56
Fix cacert argument to HTTPS connection

This fixes a typo that broke the client for HTTPS URLs.

Added a basic test to cover this case.
Coverage is very low in common/http.py.

Change-Id: Ic440f20f463c3b8558a7639f1015096a01496cf8
Closes-bug: 1244091
Updated from global requirements

Change-Id: Ie1ce367075e4b32b0bf5acc32aa7152cd3fbff0f
Merge "Fix cacert argument to HTTPS connection"