Use quote/unquote from six module for py3

Change-Id: I42cff32fbf3febd6dd6a7171b9214f93b4414f9a
Remove validate_headers

It wasn't used anymore since moved up to requests (and it fails in py3).

Change-Id: Ic8a80ae09ca6445696a9cf34ffb503c5ff51bc79
Fix test_raw_upload test

We were testing the test but we were not testing that we have actually
properly uploaded the object with the right content-len

(and it was broken under py3)

Change-Id: Ifa91c30532090cac9f8e18ff18eaf5e6c98737d1
Merge "Use quote/unquote from six module for py3"
Merge "Remove validate_headers"
Updated test_shell for Python3

Change-Id: Ia76e544fa6e0a222c260191a1ab74939078ed2fb
Merge "Fix test_raw_upload test"
Fix up StringIO use in tests for py3

Some spots in this file were already referencing six.StringIO, but
some were still using StringIO.StringIO, which does not work on
py3. This patch just makes them all use six.StringIO and removes the
now-unused (and wrong, on py3) import.

Change-Id: I3c7311c3983f4eb409eedb6f85ede6ffe4059e63
Fixed several shell tests on Python3.

They currently fail because on Python3 arbitrary objects cannot be compared, in
this case, MagicMock and int. In Python2 these comparisons silently pass.

Change-Id: I468c2137702a454365886099e827d329cb1d7209
Merge "Updated test_shell for Python3"
Merge "Fix up StringIO use in tests for py3"
Merge "Fixed several shell tests on Python3."
Don't utf8 encode urls.

This is not needed since already done by requests.

(and it was buggy with py3).

Change-Id: I9505c56be2f53eb8071aea3d5fb9d8caa9508e34
Mock auth_end_time in test_shell.test_download

If we don't we are getting an error like this under py3:

TypeError: unsupported operand type(s) for /: 'float' and 'MagicMock'

Change-Id: If5a6947757297354e6b81fc45f011cc2921d609f
Removed a duplicate word in a dostring

Change-Id: I38e41a7ce9f91b5b1785491c6cd10dbbba9562a2
Merge "Mock auth_end_time in test_shell.test_download"
Add functional tests for python-swiftclient

Coverage for swiftclient.client is 71% with these tests.

Unit tests have been moved into another subdirectory
to separate them from functional tests.

Change-Id: Ib8c4d78f7169cee893f82906f6388a5b06c45602
Merge "Add functional tests for python-swiftclient"
Only encode metadata for user customed headers

Don't encode standard headers keys but just the x-*-meta- ones. That
fixes py3 to not have them casted as bytes and not properly passed to
the requests kwargs.

Other trivial py3 fixes along the way.

Change-Id: I91b95f32fb2aec9b20892a5bb95fd1bc65d002f3
Make the function tests Python3-import friendly

Change-Id: Ic73fc2a6f6712505eda71fa2e2e91ac680ced9a3