Drop testtools from test-requirements.txt

My understanding is that it was mainly being used so we could have sane
testing on py26.  With py26 support being dropped, we no longer need it.

Also drop discover from test-requirements.txt, as we don't seem to
actually use it.

Change-Id: Iee04c42890596d3b483c1473169480a3ae19aac8
Related-Change: I37116731db11449d0c374a6a83a3a43789a19d5f
This commit is contained in:
Tim Burke 2015-12-04 11:28:05 -08:00
parent a6f171437d
commit bed6bbd5ef
9 changed files with 114 additions and 123 deletions

View File

@ -1,10 +1,8 @@
hacking>=0.10.0,<0.11
coverage>=3.6
discover
mock>=1.2
oslosphinx
python-keystoneclient>=0.7.0
sphinx>=1.1.2,<1.2
testrepository>=0.0.18
testtools>=0.9.34

View File

@ -14,7 +14,7 @@
# limitations under the License.
import os
import testtools
import unittest
import time
from io import BytesIO
@ -23,7 +23,7 @@ from six.moves import configparser
import swiftclient
class TestFunctional(testtools.TestCase):
class TestFunctional(unittest.TestCase):
def __init__(self, *args, **kwargs):
super(TestFunctional, self).__init__(*args, **kwargs)

View File

@ -15,13 +15,13 @@
import mock
from six import StringIO
import testtools
import unittest
from swiftclient import command_helpers as h
from swiftclient.multithreading import OutputManager
class TestStatHelpers(testtools.TestCase):
class TestStatHelpers(unittest.TestCase):
def setUp(self):
super(TestStatHelpers, self).setUp()

View File

@ -13,7 +13,7 @@
# See the License for the specific language governing permissions and
# limitations under the License.
import sys
import testtools
import unittest
import threading
import six
@ -25,7 +25,7 @@ from swiftclient import multithreading as mt
from .utils import CaptureStream
class ThreadTestCase(testtools.TestCase):
class ThreadTestCase(unittest.TestCase):
def setUp(self):
super(ThreadTestCase, self).setUp()
self.got_items = Queue()
@ -163,7 +163,7 @@ class TestConnectionThreadPoolExecutor(ThreadTestCase):
)
class TestOutputManager(testtools.TestCase):
class TestOutputManager(unittest.TestCase):
def test_instantiation(self):
output_manager = mt.OutputManager()

View File

