diff --git a/test/unit/proxy/controllers/test_account.py b/test/unit/proxy/controllers/test_account.py index 86206f02a1..a46dcc90f1 100644 --- a/test/unit/proxy/controllers/test_account.py +++ b/test/unit/proxy/controllers/test_account.py @@ -86,7 +86,7 @@ class TestAccountController(unittest.TestCase): resp = controller.HEAD(req) self.assertEqual(2, resp.status_int // 100) for key in owner_headers: - self.assertTrue(key not in resp.headers) + self.assertNotIn(key, resp.headers) req = Request.blank('/v1/a', environ={'swift_owner': True}) with mock.patch('swift.proxy.controllers.base.http_connect', @@ -94,7 +94,7 @@ class TestAccountController(unittest.TestCase): resp = controller.HEAD(req) self.assertEqual(2, resp.status_int // 100) for key in owner_headers: - self.assertTrue(key in resp.headers) + self.assertIn(key, resp.headers) def test_get_deleted_account(self): resp_headers = { @@ -148,9 +148,9 @@ class TestAccountController(unittest.TestCase): fake_http_connect(200, 200, give_connect=callback)): controller.PUT(req) self.assertEqual(context['method'], 'PUT') - self.assertTrue(sys_meta_key in context['headers']) + self.assertIn(sys_meta_key, context['headers']) self.assertEqual(context['headers'][sys_meta_key], 'foo') - self.assertTrue(user_meta_key in context['headers']) + self.assertIn(user_meta_key, context['headers']) self.assertEqual(context['headers'][user_meta_key], 'bar') self.assertNotEqual(context['headers']['x-timestamp'], '1.0') @@ -171,9 +171,9 @@ class TestAccountController(unittest.TestCase): fake_http_connect(200, 200, give_connect=callback)): controller.POST(req) self.assertEqual(context['method'], 'POST') - self.assertTrue(sys_meta_key in context['headers']) + self.assertIn(sys_meta_key, context['headers']) self.assertEqual(context['headers'][sys_meta_key], 'foo') - self.assertTrue(user_meta_key in context['headers']) + self.assertIn(user_meta_key, context['headers']) self.assertEqual(context['headers'][user_meta_key], 'bar') self.assertNotEqual(context['headers']['x-timestamp'], '1.0') @@ -212,7 +212,7 @@ class TestAccountController(unittest.TestCase): self.assertEqual(resp.headers.get(header), value) else: # blank ACLs should result in no header - self.assertTrue(header not in resp.headers) + self.assertNotIn(header, resp.headers) def test_add_acls_impossible_cases(self): # For test coverage: verify that defensive coding does defend, in cases diff --git a/test/unit/proxy/controllers/test_base.py b/test/unit/proxy/controllers/test_base.py index 55214f6d03..a4a85479c5 100644 --- a/test/unit/proxy/controllers/test_base.py +++ b/test/unit/proxy/controllers/test_base.py @@ -432,8 +432,8 @@ class TestFuncs(unittest.TestCase): def test_headers_to_container_info_missing(self): resp = headers_to_container_info({}, 404) self.assertEqual(resp['status'], 404) - self.assertEqual(resp['read_acl'], None) - self.assertEqual(resp['write_acl'], None) + self.assertIsNone(resp['read_acl']) + self.assertIsNone(resp['write_acl']) def test_headers_to_container_info_meta(self): headers = {'X-Container-Meta-Whatevs': 14, @@ -482,8 +482,8 @@ class TestFuncs(unittest.TestCase): def test_headers_to_account_info_missing(self): resp = headers_to_account_info({}, 404) self.assertEqual(resp['status'], 404) - self.assertEqual(resp['bytes'], None) - self.assertEqual(resp['container_count'], None) + self.assertIsNone(resp['bytes']) + self.assertIsNone(resp['container_count']) def test_headers_to_account_info_meta(self): headers = {'X-Account-Meta-Whatevs': 14, @@ -519,8 +519,8 @@ class TestFuncs(unittest.TestCase): def test_headers_to_object_info_missing(self): resp = headers_to_object_info({}, 404) self.assertEqual(resp['status'], 404) - self.assertEqual(resp['length'], None) - self.assertEqual(resp['etag'], None) + self.assertIsNone(resp['length']) + self.assertIsNone(resp['etag']) def test_headers_to_object_info_meta(self): headers = {'X-Object-Meta-Whatevs': 14, @@ -564,18 +564,18 @@ class TestFuncs(unittest.TestCase): def test_base_have_quorum(self): base = Controller(self.app) # just throw a bunch of test cases at it - self.assertEqual(base.have_quorum([201, 404], 3), False) - self.assertEqual(base.have_quorum([201, 201], 4), True) - self.assertEqual(base.have_quorum([201], 4), False) - self.assertEqual(base.have_quorum([201, 201, 404, 404], 4), True) - self.assertEqual(base.have_quorum([201, 302, 418, 503], 4), False) - self.assertEqual(base.have_quorum([201, 503, 503, 201], 4), True) - self.assertEqual(base.have_quorum([201, 201], 3), True) - self.assertEqual(base.have_quorum([404, 404], 3), True) - self.assertEqual(base.have_quorum([201, 201], 2), True) - self.assertEqual(base.have_quorum([201, 404], 2), True) - self.assertEqual(base.have_quorum([404, 404], 2), True) - self.assertEqual(base.have_quorum([201, 404, 201, 201], 4), True) + self.assertFalse(base.have_quorum([201, 404], 3)) + self.assertTrue(base.have_quorum([201, 201], 4)) + self.assertFalse(base.have_quorum([201], 4)) + self.assertTrue(base.have_quorum([201, 201, 404, 404], 4)) + self.assertFalse(base.have_quorum([201, 302, 418, 503], 4)) + self.assertTrue(base.have_quorum([201, 503, 503, 201], 4)) + self.assertTrue(base.have_quorum([201, 201], 3)) + self.assertTrue(base.have_quorum([404, 404], 3)) + self.assertTrue(base.have_quorum([201, 201], 2)) + self.assertTrue(base.have_quorum([201, 404], 2)) + self.assertTrue(base.have_quorum([404, 404], 2)) + self.assertTrue(base.have_quorum([201, 404, 201, 201], 4)) def test_best_response_overrides(self): base = Controller(self.app) @@ -685,9 +685,9 @@ class TestFuncs(unittest.TestCase): 'x-base-meta-size': '151M', 'connection': 'close'} for k, v in expected_headers.items(): - self.assertTrue(k in dst_headers) + self.assertIn(k, dst_headers) self.assertEqual(v, dst_headers[k]) - self.assertFalse('new-owner' in dst_headers) + self.assertNotIn('new-owner', dst_headers) def test_generate_request_headers_with_sysmeta(self): base = Controller(self.app) @@ -699,10 +699,10 @@ class TestFuncs(unittest.TestCase): req = Request.blank('/v1/a/c/o', headers=hdrs) dst_headers = base.generate_request_headers(req, transfer=True) for k, v in good_hdrs.items(): - self.assertTrue(k.lower() in dst_headers) + self.assertIn(k.lower(), dst_headers) self.assertEqual(v, dst_headers[k.lower()]) for k, v in bad_hdrs.items(): - self.assertFalse(k.lower() in dst_headers) + self.assertNotIn(k.lower(), dst_headers) def test_generate_request_headers_with_no_orig_req(self): base = Controller(self.app) diff --git a/test/unit/proxy/controllers/test_container.py b/test/unit/proxy/controllers/test_container.py index f08a90dfb1..98176b53c0 100644 --- a/test/unit/proxy/controllers/test_container.py +++ b/test/unit/proxy/controllers/test_container.py @@ -122,7 +122,7 @@ class TestContainerController(TestRingBase): resp = controller.HEAD(req) self.assertEqual(2, resp.status_int // 100) for key in owner_headers: - self.assertTrue(key not in resp.headers) + self.assertNotIn(key, resp.headers) req = Request.blank('/v1/a/c', environ={'swift_owner': True}) with mock.patch('swift.proxy.controllers.base.http_connect', @@ -130,7 +130,7 @@ class TestContainerController(TestRingBase): resp = controller.HEAD(req) self.assertEqual(2, resp.status_int // 100) for key in owner_headers: - self.assertTrue(key in resp.headers) + self.assertIn(key, resp.headers) def test_sys_meta_headers_PUT(self): # check that headers in sys meta namespace make it through @@ -150,9 +150,9 @@ class TestContainerController(TestRingBase): fake_http_connect(200, 200, give_connect=callback)): controller.PUT(req) self.assertEqual(context['method'], 'PUT') - self.assertTrue(sys_meta_key in context['headers']) + self.assertIn(sys_meta_key, context['headers']) self.assertEqual(context['headers'][sys_meta_key], 'foo') - self.assertTrue(user_meta_key in context['headers']) + self.assertIn(user_meta_key, context['headers']) self.assertEqual(context['headers'][user_meta_key], 'bar') self.assertNotEqual(context['headers']['x-timestamp'], '1.0') @@ -173,9 +173,9 @@ class TestContainerController(TestRingBase): fake_http_connect(200, 200, give_connect=callback)): controller.POST(req) self.assertEqual(context['method'], 'POST') - self.assertTrue(sys_meta_key in context['headers']) + self.assertIn(sys_meta_key, context['headers']) self.assertEqual(context['headers'][sys_meta_key], 'foo') - self.assertTrue(user_meta_key in context['headers']) + self.assertIn(user_meta_key, context['headers']) self.assertEqual(context['headers'][user_meta_key], 'bar') self.assertNotEqual(context['headers']['x-timestamp'], '1.0') diff --git a/test/unit/proxy/controllers/test_info.py b/test/unit/proxy/controllers/test_info.py index adf3329683..2317acfbe1 100644 --- a/test/unit/proxy/controllers/test_info.py +++ b/test/unit/proxy/controllers/test_info.py @@ -49,7 +49,7 @@ class TestInfoController(unittest.TestCase): req = Request.blank( '/info', environ={'REQUEST_METHOD': 'GET'}) resp = controller.GET(req) - self.assertTrue(isinstance(resp, HTTPException)) + self.assertIsInstance(resp, HTTPException) self.assertEqual('403 Forbidden', str(resp)) def test_get_info(self): @@ -60,12 +60,12 @@ class TestInfoController(unittest.TestCase): req = Request.blank( '/info', environ={'REQUEST_METHOD': 'GET'}) resp = controller.GET(req) - self.assertTrue(isinstance(resp, HTTPException)) + self.assertIsInstance(resp, HTTPException) self.assertEqual('200 OK', str(resp)) info = json.loads(resp.body) - self.assertTrue('admin' not in info) - self.assertTrue('foo' in info) - self.assertTrue('bar' in info['foo']) + self.assertNotIn('admin', info) + self.assertIn('foo', info) + self.assertIn('bar', info['foo']) self.assertEqual(info['foo']['bar'], 'baz') def test_options_info(self): @@ -74,9 +74,9 @@ class TestInfoController(unittest.TestCase): req = Request.blank( '/info', environ={'REQUEST_METHOD': 'GET'}) resp = controller.OPTIONS(req) - self.assertTrue(isinstance(resp, HTTPException)) + self.assertIsInstance(resp, HTTPException) self.assertEqual('200 OK', str(resp)) - self.assertTrue('Allow' in resp.headers) + self.assertIn('Allow', resp.headers) def test_get_info_cors(self): controller = self.get_controller(expose_info=True) @@ -87,15 +87,15 @@ class TestInfoController(unittest.TestCase): '/info', environ={'REQUEST_METHOD': 'GET'}, headers={'Origin': 'http://example.com'}) resp = controller.GET(req) - self.assertTrue(isinstance(resp, HTTPException)) + self.assertIsInstance(resp, HTTPException) self.assertEqual('200 OK', str(resp)) info = json.loads(resp.body) - self.assertTrue('admin' not in info) - self.assertTrue('foo' in info) - self.assertTrue('bar' in info['foo']) + self.assertNotIn('admin', info) + self.assertIn('foo', info) + self.assertIn('bar', info['foo']) self.assertEqual(info['foo']['bar'], 'baz') - self.assertTrue('Access-Control-Allow-Origin' in resp.headers) - self.assertTrue('Access-Control-Expose-Headers' in resp.headers) + self.assertIn('Access-Control-Allow-Origin', resp.headers) + self.assertIn('Access-Control-Expose-Headers', resp.headers) def test_head_info(self): controller = self.get_controller(expose_info=True) @@ -105,7 +105,7 @@ class TestInfoController(unittest.TestCase): req = Request.blank( '/info', environ={'REQUEST_METHOD': 'HEAD'}) resp = controller.HEAD(req) - self.assertTrue(isinstance(resp, HTTPException)) + self.assertIsInstance(resp, HTTPException) self.assertEqual('200 OK', str(resp)) def test_disallow_info(self): @@ -118,13 +118,13 @@ class TestInfoController(unittest.TestCase): req = Request.blank( '/info', environ={'REQUEST_METHOD': 'GET'}) resp = controller.GET(req) - self.assertTrue(isinstance(resp, HTTPException)) + self.assertIsInstance(resp, HTTPException) self.assertEqual('200 OK', str(resp)) info = json.loads(resp.body) - self.assertTrue('foo' in info) - self.assertTrue('bar' in info['foo']) + self.assertIn('foo', info) + self.assertIn('bar', info['foo']) self.assertEqual(info['foo']['bar'], 'baz') - self.assertTrue('foo2' not in info) + self.assertNotIn('foo2', info) def test_disabled_admin_info(self): controller = self.get_controller(expose_info=True, admin_key='') @@ -138,7 +138,7 @@ class TestInfoController(unittest.TestCase): req = Request.blank( path, environ={'REQUEST_METHOD': 'GET'}) resp = controller.GET(req) - self.assertTrue(isinstance(resp, HTTPException)) + self.assertIsInstance(resp, HTTPException) self.assertEqual('403 Forbidden', str(resp)) def test_get_admin_info(self): @@ -154,12 +154,12 @@ class TestInfoController(unittest.TestCase): req = Request.blank( path, environ={'REQUEST_METHOD': 'GET'}) resp = controller.GET(req) - self.assertTrue(isinstance(resp, HTTPException)) + self.assertIsInstance(resp, HTTPException) self.assertEqual('200 OK', str(resp)) info = json.loads(resp.body) - self.assertTrue('admin' in info) - self.assertTrue('qux' in info['admin']) - self.assertTrue('quux' in info['admin']['qux']) + self.assertIn('admin', info) + self.assertIn('qux', info['admin']) + self.assertIn('quux', info['admin']['qux']) self.assertEqual(info['admin']['qux']['quux'], 'corge') def test_head_admin_info(self): @@ -175,7 +175,7 @@ class TestInfoController(unittest.TestCase): req = Request.blank( path, environ={'REQUEST_METHOD': 'HEAD'}) resp = controller.GET(req) - self.assertTrue(isinstance(resp, HTTPException)) + self.assertIsInstance(resp, HTTPException) self.assertEqual('200 OK', str(resp)) expires = int(time.time() + 86400) @@ -185,7 +185,7 @@ class TestInfoController(unittest.TestCase): req = Request.blank( path, environ={'REQUEST_METHOD': 'HEAD'}) resp = controller.GET(req) - self.assertTrue(isinstance(resp, HTTPException)) + self.assertIsInstance(resp, HTTPException) self.assertEqual('200 OK', str(resp)) def test_get_admin_info_invalid_method(self): @@ -201,7 +201,7 @@ class TestInfoController(unittest.TestCase): req = Request.blank( path, environ={'REQUEST_METHOD': 'GET'}) resp = controller.GET(req) - self.assertTrue(isinstance(resp, HTTPException)) + self.assertIsInstance(resp, HTTPException) self.assertEqual('401 Unauthorized', str(resp)) def test_get_admin_info_invalid_expires(self): @@ -217,7 +217,7 @@ class TestInfoController(unittest.TestCase): req = Request.blank( path, environ={'REQUEST_METHOD': 'GET'}) resp = controller.GET(req) - self.assertTrue(isinstance(resp, HTTPException)) + self.assertIsInstance(resp, HTTPException) self.assertEqual('401 Unauthorized', str(resp)) expires = 'abc' @@ -227,7 +227,7 @@ class TestInfoController(unittest.TestCase): req = Request.blank( path, environ={'REQUEST_METHOD': 'GET'}) resp = controller.GET(req) - self.assertTrue(isinstance(resp, HTTPException)) + self.assertIsInstance(resp, HTTPException) self.assertEqual('401 Unauthorized', str(resp)) def test_get_admin_info_invalid_path(self): @@ -243,7 +243,7 @@ class TestInfoController(unittest.TestCase): req = Request.blank( path, environ={'REQUEST_METHOD': 'GET'}) resp = controller.GET(req) - self.assertTrue(isinstance(resp, HTTPException)) + self.assertIsInstance(resp, HTTPException) self.assertEqual('401 Unauthorized', str(resp)) def test_get_admin_info_invalid_key(self): @@ -259,7 +259,7 @@ class TestInfoController(unittest.TestCase): req = Request.blank( path, environ={'REQUEST_METHOD': 'GET'}) resp = controller.GET(req) - self.assertTrue(isinstance(resp, HTTPException)) + self.assertIsInstance(resp, HTTPException) self.assertEqual('401 Unauthorized', str(resp)) def test_admin_disallow_info(self): @@ -277,15 +277,15 @@ class TestInfoController(unittest.TestCase): req = Request.blank( path, environ={'REQUEST_METHOD': 'GET'}) resp = controller.GET(req) - self.assertTrue(isinstance(resp, HTTPException)) + self.assertIsInstance(resp, HTTPException) self.assertEqual('200 OK', str(resp)) info = json.loads(resp.body) - self.assertTrue('foo2' not in info) - self.assertTrue('admin' in info) - self.assertTrue('disallowed_sections' in info['admin']) - self.assertTrue('foo2' in info['admin']['disallowed_sections']) - self.assertTrue('qux' in info['admin']) - self.assertTrue('quux' in info['admin']['qux']) + self.assertNotIn('foo2', info) + self.assertIn('admin', info) + self.assertIn('disallowed_sections', info['admin']) + self.assertIn('foo2', info['admin']['disallowed_sections']) + self.assertIn('qux', info['admin']) + self.assertIn('quux', info['admin']['qux']) self.assertEqual(info['admin']['qux']['quux'], 'corge') diff --git a/test/unit/proxy/controllers/test_obj.py b/test/unit/proxy/controllers/test_obj.py index 741be84b20..d30525a985 100755 --- a/test/unit/proxy/controllers/test_obj.py +++ b/test/unit/proxy/controllers/test_obj.py @@ -231,7 +231,7 @@ class BaseObjectControllerMixin(object): # make sure we have enough local nodes (sanity) all_local_nodes = [n for n in all_nodes if self.app.write_affinity_is_local_fn(n)] - self.assertTrue(len(all_local_nodes) >= self.replicas() + 1) + self.assertGreaterEqual(len(all_local_nodes), self.replicas() + 1) # finally, create the local_first_nodes iter and flatten it out local_first_nodes = list(controller.iter_nodes_local_first( @@ -280,7 +280,7 @@ class BaseObjectControllerMixin(object): with set_http_connect(slow_connect=True): nodes = [dict(ip='', port='', device='')] res = controller._connect_put_node(nodes, '', req, {}, ('', '')) - self.assertTrue(res is None) + self.assertIsNone(res) def test_DELETE_simple(self): req = swift.common.swob.Request.blank('/v1/a/c/o', method='DELETE') @@ -1143,10 +1143,10 @@ class TestReplicatedObjController(BaseObjectControllerMixin, self.assertEqual(resp.status_int, 201) for given_headers in put_headers: self.assertEqual(given_headers.get('X-Delete-At'), t) - self.assertTrue('X-Delete-At-Host' in given_headers) - self.assertTrue('X-Delete-At-Device' in given_headers) - self.assertTrue('X-Delete-At-Partition' in given_headers) - self.assertTrue('X-Delete-At-Container' in given_headers) + self.assertIn('X-Delete-At-Host', given_headers) + self.assertIn('X-Delete-At-Device', given_headers) + self.assertIn('X-Delete-At-Partition', given_headers) + self.assertIn('X-Delete-At-Container', given_headers) def test_PUT_converts_delete_after_to_delete_at(self): req = swob.Request.blank('/v1/a/c/o', method='PUT', body='', @@ -1168,10 +1168,10 @@ class TestReplicatedObjController(BaseObjectControllerMixin, for given_headers in put_headers: self.assertEqual(given_headers.get('X-Delete-At'), expected_delete_at) - self.assertTrue('X-Delete-At-Host' in given_headers) - self.assertTrue('X-Delete-At-Device' in given_headers) - self.assertTrue('X-Delete-At-Partition' in given_headers) - self.assertTrue('X-Delete-At-Container' in given_headers) + self.assertIn('X-Delete-At-Host', given_headers) + self.assertIn('X-Delete-At-Device', given_headers) + self.assertIn('X-Delete-At-Partition', given_headers) + self.assertIn('X-Delete-At-Container', given_headers) def test_container_sync_put_x_timestamp_not_found(self): test_indexes = [None] + [int(p) for p in POLICIES] @@ -1915,9 +1915,9 @@ class TestECObjController(BaseObjectControllerMixin, unittest.TestCase): frag_archives = [] for connection_id, info in put_requests.items(): body = unchunk_body(''.join(info['chunks'])) - self.assertTrue(info['boundary'] is not None, - "didn't get boundary for conn %r" % ( - connection_id,)) + self.assertIsNotNone(info['boundary'], + "didn't get boundary for conn %r" % ( + connection_id,)) self.assertTrue(size > int(info['backend-content-length']) > 0, "invalid backend-content-length for conn %r" % ( connection_id,)) @@ -2306,9 +2306,9 @@ class TestECObjController(BaseObjectControllerMixin, unittest.TestCase): # ... regardless we should never need to fetch more than ec_ndata # frags for any given etag for etag, frags in collected_responses.items(): - self.assertTrue(len(frags) <= self.policy.ec_ndata, - 'collected %s frags for etag %s' % ( - len(frags), etag)) + self.assertLessEqual(len(frags), self.policy.ec_ndata, + 'collected %s frags for etag %s' % ( + len(frags), etag)) def test_GET_with_many_missed_overwrite_will_need_handoff(self): obj1 = self._make_ec_object_stub() @@ -2357,9 +2357,9 @@ class TestECObjController(BaseObjectControllerMixin, unittest.TestCase): # ... regardless we should never need to fetch more than ec_ndata # frags for any given etag for etag, frags in collected_responses.items(): - self.assertTrue(len(frags) <= self.policy.ec_ndata, - 'collected %s frags for etag %s' % ( - len(frags), etag)) + self.assertLessEqual(len(frags), self.policy.ec_ndata, + 'collected %s frags for etag %s' % ( + len(frags), etag)) def test_GET_with_missing_and_mixed_frags_will_dig_deep_but_succeed(self): obj1 = self._make_ec_object_stub() @@ -2420,9 +2420,9 @@ class TestECObjController(BaseObjectControllerMixin, unittest.TestCase): # ... regardless we should never need to fetch more than ec_ndata # frags for any given etag for etag, frags in collected_responses.items(): - self.assertTrue(len(frags) <= self.policy.ec_ndata, - 'collected %s frags for etag %s' % ( - len(frags), etag)) + self.assertLessEqual(len(frags), self.policy.ec_ndata, + 'collected %s frags for etag %s' % ( + len(frags), etag)) def test_GET_with_missing_and_mixed_frags_will_dig_deep_but_stop(self): obj1 = self._make_ec_object_stub() @@ -2480,9 +2480,9 @@ class TestECObjController(BaseObjectControllerMixin, unittest.TestCase): # ... regardless we should never need to fetch more than ec_ndata # frags for any given etag for etag, frags in collected_responses.items(): - self.assertTrue(len(frags) <= self.policy.ec_ndata, - 'collected %s frags for etag %s' % ( - len(frags), etag)) + self.assertLessEqual(len(frags), self.policy.ec_ndata, + 'collected %s frags for etag %s' % ( + len(frags), etag)) def test_GET_mixed_success_with_range(self): fragment_size = self.policy.fragment_size @@ -2682,8 +2682,8 @@ class TestECObjController(BaseObjectControllerMixin, unittest.TestCase): error_lines = self.logger.get_lines_for_level('error') self.assertEqual(1, len(error_lines)) msg = error_lines[0] - self.assertTrue('Error decoding fragments' in msg) - self.assertTrue('/a/c/o' in msg) + self.assertIn('Error decoding fragments', msg) + self.assertIn('/a/c/o', msg) log_msg_args, log_msg_kwargs = self.logger.log_dict['error'][0] self.assertEqual(log_msg_kwargs['exc_info'][0], ECDriverError) @@ -2713,9 +2713,9 @@ class TestECObjController(BaseObjectControllerMixin, unittest.TestCase): self.assertEqual(self.replicas(), len(error_lines)) nparity = self.policy.ec_nparity for line in error_lines[:nparity]: - self.assertTrue('retrying' in line) + self.assertIn('retrying', line) for line in error_lines[nparity:]: - self.assertTrue('ChunkReadTimeout (0.01s)' in line) + self.assertIn('ChunkReadTimeout (0.01s)', line) def test_GET_read_timeout_resume(self): segment_size = self.policy.ec_segment_size @@ -2741,7 +2741,7 @@ class TestECObjController(BaseObjectControllerMixin, unittest.TestCase): self.assertTrue(md5(resp.body).hexdigest(), etag) error_lines = self.logger.get_lines_for_level('error') self.assertEqual(1, len(error_lines)) - self.assertTrue('retrying' in error_lines[0]) + self.assertIn('retrying', error_lines[0]) def test_fix_response_HEAD(self): headers = {'X-Object-Sysmeta-Ec-Content-Length': '10', @@ -2799,7 +2799,7 @@ class TestECObjController(BaseObjectControllerMixin, unittest.TestCase): resp = req.get_response(self.app) response_time = time.time() - start self.assertEqual(resp.status_int, 201) - self.assertTrue(response_time < response_sleep) + self.assertLess(response_time, response_sleep) def test_PUT_with_just_enough_durable_responses(self): req = swift.common.swob.Request.blank('/v1/a/c/o', method='PUT', @@ -2861,7 +2861,7 @@ class TestECObjController(BaseObjectControllerMixin, unittest.TestCase): headers = {'X-Object-Sysmeta-Ec-Content-Length': str(len(real_body)), 'X-Object-Sysmeta-Ec-Etag': body_etag} start = int(req_range.split('-')[0]) - self.assertTrue(start >= 0) # sanity + self.assertGreaterEqual(start, 0) # sanity title, exp = swob.RESPONSE_REASONS[416] range_not_satisfiable_body = \ '
%s
' % (title, exp) diff --git a/test/unit/proxy/test_server.py b/test/unit/proxy/test_server.py index 44a23ef6f4..fc34c8c9d0 100644 --- a/test/unit/proxy/test_server.py +++ b/test/unit/proxy/test_server.py @@ -350,7 +350,7 @@ class TestController(unittest.TestCase): partition, nodes, count = \ self.controller.account_info(self.account, self.request) self.check_account_info_return(partition, nodes, True) - self.assertEqual(count, None) + self.assertIsNone(count) # Test the internal representation in memcache # 'container_count' changed from 0 to None @@ -368,7 +368,7 @@ class TestController(unittest.TestCase): partition, nodes, count = \ self.controller.account_info(self.account, self.request) self.check_account_info_return(partition, nodes, True) - self.assertEqual(count, None) + self.assertIsNone(count) # tests if some http status codes are not cached def test_account_info_no_cache(self): @@ -378,7 +378,7 @@ class TestController(unittest.TestCase): self.controller.account_info(self.account, self.request) self.assertEqual(len(self.memcache.keys()), 0) self.check_account_info_return(partition, nodes, True) - self.assertEqual(count, None) + self.assertIsNone(count) with save_globals(): # We cache if we have two 404 responses - fail if only one @@ -394,7 +394,7 @@ class TestController(unittest.TestCase): partition, nodes, count = \ self.controller.account_info(self.account, self.request) self.check_account_info_return(partition, nodes, is_none=True) - self.assertEqual(count, None) + self.assertIsNone(count) def check_container_info_return(self, ret, is_none=False): if is_none: @@ -433,7 +433,7 @@ class TestController(unittest.TestCase): cache_key = get_cache_key(self.account, self.container) cache_value = self.memcache.get(cache_key) - self.assertTrue(isinstance(cache_value, dict)) + self.assertIsInstance(cache_value, dict) self.assertEqual(200, cache_value.get('status')) set_http_connect() @@ -455,7 +455,7 @@ class TestController(unittest.TestCase): cache_key = get_cache_key(self.account, self.container) cache_value = self.memcache.get(cache_key) - self.assertTrue(isinstance(cache_value, dict)) + self.assertIsInstance(cache_value, dict) self.assertEqual(404, cache_value.get('status')) set_http_connect() @@ -470,7 +470,7 @@ class TestController(unittest.TestCase): cache_key = get_cache_key(self.account, self.container) cache_value = self.memcache.get(cache_key) - self.assertTrue(isinstance(cache_value, dict)) + self.assertIsInstance(cache_value, dict) self.assertEqual(404, cache_value.get('status')) set_http_connect() @@ -507,17 +507,17 @@ class TestController(unittest.TestCase): # Test info is returned as strings self.assertEqual(ai.get('foo'), '\xe2\x98\x83') - self.assertTrue(isinstance(ai.get('foo'), str)) + self.assertIsInstance(ai.get('foo'), str) # Test info['meta'] is returned as strings m = ai.get('meta', {}) self.assertEqual(m.get('bar'), '\xe2\x98\x83') - self.assertTrue(isinstance(m.get('bar'), str)) + self.assertIsInstance(m.get('bar'), str) # Test info['sysmeta'] is returned as strings m = ai.get('sysmeta', {}) self.assertEqual(m.get('baz'), '\xe2\x98\x83') - self.assertTrue(isinstance(m.get('baz'), str)) + self.assertIsInstance(m.get('baz'), str) def test_get_container_info_returns_values_as_strings(self): app = mock.MagicMock() @@ -533,22 +533,22 @@ class TestController(unittest.TestCase): # Test info is returned as strings self.assertEqual(ci.get('foo'), '\xe2\x98\x83') - self.assertTrue(isinstance(ci.get('foo'), str)) + self.assertIsInstance(ci.get('foo'), str) # Test info['meta'] is returned as strings m = ci.get('meta', {}) self.assertEqual(m.get('bar'), '\xe2\x98\x83') - self.assertTrue(isinstance(m.get('bar'), str)) + self.assertIsInstance(m.get('bar'), str) # Test info['sysmeta'] is returned as strings m = ci.get('sysmeta', {}) self.assertEqual(m.get('baz'), '\xe2\x98\x83') - self.assertTrue(isinstance(m.get('baz'), str)) + self.assertIsInstance(m.get('baz'), str) # Test info['cors'] is returned as strings m = ci.get('cors', {}) self.assertEqual(m.get('expose_headers'), '\xe2\x98\x83') - self.assertTrue(isinstance(m.get('expose_headers'), str)) + self.assertIsInstance(m.get('expose_headers'), str) @patch_policies([StoragePolicy(0, 'zero', True, object_ring=FakeRing())]) @@ -814,7 +814,7 @@ class TestProxyServer(unittest.TestCase): FakeMemcache(), container_ring=FakeRing(), account_ring=FakeRing()) - self.assertEqual(baseapp.concurrent_gets, True) + self.assertTrue(baseapp.concurrent_gets) self.assertEqual(baseapp.concurrency_timeout, 0) baseapp.update_request(req) resp = baseapp.handle_request(req) @@ -852,11 +852,11 @@ class TestProxyServer(unittest.TestCase): container_ring=FakeRing()) self.assertTrue(app.expose_info) - self.assertTrue(isinstance(app.disallowed_sections, list)) + self.assertIsInstance(app.disallowed_sections, list) self.assertEqual(1, len(app.disallowed_sections)) self.assertEqual(['swift.valid_api_versions'], app.disallowed_sections) - self.assertTrue(app.admin_key is None) + self.assertIsNone(app.admin_key) def test_get_info_controller(self): req = Request.blank('/info') @@ -866,11 +866,11 @@ class TestProxyServer(unittest.TestCase): controller, path_parts = app.get_controller(req) - self.assertTrue('version' in path_parts) - self.assertTrue(path_parts['version'] is None) - self.assertTrue('disallowed_sections' in path_parts) - self.assertTrue('expose_info' in path_parts) - self.assertTrue('admin_key' in path_parts) + self.assertIn('version', path_parts) + self.assertIsNone(path_parts['version']) + self.assertIn('disallowed_sections', path_parts) + self.assertIn('expose_info', path_parts) + self.assertIn('admin_key', path_parts) self.assertEqual(controller.__name__, 'InfoController') @@ -947,8 +947,8 @@ class TestProxyServer(unittest.TestCase): except Exception as e1: app.exception_occurred(node, 'test1', 'test1 msg') line = logger.get_lines_for_level('error')[-1] - self.assertTrue('test1 server' in line) - self.assertTrue('test1 msg' in line) + self.assertIn('test1 server', line) + self.assertIn('test1 msg', line) log_args, log_kwargs = logger.log_dict['error'][-1] self.assertTrue(log_kwargs['exc_info']) self.assertEqual(log_kwargs['exc_info'][1], e1) @@ -961,8 +961,8 @@ class TestProxyServer(unittest.TestCase): app.exception_occurred(node, 'test2', 'test2 msg', level=logging.WARNING) line = logger.get_lines_for_level('warning')[-1] - self.assertTrue('test2 server' in line) - self.assertTrue('test2 msg' in line) + self.assertIn('test2 server', line) + self.assertIn('test2 msg', line) log_args, log_kwargs = logger.log_dict['warning'][-1] self.assertTrue(log_kwargs['exc_info']) self.assertEqual(log_kwargs['exc_info'][1], e2) @@ -980,8 +980,8 @@ class TestProxyServer(unittest.TestCase): app.exception_occurred(node, 'test3', 'test3 msg', level=logging.WARNING, exc_info=e3_info) line = logger.get_lines_for_level('warning')[-1] - self.assertTrue('test3 server' in line) - self.assertTrue('test3 msg' in line) + self.assertIn('test3 server', line) + self.assertIn('test3 msg', line) log_args, log_kwargs = logger.log_dict['warning'][-1] self.assertTrue(log_kwargs['exc_info']) self.assertEqual(log_kwargs['exc_info'][1], e3) @@ -1011,7 +1011,7 @@ class TestProxyServer(unittest.TestCase): '/v1.0/a/c/o']: req = Request.blank(path) controller, path_parts = app.get_controller(req) - self.assertTrue(controller is not None) + self.assertIsNotNone(controller) # Ensure settings valid API version constraint works for version in ["42", 42]: @@ -1025,7 +1025,7 @@ class TestProxyServer(unittest.TestCase): req = Request.blank('/%s/a' % version) controller, _ = app.get_controller(req) - self.assertTrue(controller is not None) + self.assertIsNotNone(controller) # In this case v1 is invalid req = Request.blank('/v1/a') @@ -1379,7 +1379,7 @@ class TestObjectController(unittest.TestCase): try: df.open() except DiskFileNotExist as e: - self.assertTrue(float(e.timestamp) > 0) + self.assertGreater(float(e.timestamp), 0) else: self.fail('did not raise DiskFileNotExist') @@ -1456,7 +1456,7 @@ class TestObjectController(unittest.TestCase): self.assertEqual(ct, 'multipart/byteranges') boundary = dict(params).get('boundary') - self.assertTrue(boundary is not None) + self.assertIsNotNone(boundary) got_mime_docs = [] for mime_doc_fh in iter_multipart_mime_documents(StringIO(res.body), @@ -1652,12 +1652,12 @@ class TestObjectController(unittest.TestCase): pass self.assertEqual(res.status_int, 206) - self.assertTrue(kaboomed[0] > 0) # sanity check + self.assertGreater(kaboomed[0], 0) # sanity check ct, params = parse_content_type(res.headers['Content-Type']) self.assertEqual(ct, 'multipart/byteranges') # sanity check boundary = dict(params).get('boundary') - self.assertTrue(boundary is not None) # sanity check + self.assertIsNotNone(boundary) # sanity check got_byteranges = [] for mime_doc_fh in iter_multipart_mime_documents(StringIO(body), boundary): @@ -1723,12 +1723,12 @@ class TestObjectController(unittest.TestCase): body = ''.join(res.app_iter) self.assertEqual(res.status_int, 206) - self.assertTrue(kaboomed[0] >= 1) # sanity check + self.assertGreaterEqual(kaboomed[0], 1) # sanity check ct, params = parse_content_type(res.headers['Content-Type']) self.assertEqual(ct, 'multipart/byteranges') # sanity check boundary = dict(params).get('boundary') - self.assertTrue(boundary is not None) # sanity check + self.assertIsNotNone(boundary) # sanity check got_byteranges = [] for mime_doc_fh in iter_multipart_mime_documents(StringIO(body), boundary): @@ -1761,12 +1761,12 @@ class TestObjectController(unittest.TestCase): body = ''.join(res.app_iter) self.assertEqual(res.status_int, 206) - self.assertTrue(kaboomed[0] >= 1) # sanity check + self.assertGreaterEqual(kaboomed[0], 1) # sanity check ct, params = parse_content_type(res.headers['Content-Type']) self.assertEqual(ct, 'multipart/byteranges') # sanity check boundary = dict(params).get('boundary') - self.assertTrue(boundary is not None) # sanity check + self.assertIsNotNone(boundary) # sanity check got_byteranges = [] for mime_doc_fh in iter_multipart_mime_documents(StringIO(body), boundary): @@ -1860,7 +1860,7 @@ class TestObjectController(unittest.TestCase): # verify at least 2 puts made it all the way to the end of 2nd # phase, ie at least 2 .durable statuses were written num_durable_puts = sum(d is True for d in got_durable) - self.assertTrue(num_durable_puts >= 2) + self.assertGreaterEqual(num_durable_puts, 2) @unpatch_policies def test_PUT_ec_multiple_segments(self): @@ -1948,7 +1948,7 @@ class TestObjectController(unittest.TestCase): # verify at least 2 puts made it all the way to the end of 2nd # phase, ie at least 2 .durable statuses were written num_durable_puts = sum(d is True for d in got_durable) - self.assertTrue(num_durable_puts >= 2) + self.assertGreaterEqual(num_durable_puts, 2) @unpatch_policies def test_PUT_ec_object_etag_mismatch(self): @@ -2353,8 +2353,8 @@ class TestObjectController(unittest.TestCase): # our EC segment size is 4 KiB, so this is multiple (3) segments; # we'll verify that with a sanity check obj = 'a moose once bit my sister' * 400 - self.assertTrue( - len(obj) > POLICIES.get_by_name("ec").ec_segment_size * 2, + self.assertGreater( + len(obj), POLICIES.get_by_name("ec").ec_segment_size * 2, "object is too small for proper testing") prolis = _test_sockets[0] @@ -3300,9 +3300,9 @@ class TestObjectController(unittest.TestCase): self.assertEqual(res.status[:len(str(expected))], str(expected)) if expected < 400: - self.assertTrue('x-works' in res.headers) + self.assertIn('x-works', res.headers) self.assertEqual(res.headers['x-works'], 'yes') - self.assertTrue('accept-ranges' in res.headers) + self.assertIn('accept-ranges', res.headers) self.assertEqual(res.headers['accept-ranges'], 'bytes') test_status_map((200, 200, 200, 404, 404), 200) @@ -3621,7 +3621,7 @@ class TestObjectController(unittest.TestCase): resp.body except ChunkReadTimeout: got_exc = True - self.assertTrue(not got_exc) + self.assertFalse(got_exc) self.app.recoverable_node_timeout = 0.1 set_http_connect(200, 200, 200, slow=1.0) resp = req.get_response(self.app) @@ -3668,7 +3668,7 @@ class TestObjectController(unittest.TestCase): self.assertEqual(resp.body, 'lalala') except ChunkReadTimeout: got_exc = True - self.assertTrue(not got_exc) + self.assertFalse(got_exc) set_http_connect(200, 200, 200, body='lalala', slow=[1.0, 1.0], etags=['a', 'a', 'a']) @@ -3678,7 +3678,7 @@ class TestObjectController(unittest.TestCase): self.assertEqual(resp.body, 'lalala') except ChunkReadTimeout: got_exc = True - self.assertTrue(not got_exc) + self.assertFalse(got_exc) set_http_connect(200, 200, 200, body='lalala', slow=[1.0, 1.0], etags=['a', 'b', 'a']) @@ -3688,7 +3688,7 @@ class TestObjectController(unittest.TestCase): self.assertEqual(resp.body, 'lalala') except ChunkReadTimeout: got_exc = True - self.assertTrue(not got_exc) + self.assertFalse(got_exc) req = Request.blank('/v1/a/c/o', environ={'REQUEST_METHOD': 'GET'}) set_http_connect(200, 200, 200, body='lalala', @@ -3863,11 +3863,11 @@ class TestObjectController(unittest.TestCase): object_ring = self.app.get_object_ring(None) first_nodes = list(self.app.iter_nodes(object_ring, 0)) second_nodes = list(self.app.iter_nodes(object_ring, 0)) - self.assertTrue(first_nodes[0] in second_nodes) + self.assertIn(first_nodes[0], second_nodes) self.app.error_limit(first_nodes[0], 'test') second_nodes = list(self.app.iter_nodes(object_ring, 0)) - self.assertTrue(first_nodes[0] not in second_nodes) + self.assertNotIn(first_nodes[0], second_nodes) def test_iter_nodes_gives_extra_if_error_limited_inline(self): object_ring = self.app.get_object_ring(None) @@ -3918,7 +3918,7 @@ class TestObjectController(unittest.TestCase): req = Request.blank('/v1/a/c/o', environ={'REQUEST_METHOD': 'GET'}) resp = controller.best_response(req, [200] * 3, ['OK'] * 3, [''] * 3, 'Object') - self.assertEqual(resp.etag, None) + self.assertIsNone(resp.etag) resp = controller.best_response(req, [200] * 3, ['OK'] * 3, [''] * 3, 'Object', etag='68b329da9893e34099c7d8ad5cb9c940' @@ -4414,7 +4414,7 @@ class TestObjectController(unittest.TestCase): headers = readuntil2crlfs(fd) exp = 'HTTP/1.1 204' self.assertEqual(headers[:len(exp)], exp) - self.assertTrue('\r\nContent-Length: 0\r\n' in headers) + self.assertIn('\r\nContent-Length: 0\r\n', headers) @unpatch_policies def test_chunked_put_utf8_all_the_way_down(self): @@ -4449,7 +4449,7 @@ class TestObjectController(unittest.TestCase): exp = 'HTTP/1.1 200' self.assertEqual(headers[:len(exp)], exp) containers = fd.read().split('\n') - self.assertTrue(ustr in containers) + self.assertIn(ustr, containers) # List account with ustr container (test json) sock = connect_tcp(('localhost', prolis.getsockname()[1])) fd = sock.makefile() @@ -4461,7 +4461,7 @@ class TestObjectController(unittest.TestCase): exp = 'HTTP/1.1 200' self.assertEqual(headers[:len(exp)], exp) listing = json.loads(fd.read()) - self.assertTrue(ustr.decode('utf8') in [l['name'] for l in listing]) + self.assertIn(ustr.decode('utf8'), [l['name'] for l in listing]) # List account with ustr container (test xml) sock = connect_tcp(('localhost', prolis.getsockname()[1])) fd = sock.makefile() @@ -4472,7 +4472,7 @@ class TestObjectController(unittest.TestCase): headers = readuntil2crlfs(fd) exp = 'HTTP/1.1 200' self.assertEqual(headers[:len(exp)], exp) - self.assertTrue('