From ce9e56a6d17ccab33d7d7c9f0cdff6a96b37fa31 Mon Sep 17 00:00:00 2001
From: Tim Burke <tim.burke@gmail.com>
Date: Wed, 7 Feb 2024 22:51:27 +0000
Subject: [PATCH] lint: Consistently use assertIsInstance

This has been available since py32 and was backported to py27; there
is no point in us continuing to carry the old idiom forward.

Change-Id: I21f64b8b2970e2dd5f56836f7f513e7895a5dc88
---
 test/functional/s3api/test_bucket.py          |  2 +-
 .../common/middleware/s3api/test_etree.py     |  2 +-
 .../middleware/s3api/test_subresource.py      | 11 +++---
 test/unit/common/middleware/test_memcache.py  |  2 +-
 test/unit/common/test_daemon.py               |  2 +-
 test/unit/common/test_db_replicator.py        |  4 +--
 test/unit/common/test_exceptions.py           |  2 +-
 test/unit/common/test_internal_client.py      |  4 +--
 test/unit/common/test_manager.py              |  2 +-
 test/unit/common/test_storage_policy.py       |  2 +-
 test/unit/common/test_swob.py                 |  2 +-
 test/unit/common/test_utils.py                | 17 ++++-----
 test/unit/common/test_wsgi.py                 | 35 +++++++++----------
 test/unit/container/test_sync.py              |  2 +-
 test/unit/obj/test_diskfile.py                |  6 ++--
 test/unit/obj/test_ssync_sender.py            |  4 +--
 tox.ini                                       |  3 +-
 17 files changed, 47 insertions(+), 55 deletions(-)

diff --git a/test/functional/s3api/test_bucket.py b/test/functional/s3api/test_bucket.py
index b577d4bd0a..44332ee951 100644
--- a/test/functional/s3api/test_bucket.py
+++ b/test/functional/s3api/test_bucket.py
@@ -40,7 +40,7 @@ class TestS3ApiBucket(S3ApiBaseBoto3):
         self.assertEqual(len(resp_objects), len(req_objects))
         for i, obj in enumerate(resp_objects):
             self.assertEqual(obj['Key'], req_objects[i])
-            self.assertEqual(type(obj['LastModified']), datetime.datetime)
+            self.assertIsInstance(obj['LastModified'], datetime.datetime)
             self.assertIn('ETag', obj)
             self.assertIn('Size', obj)
             self.assertEqual(obj['StorageClass'], 'STANDARD')
diff --git a/test/unit/common/middleware/s3api/test_etree.py b/test/unit/common/middleware/s3api/test_etree.py
index 63cb5c7ffc..dd8e9f80ee 100644
--- a/test/unit/common/middleware/s3api/test_etree.py
+++ b/test/unit/common/middleware/s3api/test_etree.py
@@ -58,7 +58,7 @@ class TestS3ApiEtree(unittest.TestCase):
         elem = etree.Element('Test')
         sub = etree.SubElement(elem, 'FOO')
         sub.text = '\xef\xbc\xa1'
-        self.assertTrue(isinstance(sub.text, str))
+        self.assertIsInstance(sub.text, str)
         xml_string = etree.tostring(elem)
         self.assertIsInstance(xml_string, bytes)
 
diff --git a/test/unit/common/middleware/s3api/test_subresource.py b/test/unit/common/middleware/s3api/test_subresource.py
index c881547cc7..bdfb916c8e 100644
--- a/test/unit/common/middleware/s3api/test_subresource.py
+++ b/test/unit/common/middleware/s3api/test_subresource.py
@@ -228,7 +228,7 @@ class TestS3ApiSubresource(unittest.TestCase):
                    json.dumps(access_control_policy)}
         acl = decode_acl('container', headers, self.allow_no_owner)
 