@ -18,7 +18,7 @@ import mock
import os
import six
import tempfile
import testtools
import unittest
import time
from concurrent.futures import Future
@ -49,7 +49,7 @@ else:
import builtins
class TestSwiftPostObject(testtools.TestCase):
class TestSwiftPostObject(unittest.TestCase):
def setUp(self):
super(TestSwiftPostObject, self).setUp()
@ -69,7 +69,7 @@ class TestSwiftPostObject(testtools.TestCase):
self.assertRaises(SwiftError, self.spo, 1)
class TestSwiftReader(testtools.TestCase):
class TestSwiftReader(unittest.TestCase):
def setUp(self):
super(TestSwiftReader, self).setUp()
@ -152,25 +152,7 @@ class TestSwiftReader(testtools.TestCase):
'97ac82a5b825239e782d0339e2d7b910')
class _TestServiceBase(testtools.TestCase):
def _assertDictEqual(self, a, b, m=None):
# assertDictEqual is not available in py2.6 so use a shallow check
# instead
if not m:
m = '{0} != {1}'.format(a, b)
if hasattr(self, 'assertDictEqual'):
self.assertDictEqual(a, b, m)
else:
self.assertIsInstance(a, dict,
'First argument is not a dictionary')
self.assertIsInstance(b, dict,
'Second argument is not a dictionary')
self.assertEqual(len(a), len(b), m)
for k, v in a.items():
self.assertIn(k, b, m)
self.assertEqual(b[k], v, m)
class _TestServiceBase(unittest.TestCase):
def _get_mock_connection(self, attempts=2):
m = Mock(spec=Connection)
type(m).attempts = PropertyMock(return_value=attempts)
@ -223,8 +205,8 @@ class TestServiceDelete(_TestServiceBase):
mock_conn.delete_object.assert_called_once_with(
'test_c', 'test_s', response_dict={}
)
self._assertDictEqual(expected_r, r)
self._assertDictEqual(expected_r, self._get_queue(mock_q))
self.assertEqual(expected_r, r)
self.assertEqual(expected_r, self._get_queue(mock_q))
def test_delete_segment_exception(self):
mock_q = Queue()
@ -246,8 +228,8 @@ class TestServiceDelete(_TestServiceBase):
mock_conn.delete_object.assert_called_once_with(
'test_c', 'test_s', response_dict={}
)
self._assertDictEqual(expected_r, r)
self._assertDictEqual(expected_r, self._get_queue(mock_q))
self.assertEqual(expected_r, r)
self.assertEqual(expected_r, self._get_queue(mock_q))
self.assertGreaterEqual(r['error_timestamp'], before)
self.assertLessEqual(r['error_timestamp'], after)
self.assertIn('Traceback', r['traceback'])
@ -268,7 +250,7 @@ class TestServiceDelete(_TestServiceBase):
mock_conn.delete_object.assert_called_once_with(
'test_c', 'test_o', query_string=None, response_dict={}
)
self._assertDictEqual(expected_r, r)
self.assertEqual(expected_r, r)
def test_delete_object_exception(self):
mock_q = Queue()
@ -294,7 +276,7 @@ class TestServiceDelete(_TestServiceBase):
mock_conn.delete_object.assert_called_once_with(
'test_c', 'test_o', query_string=None, response_dict={}
)
self._assertDictEqual(expected_r, r)
self.assertEqual(expected_r, r)
self.assertGreaterEqual(r['error_timestamp'], before)
self.assertLessEqual(r['error_timestamp'], after)
self.assertIn('Traceback', r['traceback'])
@ -321,7 +303,7 @@ class TestServiceDelete(_TestServiceBase):
query_string='multipart-manifest=delete',
response_dict={}
)
self._assertDictEqual(expected_r, r)
self.assertEqual(expected_r, r)
def test_delete_object_dlo_support(self):
mock_q = Queue()
@ -352,7 +334,7 @@ class TestServiceDelete(_TestServiceBase):
mock_conn, 'test_c', 'test_o', self.opts, mock_q
)
self._assertDictEqual(expected_r, r)
self.assertEqual(expected_r, r)
expected = [
mock.call('test_c', 'test_o', query_string=None, response_dict={}),
mock.call('manifest_c', 'test_seg_1', response_dict={}),
@ -372,7 +354,7 @@ class TestServiceDelete(_TestServiceBase):
mock_conn.delete_container.assert_called_once_with(
'test_c', response_dict={}
)
self._assertDictEqual(expected_r, r)
self.assertEqual(expected_r, r)
def test_delete_empty_container_exception(self):
mock_conn = self._get_mock_connection()
@ -394,13 +376,13 @@ class TestServiceDelete(_TestServiceBase):
mock_conn.delete_container.assert_called_once_with(
'test_c', response_dict={}
)
self._assertDictEqual(expected_r, r)
self.assertEqual(expected_r, r)
self.assertGreaterEqual(r['error_timestamp'], before)
self.assertLessEqual(r['error_timestamp'], after)
self.assertIn('Traceback', r['traceback'])
class TestSwiftError(testtools.TestCase):
class TestSwiftError(unittest.TestCase):
def test_is_exception(self):
se = SwiftError(5)
@ -430,7 +412,7 @@ class TestSwiftError(testtools.TestCase):
self.assertEqual(str(se), '5 container:con object:obj segment:seg')
class TestServiceUtils(testtools.TestCase):
class TestServiceUtils(unittest.TestCase):
def setUp(self):
super(TestServiceUtils, self).setUp()
@ -525,7 +507,7 @@ class TestServiceUtils(testtools.TestCase):
mock_headers)
class TestSwiftUploadObject(testtools.TestCase):
class TestSwiftUploadObject(unittest.TestCase):
def setUp(self):
self.suo = swiftclient.service.SwiftUploadObject
@ -614,7 +596,7 @@ class TestServiceList(_TestServiceBase):
SwiftService._list_account_job(
mock_conn, self.opts, mock_q
)
self._assertDictEqual(expected_r, self._get_queue(mock_q))
self.assertEqual(expected_r, self._get_queue(mock_q))
self.assertIsNone(self._get_queue(mock_q))
long_opts = dict(self.opts, **{'long': True})
@ -635,7 +617,7 @@ class TestServiceList(_TestServiceBase):
SwiftService._list_account_job(
mock_conn, long_opts, mock_q
)
self._assertDictEqual(expected_r_long, self._get_queue(mock_q))
self.assertEqual(expected_r_long, self._get_queue(mock_q))
self.assertIsNone(self._get_queue(mock_q))
def test_list_account_exception(self):
@ -657,7 +639,7 @@ class TestServiceList(_TestServiceBase):
mock_conn.get_account.assert_called_once_with(
marker='', prefix=None
)
self._assertDictEqual(expected_r, self._get_queue(mock_q))
self.assertEqual(expected_r, self._get_queue(mock_q))
self.assertIsNone(self._get_queue(mock_q))
def test_list_container(self):
@ -680,7 +662,7 @@ class TestServiceList(_TestServiceBase):
SwiftService._list_container_job(
mock_conn, 'test_c', self.opts, mock_q
)
self._assertDictEqual(expected_r, self._get_queue(mock_q))
self.assertEqual(expected_r, self._get_queue(mock_q))
self.assertIsNone(self._get_queue(mock_q))
long_opts = dict(self.opts, **{'long': True})
@ -702,7 +684,7 @@ class TestServiceList(_TestServiceBase):
SwiftService._list_container_job(
mock_conn, 'test_c', long_opts, mock_q
)
self._assertDictEqual(expected_r_long, self._get_queue(mock_q))
self.assertEqual(expected_r_long, self._get_queue(mock_q))
self.assertIsNone(self._get_queue(mock_q))
def test_list_container_exception(self):
@ -726,7 +708,7 @@ class TestServiceList(_TestServiceBase):
mock_conn.get_container.assert_called_once_with(
'test_c', marker='', delimiter='', prefix=None
)
self._assertDictEqual(expected_r, self._get_queue(mock_q))
self.assertEqual(expected_r, self._get_queue(mock_q))
self.assertIsNone(self._get_queue(mock_q))
@mock.patch('swiftclient.service.get_conn')
@ -805,7 +787,7 @@ class TestServiceList(_TestServiceBase):
self.assertEqual(observed_listing, expected_listing)
class TestService(testtools.TestCase):
class TestService(unittest.TestCase):
def test_upload_with_bad_segment_size(self):
for bad in ('ten', '1234X', '100.3'):
@ -913,7 +895,7 @@ class TestServiceUpload(_TestServiceBase):
self.assertEqual(r['path'], f.name)
del r['path']
self._assertDictEqual(r, expected_r)
self.assertEqual(r, expected_r)
self.assertEqual(mock_conn.put_object.call_count, 1)
mock_conn.put_object.assert_called_with('test_c', 'テスト/dummy.dat',
'',
@ -960,7 +942,7 @@ class TestServiceUpload(_TestServiceBase):
options={'segment_container': None,
'checksum': True})
self._assertDictEqual(r, expected_r)
self.assertEqual(r, expected_r)
self.assertEqual(mock_conn.put_object.call_count, 1)
mock_conn.put_object.assert_called_with('test_c_segments',
@ -1098,7 +1080,7 @@ class TestServiceUpload(_TestServiceBase):
self.assertEqual(r['path'], f.name)
del r['path']
self._assertDictEqual(r, expected_r)
self.assertEqual(r, expected_r)
self.assertEqual(mock_conn.put_object.call_count, 1)
mock_conn.put_object.assert_called_with('test_c', 'test_o',
mock.ANY,
@ -1155,7 +1137,7 @@ class TestServiceUpload(_TestServiceBase):
self.assertEqual(mtime, expected_mtime)
del r['headers']['x-object-meta-mtime']
self._assertDictEqual(r, expected_r)
self.assertEqual(r, expected_r)
self.assertEqual(mock_conn.put_object.call_count, 1)
mock_conn.put_object.assert_called_with('test_c', 'test_o',
mock.ANY,
@ -1559,7 +1541,7 @@ class TestServiceDownload(_TestServiceBase):
'test_c', 'test_o', resp_chunk_size=65536, headers={},
response_dict={}
)
self._assertDictEqual(expected_r, actual_r)
self.assertEqual(expected_r, actual_r)
def test_download_object_job_with_mtime(self):
mock_conn = self._get_mock_connection()
@ -1605,7 +1587,7 @@ class TestServiceDownload(_TestServiceBase):
'test_c', 'test_o', resp_chunk_size=65536, headers={},
response_dict={}
)
self._assertDictEqual(expected_r, actual_r)
self.assertEqual(expected_r, actual_r)
def test_download_object_job_bad_mtime(self):
mock_conn = self._get_mock_connection()
@ -1650,7 +1632,7 @@ class TestServiceDownload(_TestServiceBase):
'test_c', 'test_o', resp_chunk_size=65536, headers={},
response_dict={}
)
self._assertDictEqual(expected_r, actual_r)
self.assertEqual(expected_r, actual_r)
def test_download_object_job_exception(self):
mock_conn = self._get_mock_connection()
@ -1670,7 +1652,7 @@ class TestServiceDownload(_TestServiceBase):
'test_c', 'test_o', resp_chunk_size=65536, headers={},
response_dict={}
)
self._assertDictEqual(expected_r, actual_r)
self.assertEqual(expected_r, actual_r)
def test_download(self):
service = SwiftService()
@ -1814,7 +1796,7 @@ class TestServiceDownload(_TestServiceBase):
'header': {},
'yes_all': False,
'skip_identical': True})
self._assertDictEqual(r, expected_r)
self.assertEqual(r, expected_r)
self.assertEqual(mock_conn.get_object.call_count, 1)
mock_conn.get_object.assert_called_with(
@ -1876,7 +1858,7 @@ class TestServiceDownload(_TestServiceBase):
self.assertEqual("Large object is identical", err.msg)
self.assertEqual(304, err.http_status)
self._assertDictEqual(r, expected_r)
self.assertEqual(r, expected_r)
self.assertEqual(mock_conn.get_object.call_count, 1)
mock_conn.get_object.assert_called_with(
@ -1959,7 +1941,7 @@ class TestServiceDownload(_TestServiceBase):
self.assertEqual("Large object is identical", err.msg)
self.assertEqual(304, err.http_status)
self._assertDictEqual(r, expected_r)
self.assertEqual(r, expected_r)
self.assertEqual(mock_conn.get_object.mock_calls, [
mock.call('test_c',
'test_o',
@ -2025,7 +2007,7 @@ class TestServiceDownload(_TestServiceBase):
obj='test_o',
options=options)
self._assertDictEqual(r, expected_r)
self.assertEqual(r, expected_r)
self.assertEqual(mock_conn.get_container.mock_calls, [
mock.call('test_c_segments',
@ -2116,7 +2098,7 @@ class TestServiceDownload(_TestServiceBase):
obj='test_o',
options=options)
self._assertDictEqual(r, expected_r)
self.assertEqual(r, expected_r)
self.assertEqual(mock_conn.get_object.mock_calls, [
mock.call('test_c',
'test_o',

View File

@ -20,9 +20,8 @@ import logging
import mock
import os
import tempfile
import testtools
import unittest
import textwrap
from testtools import ExpectedException
import six
@ -106,7 +105,7 @@ def _make_cmd(cmd, opts, os_opts, use_env=False, flags=None, cmd_args=None):
@mock.patch.dict(os.environ, mocked_os_environ)
class TestShell(testtools.TestCase):
class TestShell(unittest.TestCase):
def setUp(self):
super(TestShell, self).setUp()
tmpfile = tempfile.NamedTemporaryFile(delete=False)
@ -1076,7 +1075,7 @@ class TestShell(testtools.TestCase):
swiftclient.ClientException('bad auth')
with CaptureOutput() as output:
with ExpectedException(SystemExit):
with self.assertRaises(SystemExit):
swiftclient.shell.main(argv)
self.assertEqual(output.err, 'bad auth\n')
@ -1088,7 +1087,7 @@ class TestShell(testtools.TestCase):
swiftclient.ClientException('test', http_status=404)
with CaptureOutput() as output:
with ExpectedException(SystemExit):
with self.assertRaises(SystemExit):
swiftclient.shell.main(argv)
self.assertEqual(output.err, 'Account not found\n')
@ -1107,7 +1106,7 @@ class TestShell(testtools.TestCase):
swiftclient.ClientException('bad auth')
with CaptureOutput() as output:
with ExpectedException(SystemExit):
with self.assertRaises(SystemExit):
swiftclient.shell.main(argv)
self.assertEqual(output.err, 'bad auth\n')
@ -1125,7 +1124,7 @@ class TestShell(testtools.TestCase):
argv = ["", "post", "conta/iner"]
with CaptureOutput() as output:
with ExpectedException(SystemExit):
with self.assertRaises(SystemExit):
swiftclient.shell.main(argv)
self.assertTrue(output.err != '')
self.assertTrue(output.err.startswith('WARNING: / in'))
@ -1165,7 +1164,7 @@ class TestShell(testtools.TestCase):
swiftclient.ClientException("bad auth")
with CaptureOutput() as output:
with ExpectedException(SystemExit):
with self.assertRaises(SystemExit):
swiftclient.shell.main(argv)
self.assertEqual(output.err, 'bad auth\n')
@ -1174,7 +1173,7 @@ class TestShell(testtools.TestCase):
argv = ["", "post", "container", "object", "bad_arg"]
with CaptureOutput() as output:
with ExpectedException(SystemExit):
with self.assertRaises(SystemExit):
swiftclient.shell.main(argv)
self.assertTrue(output.err != '')
@ -1235,49 +1234,49 @@ class TestShell(testtools.TestCase):
_check_expected(mock_swift, 12345)
with CaptureOutput() as output:
with ExpectedException(SystemExit):
with self.assertRaises(SystemExit):
# Test invalid states
argv = ["", "upload", "-S", "1234X", "container", "object"]
swiftclient.shell.main(argv)
self.assertEqual(output.err, "Invalid segment size\n")
output.clear()
with ExpectedException(SystemExit):
with self.assertRaises(SystemExit):
argv = ["", "upload", "-S", "K1234", "container", "object"]
swiftclient.shell.main(argv)
self.assertEqual(output.err, "Invalid segment size\n")
output.clear()
with ExpectedException(SystemExit):
with self.assertRaises(SystemExit):
argv = ["", "upload", "-S", "K", "container", "object"]
swiftclient.shell.main(argv)
self.assertEqual(output.err, "Invalid segment size\n")
def test_negative_upload_segment_size(self):
with CaptureOutput() as output:
with ExpectedException(SystemExit):
with self.assertRaises(SystemExit):
argv = ["", "upload", "-S", "-40", "container", "object"]
swiftclient.shell.main(argv)
self.assertEqual(output.err, "segment-size should be positive\n")
output.clear()
with ExpectedException(SystemExit):
with self.assertRaises(SystemExit):
argv = ["", "upload", "-S", "-40K", "container", "object"]
swiftclient.shell.main(argv)
self.assertEqual(output.err, "segment-size should be positive\n")
output.clear()
with ExpectedException(SystemExit):
with self.assertRaises(SystemExit):
argv = ["", "upload", "-S", "-40M", "container", "object"]
swiftclient.shell.main(argv)
self.assertEqual(output.err, "segment-size should be positive\n")
output.clear()
with ExpectedException(SystemExit):
with self.assertRaises(SystemExit):
argv = ["", "upload", "-S", "-40G", "container", "object"]
swiftclient.shell.main(argv)
self.assertEqual(output.err, "segment-size should be positive\n")
output.clear()
class TestSubcommandHelp(testtools.TestCase):
class TestSubcommandHelp(unittest.TestCase):
def test_subcommand_help(self):
for command in swiftclient.shell.commands:
@ -1298,7 +1297,7 @@ class TestSubcommandHelp(testtools.TestCase):
@mock.patch.dict(os.environ, mocked_os_environ)
class TestDebugAndInfoOptions(testtools.TestCase):
class TestDebugAndInfoOptions(unittest.TestCase):
@mock.patch('logging.basicConfig')
@mock.patch('swiftclient.service.Connection')
def test_option_after_posarg(self, connection, mock_logging):
@ -1329,7 +1328,7 @@ class TestDebugAndInfoOptions(testtools.TestCase):
% (mock_logging.call_args_list, argv))
class TestBase(testtools.TestCase):
class TestBase(unittest.TestCase):
"""
Provide some common methods to subclasses
"""

View File

@ -18,7 +18,7 @@ import mock
import six
import socket
import string
import testtools
import unittest
import warnings
import tempfile
from hashlib import md5
@ -34,7 +34,7 @@ import swiftclient.utils
import swiftclient
class TestClientException(testtools.TestCase):
class TestClientException(unittest.TestCase):
def test_is_exception(self):
self.assertTrue(issubclass(c.ClientException, Exception))
@ -251,12 +251,12 @@ class TestGetAuth(MockHttpTest):
self.assertEqual(url, 'storageURL')
self.assertEqual(token, 'someauthtoken')
e = self.assertRaises(c.ClientException, c.get_auth,
'http://www.test.com/invalid_cert',
'asdf', 'asdf', auth_version='1.0')
with self.assertRaises(c.ClientException) as exc_context:
c.get_auth('http://www.test.com/invalid_cert',
'asdf', 'asdf', auth_version='1.0')
# TODO: this test is really on validating the mock and not the
# the full plumbing into the requests's 'verify' option
self.assertIn('invalid_certificate', str(e))
self.assertIn('invalid_certificate', str(exc_context.exception))
def test_auth_v1_timeout(self):
# this test has some overlap with
@ -583,8 +583,9 @@ class TestHeadAccount(MockHttpTest):
def test_server_error(self):
body = 'c' * 65
c.http_connection = self.fake_http_connection(500, body=body)
e = self.assertRaises(c.ClientException, c.head_account,
'http://www.tests.com', 'asdf')
with self.assertRaises(c.ClientException) as exc_context:
c.head_account('http://www.tests.com', 'asdf')
e = exc_context.exception
self.assertEqual(e.http_response_content, body)
self.assertEqual(e.http_status, 500)
self.assertRequests([
@ -617,17 +618,17 @@ class TestPostAccount(MockHttpTest):
def test_server_error(self):
body = 'c' * 65
c.http_connection = self.fake_http_connection(500, body=body)
e = self.assertRaises(c.ClientException, c.post_account,
'http://www.tests.com', 'asdf', {})
self.assertEqual(e.http_response_content, body)
self.assertEqual(e.http_status, 500)
with self.assertRaises(c.ClientException) as exc_mgr:
c.post_account('http://www.tests.com', 'asdf', {})
self.assertEqual(exc_mgr.exception.http_response_content, body)
self.assertEqual(exc_mgr.exception.http_status, 500)
self.assertRequests([
('POST', 'http://www.tests.com', None, {'x-auth-token': 'asdf'})
])
# TODO: this is a fairly brittle test of the __repr__ on the
# ClientException which should probably be in a targeted test
new_body = "[first 60 chars of response] " + body[0:60]
self.assertEqual(e.__str__()[-89:], new_body)
self.assertEqual(exc_mgr.exception.__str__()[-89:], new_body)
class TestGetContainer(MockHttpTest):
@ -741,8 +742,9 @@ class TestHeadContainer(MockHttpTest):
def test_server_error(self):
body = 'c' * 60
c.http_connection = self.fake_http_connection(500, body=body)
e = self.assertRaises(c.ClientException, c.head_container,
'http://www.test.com', 'asdf', 'container')
with self.assertRaises(c.ClientException) as exc_context:
c.head_container('http://www.test.com', 'asdf', 'container')
e = exc_context.exception
self.assertRequests([
('HEAD', '/container', '', {'x-auth-token': 'asdf'}),
])
@ -765,9 +767,9 @@ class TestPutContainer(MockHttpTest):
def test_server_error(self):
body = 'c' * 60
c.http_connection = self.fake_http_connection(500, body=body)
e = self.assertRaises(c.ClientException, c.put_container,
'http://www.test.com', 'token', 'container')
self.assertEqual(e.http_response_content, body)
with self.assertRaises(c.ClientException) as exc_context:
c.put_container('http://www.test.com', 'token', 'container')
self.assertEqual(exc_context.exception.http_response_content, body)
self.assertRequests([
('PUT', '/container', '', {
'x-auth-token': 'token',
@ -972,7 +974,9 @@ class TestPutObject(MockHttpTest):
body = 'c' * 60
c.http_connection = self.fake_http_connection(500, body=body)
args = ('http://www.test.com', 'asdf', 'asdf', 'asdf', 'asdf')
e = self.assertRaises(c.ClientException, c.put_object, *args)
with self.assertRaises(c.ClientException) as exc_context:
c.put_object(*args)
e = exc_context.exception
self.assertEqual(e.http_response_content, body)
self.assertEqual(e.http_status, 500)
self.assertRequests([
@ -1192,8 +1196,9 @@ class TestPostObject(MockHttpTest):
body = 'c' * 60
c.http_connection = self.fake_http_connection(500, body=body)
args = ('http://www.test.com', 'token', 'container', 'obj', {})
e = self.assertRaises(c.ClientException, c.post_object, *args)
self.assertEqual(e.http_response_content, body)
with self.assertRaises(c.ClientException) as exc_context:
c.post_object(*args)
self.assertEqual(exc_context.exception.http_response_content, body)
self.assertRequests([
('POST', 'http://www.test.com/container/obj', '', {
'x-auth-token': 'token',
@ -1347,17 +1352,23 @@ class TestHTTPConnection(MockHttpTest):
def test_bad_url_scheme(self):
url = u'www.test.com'
exc = self.assertRaises(c.ClientException, c.http_connection, url)
with self.assertRaises(c.ClientException) as exc_context:
c.http_connection(url)
exc = exc_context.exception
expected = u'Unsupported scheme "" in url "www.test.com"'
self.assertEqual(expected, str(exc))
url = u'://www.test.com'
exc = self.assertRaises(c.ClientException, c.http_connection, url)
with self.assertRaises(c.ClientException) as exc_context:
c.http_connection(url)
exc = exc_context.exception
expected = u'Unsupported scheme "" in url "://www.test.com"'
self.assertEqual(expected, str(exc))
url = u'blah://www.test.com'
exc = self.assertRaises(c.ClientException, c.http_connection, url)
with self.assertRaises(c.ClientException) as exc_context:
c.http_connection(url)
exc = exc_context.exception
expected = u'Unsupported scheme "blah" in url "blah://www.test.com"'
self.assertEqual(expected, str(exc))
@ -1524,8 +1535,9 @@ class TestConnection(MockHttpTest):
}
c.http_connection = self.fake_http_connection(
*code_iter, headers=auth_resp_headers)
e = self.assertRaises(c.ClientException, conn.head_account)
self.assertIn('Account HEAD failed', str(e))
with self.assertRaises(c.ClientException) as exc_context:
conn.head_account()
self.assertIn('Account HEAD failed', str(exc_context.exception))
self.assertEqual(conn.attempts, conn.retries + 1)
# test default no-retry
@ -1533,8 +1545,9 @@ class TestConnection(MockHttpTest):
200, 498,
headers=auth_resp_headers)
conn = c.Connection('http://www.test.com/auth/v1.0', 'asdf', 'asdf')
e = self.assertRaises(c.ClientException, conn.head_account)
self.assertIn('Account HEAD failed', str(e))
with self.assertRaises(c.ClientException) as exc_context:
conn.head_account()
self.assertIn('Account HEAD failed', str(exc_context.exception))
self.assertEqual(conn.attempts, 1)
def test_resp_read_on_server_error(self):
@ -2132,9 +2145,9 @@ class TestLogging(MockHttpTest):
def test_get_error(self):
c.http_connection = self.fake_http_connection(404)
e = self.assertRaises(c.ClientException, c.get_object,
'http://www.test.com', 'asdf', 'asdf', 'asdf')
self.assertEqual(e.http_status, 404)
with self.assertRaises(c.ClientException) as exc_context:
c.get_object('http://www.test.com', 'asdf', 'asdf', 'asdf')
self.assertEqual(exc_context.exception.http_status, 404)
class TestCloseConnection(MockHttpTest):

View File

@ -13,7 +13,7 @@
# See the License for the specific language governing permissions and
# limitations under the License.
import testtools
import unittest
import mock
import six
import tempfile
@ -22,7 +22,7 @@ from hashlib import md5
from swiftclient import utils as u
class TestConfigTrueValue(testtools.TestCase):
class TestConfigTrueValue(unittest.TestCase):
def test_TRUE_VALUES(self):
for v in u.TRUE_VALUES:
@ -37,7 +37,7 @@ class TestConfigTrueValue(testtools.TestCase):
self.assertIs(u.config_true_value(False), False)
class TestPrtBytes(testtools.TestCase):
class TestPrtBytes(unittest.TestCase):
def test_zero_bytes(self):
bytes_ = 0
@ -119,7 +119,7 @@ class TestPrtBytes(testtools.TestCase):
self.assertEqual('1024Y', u.prt_bytes(bytes_, True).lstrip())
class TestTempURL(testtools.TestCase):
class TestTempURL(unittest.TestCase):
def setUp(self):
super(TestTempURL, self).setUp()
@ -164,7 +164,7 @@ class TestTempURL(testtools.TestCase):
self.method)
class TestReadableToIterable(testtools.TestCase):
class TestReadableToIterable(unittest.TestCase):
def test_iter(self):
chunk_size = 4
@ -216,7 +216,7 @@ class TestReadableToIterable(testtools.TestCase):
self.assertEqual(actual_md5sum, data.get_md5sum())
class TestLengthWrapper(testtools.TestCase):
class TestLengthWrapper(unittest.TestCase):
def test_stringio(self):
contents = six.StringIO(u'a' * 50 + u'b' * 50)
@ -292,7 +292,7 @@ class TestLengthWrapper(testtools.TestCase):
self.assertEqual(md5(s).hexdigest(), data.get_md5sum())
class TestGroupers(testtools.TestCase):
class TestGroupers(unittest.TestCase):
def test_n_at_a_time(self):
result = list(u.n_at_a_time(range(100), 9))
self.assertEqual([9] * 11 + [1], list(map(len, result)))

View File

@ -18,7 +18,6 @@ from requests import RequestException
from requests.structures import CaseInsensitiveDict
from time import sleep
import unittest
import testtools
import mock
import six
from six.moves import reload_module
@ -189,7 +188,7 @@ def fake_http_connect(*code_iter, **kwargs):
return connect
class MockHttpTest(testtools.TestCase):
class MockHttpTest(unittest.TestCase):
def setUp(self):
super(MockHttpTest, self).setUp()