Allow Hacking 0.7.x or later

Allow newer versions of Hacking as well,
which permits further checks to be used for gating.
Suppress H202 for now to pass tests.

Change-Id: I75ab26df94b5dd8b8b05f4ada2ca6831d8584a75
Don't need to init testr explicitly

In run_tests.sh, function init_testr will initialize testr if the
directory .testrepository is not existed. Actually, testr will do
the check before run the test:

In Python package testrepository, setuptools_command.py:Testr.run

68 def run(self):
69 """Set up testr repo, then run testr"""
70     if not os.path.isdir(".testrepository"):
71         self._run_testr("init")

"python setup.py testr" will trigger this function to create
.testrepository if not exist.

So, init_testr can be removed safely.

Fixes Bug #1220149

Change-Id: I4dfcdfa5e1e323bbc7ee3add5d9d0888a42e3812
Deprecation warning should be 'pending'

Until python-openstackclient is ready for more mainstream users.

Change-Id: Ic90daa38cd7e8e2f6d6b23c30c3d83935cf6c1a6
Decode the non-english username str to unicode

convert the non-english username str to unicode,
then the converted username can match the username from db.

Fixes bug #1221576

Change-Id: I9e5f941fe43f081d75750e3f4754e8beea8210db
Merge "Allow Hacking 0.7.x or later"
Support client generate literal ipv6 auth_uri base on auth_host

This patch is for fix bug 1208784. Support keystone client generate
literal ipv6 auth_uri via provided auth_host, when the auth_uri is
None.

Fixes bug 1208784

Change-Id: I226881a35a74ef668d4cd1c6829a64c94ff185d9
Convert tests to HTTPretty and reorganize

There are a lot of problems with the current means of mocking. Most
annoyingly is that we cannot differ the call to the request library by
even a single optional header or whitespace difference without breaking
the mock. HTTPretty does a better job of this because it only cares
about what is transmitted over the socket.

Rewrite tests so that they no longer do string comparisons of JSON encoded
dictionaries. This meant that they had to order the dictionary before
encoding and would fail tests where the ordering was not followed.

In the process of this I reorganized the inheritance of the
utils.TestCase object so that there is a clear separation between the
data stored on the V2 and V3 base test objects.

Change-Id: I590df65adb1d2177b4be4e016708db05131b6880
Replace HttpConnection in auth_token with Requests

Requests is becoming the standard way of doing http communication, it
also vastly simplifies adding other authentication mechanisms. Use it in
the auth_token middleware.

This adds the ability to specify a CA file that will be used to verify a
HTTPS connections or insecure to specifically ignore HTTPS validation.

SecurityImpact
DocImpact
Partial-Bug: #1188189
Change-Id: Iae94329e7abd105bf95224d28f39f4b746b9eb70
Merge "Support client generate literal ipv6 auth_uri base on auth_host"
Merge "Replace HttpConnection in auth_token with Requests"
Set example timestamps to 2038-01-18T21:14:07Z

This timestamp is the last possible moment that can be represented on
32-bit systems as an integer.

As a consequence of revising the JSON examples, the corresponding PEM
files must be re-generated as well.

Change-Id: Ic6014c08b4545db036605beef1e6a8829ed347c4
Related-Bug: 1190054
Related-Bug: 1225084
Merge "Deprecation warning should be 'pending'"
Merge "Don't need to init testr explicitly"
Merge "Convert tests to HTTPretty and reorganize"
Allow blank to email in user-update

User cannot set blank to email address when use "user-update".

This patch fixes this problem.

Change-Id: I3b9494a1c668358a529031c366c55b303f43c533
Closes-bug: #1226439
Change Babel to a runtime requirement

Fixes bug #1226736

Change-Id: Id0ab5a1b74688601f4f8dd1c2613f4cee93401ab
Merge "Decode the non-english username str to unicode"
Merge "Allow blank to email in user-update"
Merge "Change Babel to a runtime requirement"