-        self.assertEqual(type(acl), ACL)
+        self.assertIsInstance(acl, ACL)
         self.assertEqual(acl.owner.id, 'test:tester')
         self.assertEqual(len(acl.grants), 1)
         self.assertEqual(str(acl.grants[0].grantee), 'test:tester')
@@ -243,7 +243,7 @@ class TestS3ApiSubresource(unittest.TestCase):
                    json.dumps(access_control_policy)}
         acl = decode_acl('object', headers, self.allow_no_owner)
 
-        self.assertEqual(type(acl), ACL)
+        self.assertIsInstance(acl, ACL)
         self.assertEqual(acl.owner.id, 'test:tester')
         self.assertEqual(len(acl.grants), 1)
         self.assertEqual(str(acl.grants[0].grantee), 'test:tester')
@@ -253,14 +253,14 @@ class TestS3ApiSubresource(unittest.TestCase):
         headers = {}
         acl = decode_acl('container', headers, self.allow_no_owner)
 
-        self.assertEqual(type(acl), ACL)
+        self.assertIsInstance(acl, ACL)
         self.assertIsNone(acl.owner.id)
         self.assertEqual(len(acl.grants), 0)
 
     def test_decode_acl_empty_list(self):
         headers = {sysmeta_header('container', 'acl'): '[]'}
         acl = decode_acl('container', headers, self.allow_no_owner)
-        self.assertEqual(type(acl), ACL)
+        self.assertIsInstance(acl, ACL)
         self.assertIsNone(acl.owner.id)
         self.assertEqual(len(acl.grants), 0)
 
@@ -333,8 +333,7 @@ class TestS3ApiSubresource(unittest.TestCase):
             for (expected_permission, expected_grantee), \
                     (permission, grantee) in assertions:
                 self.assertEqual(expected_permission, permission)
-                self.assertTrue(
-                    isinstance(grantee, expected_grantee.__class__))
+                self.assertIsInstance(grantee, expected_grantee.__class__)
                 if isinstance(grantee, User):
                     self.assertEqual(expected_grantee.id, grantee.id)
                     self.assertEqual(expected_grantee.display_name,
diff --git a/test/unit/common/middleware/test_memcache.py b/test/unit/common/middleware/test_memcache.py
index c74ac32ce8..21c8d72963 100644
--- a/test/unit/common/middleware/test_memcache.py
+++ b/test/unit/common/middleware/test_memcache.py
@@ -46,7 +46,7 @@ class TestCacheMiddleware(unittest.TestCase):
         req = Request.blank('/something', environ={'REQUEST_METHOD': 'GET'})
         resp = self.app(req.environ, start_response)
         self.assertTrue('swift.cache' in resp)
-        self.assertTrue(isinstance(resp['swift.cache'], MemcacheRing))
+        self.assertIsInstance(resp['swift.cache'], MemcacheRing)
 
     def test_filter_factory(self):
         factory = memcache.filter_factory({'max_connections': '3'},
diff --git a/test/unit/common/test_daemon.py b/test/unit/common/test_daemon.py
index fc49fd4e43..ac65e279db 100644
--- a/test/unit/common/test_daemon.py
+++ b/test/unit/common/test_daemon.py
@@ -59,7 +59,7 @@ class TestDaemon(unittest.TestCase):
     def test_create(self):
         d = daemon.Daemon({})
         self.assertEqual(d.conf, {})
-        self.assertTrue(isinstance(d.logger, utils.LogAdapter))
+        self.assertIsInstance(d.logger, utils.LogAdapter)
 
     def test_stubs(self):
         d = daemon.Daemon({})
diff --git a/test/unit/common/test_db_replicator.py b/test/unit/common/test_db_replicator.py
index caded9c49e..a9c3dac0a0 100644
--- a/test/unit/common/test_db_replicator.py
+++ b/test/unit/common/test_db_replicator.py
@@ -1514,11 +1514,11 @@ class TestDBReplicator(unittest.TestCase):
                                           mount_check=False)
         with unit.mock_check_drive(isdir=True):
             resp = rpc.complete_rsync(drive, db_file, args)
-        self.assertTrue(isinstance(resp, HTTPException))
+        self.assertIsInstance(resp, HTTPException)
         self.assertEqual(404, resp.status_int)
         with unit.mock_check_drive(isdir=True):
             resp = rpc.complete_rsync(drive, 'new_db_file', args)
-        self.assertTrue(isinstance(resp, HTTPException))
+        self.assertIsInstance(resp, HTTPException)
         self.assertEqual(404, resp.status_int)
 
     def test_complete_rsync(self):
diff --git a/test/unit/common/test_exceptions.py b/test/unit/common/test_exceptions.py
index f369be2017..0a5c8b4c21 100644
--- a/test/unit/common/test_exceptions.py
+++ b/test/unit/common/test_exceptions.py
@@ -27,7 +27,7 @@ class TestExceptions(unittest.TestCase):
 
     def test_replication_lock_timeout(self):
         with exceptions.ReplicationLockTimeout(15, 'test') as exc:
-            self.assertTrue(isinstance(exc, exceptions.MessageTimeout))
+            self.assertIsInstance(exc, exceptions.MessageTimeout)
 
     def test_client_exception(self):
         strerror = 'test: HTTP://random:888/randompath?foo=1 666 reason: ' \
diff --git a/test/unit/common/test_internal_client.py b/test/unit/common/test_internal_client.py
index e32d16f9a2..f5580f0ed8 100644
--- a/test/unit/common/test_internal_client.py
+++ b/test/unit/common/test_internal_client.py
@@ -2036,7 +2036,7 @@ class TestSimpleClient(unittest.TestCase):
                 self.assertEqual(1, len(args))
                 self.assertEqual(1, len(kwargs))
                 self.assertEqual(0.1, kwargs['timeout'])
-                self.assertTrue(isinstance(args[0], urllib2.Request))
+                self.assertIsInstance(args[0], urllib2.Request)
                 self.assertEqual(proxy_host, args[0].host)
                 if six.PY2:
                     self.assertEqual(scheme, args[0].type)
@@ -2061,7 +2061,7 @@ class TestSimpleClient(unittest.TestCase):
                 self.assertEqual(1, len(args))
                 self.assertEqual(1, len(kwargs))
                 self.assertEqual(0.1, kwargs['timeout'])
-                self.assertTrue(isinstance(args[0], urllib2.Request))
+                self.assertIsInstance(args[0], urllib2.Request)
                 self.assertEqual(proxy_host, args[0].host)
                 if six.PY2:
                     self.assertEqual(scheme, args[0].type)
diff --git a/test/unit/common/test_manager.py b/test/unit/common/test_manager.py
index 674f312dd0..4ec0fb87dc 100644
--- a/test/unit/common/test_manager.py
+++ b/test/unit/common/test_manager.py
@@ -1660,7 +1660,7 @@ class TestManager(unittest.TestCase):
         m = manager.Manager(['test'])
         self.assertEqual(len(m.servers), 1)
         server = m.servers.pop()
-        self.assertTrue(isinstance(server, manager.Server))
+        self.assertIsInstance(server, manager.Server)
         self.assertEqual(server.server, 'test-server')
         # test multi-server and simple dedupe
         servers = ['object-replicator', 'object-auditor',
diff --git a/test/unit/common/test_storage_policy.py b/test/unit/common/test_storage_policy.py
index 93311a5251..2b2f6978c3 100644
--- a/test/unit/common/test_storage_policy.py
+++ b/test/unit/common/test_storage_policy.py
@@ -1140,7 +1140,7 @@ class TestStoragePolicies(unittest.TestCase):
                 ring = policies.get_object_ring(int(policy), '/path/not/used')
                 self.assertEqual(ring.ring_name, policy.ring_name)
                 self.assertTrue(policy.object_ring)
-                self.assertTrue(isinstance(policy.object_ring, NamedFakeRing))
+                self.assertIsInstance(policy.object_ring, NamedFakeRing)
 
         def blow_up(*args, **kwargs):
             raise Exception('kaboom!')
diff --git a/test/unit/common/test_swob.py b/test/unit/common/test_swob.py
index 3dd718ab1b..8768bc5e61 100644
--- a/test/unit/common/test_swob.py
+++ b/test/unit/common/test_swob.py
@@ -835,7 +835,7 @@ class TestRequest(unittest.TestCase):
         req = swob.Request.blank('/hi/there', body='hi')
 
         req.if_unmodified_since = 0
-        self.assertTrue(isinstance(req.if_unmodified_since, datetime.datetime))
+        self.assertIsInstance(req.if_unmodified_since, datetime.datetime)
         if_unmodified_since = req.if_unmodified_since
         req.if_unmodified_since = if_unmodified_since
         self.assertEqual(if_unmodified_since, req.if_unmodified_since)
diff --git a/test/unit/common/test_utils.py b/test/unit/common/test_utils.py
index f48eaf03d3..346f78e7a0 100644
--- a/test/unit/common/test_utils.py
+++ b/test/unit/common/test_utils.py
@@ -2024,10 +2024,8 @@ log_name = %(yarr)s'''
             utils.capture_stdio(logger)
             self.assertTrue(utils.sys.excepthook is not None)
             self.assertEqual(utils.os.closed_fds, utils.sys.stdio_fds)
-            self.assertTrue(
-                isinstance(utils.sys.stdout, utils.LoggerFileObject))
-            self.assertTrue(
-                isinstance(utils.sys.stderr, utils.LoggerFileObject))
+            self.assertIsInstance(utils.sys.stdout, utils.LoggerFileObject)
+            self.assertIsInstance(utils.sys.stderr, utils.LoggerFileObject)
 
             # reset; test same args, but exc when trying to close stdio
             utils.os = MockOs(raise_funcs=('dup2',))
@@ -2037,10 +2035,8 @@ log_name = %(yarr)s'''
             utils.capture_stdio(logger)
             self.assertTrue(utils.sys.excepthook is not None)
             self.assertEqual(utils.os.closed_fds, [])
-            self.assertTrue(
-                isinstance(utils.sys.stdout, utils.LoggerFileObject))
-            self.assertTrue(
-                isinstance(utils.sys.stderr, utils.LoggerFileObject))
+            self.assertIsInstance(utils.sys.stdout, utils.LoggerFileObject)
+            self.assertIsInstance(utils.sys.stderr, utils.LoggerFileObject)
 
             # reset; test some other args
             utils.os = MockOs()
@@ -3480,7 +3476,7 @@ cluster_dfw1 = http://dfw1.host/v1/
                     utils.fsync_dir(tempdir)
             self.assertTrue(_mock_fsync.called)
             self.assertTrue(_mock_close.called)
-            self.assertTrue(isinstance(_mock_fsync.call_args[0][0], int))
+            self.assertIsInstance(_mock_fsync.call_args[0][0], int)
             self.assertEqual(_mock_fsync.call_args[0][0],
                              _mock_close.call_args[0][0])
 
@@ -4728,8 +4724,7 @@ class TestStatsdLogging(unittest.TestCase):
         logger = utils.get_logger({'log_statsd_host': 'some.host.com'},
                                   'some-name', log_route='some-route')
         # white-box construction validation
-        self.assertTrue(isinstance(logger.logger.statsd_client,
-                                   utils.StatsdClient))
+        self.assertIsInstance(logger.logger.statsd_client, utils.StatsdClient)
         self.assertEqual(logger.logger.statsd_client._host, 'some.host.com')
         self.assertEqual(logger.logger.statsd_client._port, 8125)
         self.assertEqual(logger.logger.statsd_client._prefix, 'some-name.')
diff --git a/test/unit/common/test_wsgi.py b/test/unit/common/test_wsgi.py
index b7cec635a5..3e364c901b 100644
--- a/test/unit/common/test_wsgi.py
+++ b/test/unit/common/test_wsgi.py
@@ -147,7 +147,6 @@ class TestWSGI(unittest.TestCase, ConfigAssertMixin):
             f.write(contents)
         app = wsgi.loadapp(conf_path)
         self.assertIsInstance(app, obj_server.ObjectController)
-        self.assertTrue(isinstance(app, obj_server.ObjectController))
         # N.B. paste config loading from *file* is already case-sensitive,
         # so, CLIENT_TIMEOUT/client_timeout are unique options
         self.assertEqual(1, app.client_timeout)
@@ -239,7 +238,7 @@ class TestWSGI(unittest.TestCase, ConfigAssertMixin):
         client_timeout = 2
         """
         app = wsgi.loadapp(wsgi.ConfigString(conf_body))
-        self.assertTrue(isinstance(app, obj_server.ObjectController))
+        self.assertIsInstance(app, obj_server.ObjectController)
         self.assertEqual(1, app.client_timeout)
         self.assertEqual(5, app.conn_timeout)
 
@@ -433,8 +432,8 @@ class TestWSGI(unittest.TestCase, ConfigAssertMixin):
                     conf_dir, 'proxy-server')
         # verify pipeline is catch_errors -> proxy-server
         expected = swift.common.middleware.catch_errors.CatchErrorMiddleware
-        self.assertTrue(isinstance(app, expected))
-        self.assertTrue(isinstance(app.app, swift.proxy.server.Application))
+        self.assertIsInstance(app, expected)
+        self.assertIsInstance(app.app, swift.proxy.server.Application)
         # config settings applied to app instance
         self.assertEqual(0.2, app.app.conn_timeout)
         # appconfig returns values from 'proxy-server' section
@@ -496,7 +495,7 @@ class TestWSGI(unittest.TestCase, ConfigAssertMixin):
             # test
             sock = wsgi.get_socket(conf)
             # assert
-            self.assertTrue(isinstance(sock, MockSocket))
+            self.assertIsInstance(sock, MockSocket)
             expected_socket_opts = {
                 socket.SOL_SOCKET: {
                     socket.SO_KEEPALIVE: 1,
@@ -634,9 +633,9 @@ class TestWSGI(unittest.TestCase, ConfigAssertMixin):
         args, kwargs = _wsgi.server.call_args
         server_sock, server_app, server_logger = args
         self.assertEqual(sock, server_sock)
-        self.assertTrue(isinstance(server_app, swift.proxy.server.Application))
+        self.assertIsInstance(server_app, swift.proxy.server.Application)
         self.assertEqual(20, server_app.client_timeout)
-        self.assertTrue(isinstance(server_logger, wsgi.NullLogger))
+        self.assertIsInstance(server_logger, wsgi.NullLogger)
         self.assertTrue('custom_pool' in kwargs)
         self.assertEqual(1000, kwargs['custom_pool'].size)
         self.assertEqual(30, kwargs['socket_timeout'])
@@ -685,9 +684,9 @@ class TestWSGI(unittest.TestCase, ConfigAssertMixin):
         args, kwargs = _wsgi.server.call_args
         server_sock, server_app, server_logger = args
         self.assertEqual(sock, server_sock)
-        self.assertTrue(isinstance(server_app, swift.proxy.server.Application))
+        self.assertIsInstance(server_app, swift.proxy.server.Application)
         self.assertEqual(2.5, server_app.client_timeout)
-        self.assertTrue(isinstance(server_logger, wsgi.NullLogger))
+        self.assertIsInstance(server_logger, wsgi.NullLogger)
         self.assertTrue('custom_pool' in kwargs)
         self.assertEqual(10, kwargs['custom_pool'].size)
         self.assertEqual(2.5, kwargs['socket_timeout'])
@@ -773,8 +772,8 @@ class TestWSGI(unittest.TestCase, ConfigAssertMixin):
         args, kwargs = _wsgi.server.call_args
         server_sock, server_app, server_logger = args
         self.assertEqual(sock, server_sock)
-        self.assertTrue(isinstance(server_app, swift.proxy.server.Application))
-        self.assertTrue(isinstance(server_logger, wsgi.NullLogger))
+        self.assertIsInstance(server_app, swift.proxy.server.Application)
+        self.assertIsInstance(server_logger, wsgi.NullLogger)
         self.assertTrue('custom_pool' in kwargs)
         self.assertEqual(30, kwargs['socket_timeout'])
         self.assertTrue('protocol' in kwargs)
@@ -823,7 +822,7 @@ class TestWSGI(unittest.TestCase, ConfigAssertMixin):
         args, kwargs = mock_server.call_args
         server_sock, server_app, server_logger = args
         self.assertEqual(sock, server_sock)
-        self.assertTrue(isinstance(server_app, swift.proxy.server.Application))
+        self.assertIsInstance(server_app, swift.proxy.server.Application)
         self.assertEqual(20, server_app.client_timeout)
         self.assertIsNone(server_logger)
         self.assertTrue('custom_pool' in kwargs)
@@ -1829,11 +1828,11 @@ class TestPipelineModification(unittest.TestCase):
                     modify_func):
                 app = wsgi.loadapp(conf_file, global_conf={})
             exp = swift.common.middleware.catch_errors.CatchErrorMiddleware
-            self.assertTrue(isinstance(app, exp), app)
+            self.assertIsInstance(app, exp)
             exp = swift.common.middleware.healthcheck.HealthCheckMiddleware
-            self.assertTrue(isinstance(app.app, exp), app.app)
+            self.assertIsInstance(app.app, exp)
             exp = swift.proxy.server.Application
-            self.assertTrue(isinstance(app.app.app, exp), app.app.app)
+            self.assertIsInstance(app.app.app, exp)
             # Everybody gets a reference to the final app, too
             self.assertIs(app.app.app, app._pipeline_final_app)
             self.assertIs(app.app.app, app._pipeline_request_logging_app)
@@ -1859,9 +1858,9 @@ class TestPipelineModification(unittest.TestCase):
 
             # the pipeline was untouched
             exp = swift.common.middleware.healthcheck.HealthCheckMiddleware
-            self.assertTrue(isinstance(app, exp), app)
+            self.assertIsInstance(app, exp)
             exp = swift.proxy.server.Application
-            self.assertTrue(isinstance(app.app, exp), app.app)
+            self.assertIsInstance(app.app, exp)
 
     def test_load_app_request_logging_app(self):
         config = """
@@ -2398,7 +2397,7 @@ class TestPipelineModification(unittest.TestCase):
             with open(conf_path, 'w') as f:
                 f.write(dedent(conf_body))
             app = wsgi.loadapp(conf_path)
-            self.assertTrue(isinstance(app, controller))
+            self.assertIsInstance(app, controller)
 
 
 if __name__ == '__main__':
diff --git a/test/unit/container/test_sync.py b/test/unit/container/test_sync.py
index dc1bead204..ab43f149c7 100644
--- a/test/unit/container/test_sync.py
+++ b/test/unit/container/test_sync.py
@@ -134,7 +134,7 @@ class TestContainerSync(unittest.TestCase):
         self.assertTrue(cs.container_ring is cring)
         self.assertTrue(mock_ic.called)
         conf_path, name, retry = mock_ic.call_args[0]
-        self.assertTrue(isinstance(conf_path, ConfigString))
+        self.assertIsInstance(conf_path, ConfigString)
         self.assertEqual(conf_path.contents.getvalue(),
                          dedent(sync.ic_conf_body))
         self.assertLogMessage('warning', 'internal_client_conf_path')
diff --git a/test/unit/obj/test_diskfile.py b/test/unit/obj/test_diskfile.py
index 851897762e..9a0d2cd3cf 100644
--- a/test/unit/obj/test_diskfile.py
+++ b/test/unit/obj/test_diskfile.py
@@ -1167,9 +1167,9 @@ class TestDiskFileRouter(unittest.TestCase):
         logger = debug_logger('test-' + self.__class__.__name__)
         df_router = diskfile.DiskFileRouter(conf, logger)
         manager_0 = df_router[POLICIES[0]]
-        self.assertTrue(isinstance(manager_0, diskfile.DiskFileManager))
+        self.assertIsInstance(manager_0, diskfile.DiskFileManager)
         manager_1 = df_router[POLICIES[1]]
-        self.assertTrue(isinstance(manager_1, diskfile.ECDiskFileManager))
+        self.assertIsInstance(manager_1, diskfile.ECDiskFileManager)
 
         # The DiskFileRouter should not have to load the policy again
         with mock.patch('swift.common.storage_policy.BaseStoragePolicy.' +
@@ -1177,7 +1177,7 @@ class TestDiskFileRouter(unittest.TestCase):
             manager_3 = df_router[POLICIES[0]]
             mock_load.assert_not_called()
             self.assertIs(manager_3, manager_0)
-            self.assertTrue(isinstance(manager_3, diskfile.DiskFileManager))
+            self.assertIsInstance(manager_3, diskfile.DiskFileManager)
 
     def test_invalid_policy_config(self):
         # verify that invalid policy diskfile configs are detected when the
diff --git a/test/unit/obj/test_ssync_sender.py b/test/unit/obj/test_ssync_sender.py
index 89dcd3211d..2de393a4d1 100644
--- a/test/unit/obj/test_ssync_sender.py
+++ b/test/unit/obj/test_ssync_sender.py
@@ -1391,7 +1391,7 @@ class TestSender(BaseTest):
         args, _kwargs = self.sender.send_put.call_args
         connection, path, df = args
         self.assertEqual(path, '/a/c/o')
-        self.assertTrue(isinstance(df, diskfile.DiskFile))
+        self.assertIsInstance(df, diskfile.DiskFile)
         self.assertEqual(expected, df.get_metadata())
         # note that the put line isn't actually sent since we mock send_put;
         # send_put is tested separately.
@@ -1525,7 +1525,7 @@ class TestSender(BaseTest):
         args, _kwargs = self.sender.send_put.call_args
         connection, path, df = args
         self.assertEqual(path, '/a/c/o')
-        self.assertTrue(isinstance(df, diskfile.DiskFile))
+        self.assertIsInstance(df, diskfile.DiskFile)
         self.assertEqual(expected, df.get_metadata())
         self.assertEqual(os.path.join(self.tx_testdir, 'dev/objects/9/',
                                       object_hash[-3:], object_hash),
diff --git a/tox.ini b/tox.ini
index 01bfcda6b1..e08e24cd19 100644
--- a/tox.ini
+++ b/tox.ini
@@ -146,7 +146,6 @@ commands = bandit -c bandit.yaml -r swift -n 5
 # it's not a bug that we aren't using all of hacking, ignore:
 # H101: Use TODO(NAME)
 # H202: assertRaises Exception too broad
-# H211/H212: Use assert{Is,IsNot}instance
 # H214: Use assertIn/NotIn ...
 # H216: The unittest.mock module should be used rather than ...
 # H301: one import per line
@@ -162,7 +161,7 @@ commands = bandit -c bandit.yaml -r swift -n 5
 # Swift team needs to decide if they want to enable either of these:
 # W503: line break before binary operator
 # W504: line break after binary operator
-ignore = H101,H202,H211,H212,H214,H216,H301,H306,H404,H405,H501,W503,W504,E402,E731,E741
+ignore = H101,H202,H214,H216,H301,H306,H404,H405,H501,W503,W504,E402,E731,E741
 exclude = .venv,.tox,dist,*egg
 filename = *.py,bin/*
 show-source = True