remove dependency on old mock external module (#1201)

diff --git a/cassandra/cqlengine/functions.py b/cassandra/cqlengine/functions.py
index 5cb0f67..acbbaa6 100644
--- a/cassandra/cqlengine/functions.py
+++ b/cassandra/cqlengine/functions.py
@@ -17,16 +17,8 @@
 
 from cassandra.cqlengine import UnicodeMixin, ValidationError
 
-import sys
-
-if sys.version_info >= (2, 7):
-    def get_total_seconds(td):
-        return td.total_seconds()
-else:
-    def get_total_seconds(td):
-        # integer division used here to emulate built-in total_seconds
-        return ((86400 * td.days + td.seconds) * 10 ** 6 + td.microseconds) / 10 ** 6
-
+def get_total_seconds(td):
+    return td.total_seconds()
 
 class QueryValue(UnicodeMixin):
     """
diff --git a/setup.py b/setup.py
index fa93fc5..9d7f6ef 100644
--- a/setup.py
+++ b/setup.py
@@ -436,7 +436,7 @@
         include_package_data=True,
         install_requires=dependencies,
         extras_require=_EXTRAS_REQUIRE,
-        tests_require=['nose', 'mock>=2.0.0', 'PyYAML', 'pytz', 'sure'],
+        tests_require=['nose', 'PyYAML', 'pytz', 'sure'],
         classifiers=[
             'Development Status :: 5 - Production/Stable',
             'Intended Audience :: Developers',
diff --git a/test-requirements.txt b/test-requirements.txt
index e3f8e1c..c82e6a6 100644
--- a/test-requirements.txt
+++ b/test-requirements.txt
@@ -1,7 +1,6 @@
 -r requirements.txt
 scales
 pynose
-mock>1.1
 ccm>=2.1.2
 pytz
 sure
diff --git a/tests/integration/cloud/test_cloud.py b/tests/integration/cloud/test_cloud.py
index 03ff823..1c1e75c 100644
--- a/tests/integration/cloud/test_cloud.py
+++ b/tests/integration/cloud/test_cloud.py
@@ -28,7 +28,7 @@
 from cassandra.auth import PlainTextAuthProvider
 from cassandra.policies import TokenAwarePolicy, DCAwareRoundRobinPolicy, ConstantReconnectionPolicy
 
-from mock import patch
+from unittest.mock import patch
 
 from tests.integration import requirescloudproxy
 from tests.util import wait_until_not_raised
diff --git a/tests/integration/cqlengine/management/test_compaction_settings.py b/tests/integration/cqlengine/management/test_compaction_settings.py
index 554d941..ac56e4b 100644
--- a/tests/integration/cqlengine/management/test_compaction_settings.py
+++ b/tests/integration/cqlengine/management/test_compaction_settings.py
@@ -13,7 +13,7 @@
 # limitations under the License.
 
 import copy
-from mock import patch
+from unittest.mock import patch
 
 from cassandra.cqlengine import columns
 from cassandra.cqlengine.management import drop_table, sync_table, _get_table_metadata, _update_options
diff --git a/tests/integration/cqlengine/management/test_management.py b/tests/integration/cqlengine/management/test_management.py
index 6655a78..eafcf5d 100644
--- a/tests/integration/cqlengine/management/test_management.py
+++ b/tests/integration/cqlengine/management/test_management.py
@@ -13,7 +13,7 @@
 # limitations under the License.
 import unittest
 
-import mock
+from unittest import mock
 import logging
 from packaging.version import Version
 from cassandra.cqlengine.connection import get_session, get_cluster
diff --git a/tests/integration/cqlengine/model/test_model.py b/tests/integration/cqlengine/model/test_model.py
index 859facf..168de4a 100644
--- a/tests/integration/cqlengine/model/test_model.py
+++ b/tests/integration/cqlengine/model/test_model.py
@@ -13,7 +13,7 @@
 # limitations under the License.
 import unittest
 
-from mock import patch
+from unittest.mock import patch
 
 from cassandra.cqlengine import columns, CQLEngineException
 from cassandra.cqlengine.management import sync_table, drop_table, create_keyspace_simple, drop_keyspace
diff --git a/tests/integration/cqlengine/model/test_polymorphism.py b/tests/integration/cqlengine/model/test_polymorphism.py
index e78fef4..f277033 100644
--- a/tests/integration/cqlengine/model/test_polymorphism.py
+++ b/tests/integration/cqlengine/model/test_polymorphism.py
@@ -13,7 +13,7 @@
 # limitations under the License.
 
 import uuid
-import mock
+from unittest import mock
 
 from cassandra.cqlengine import columns
 from cassandra.cqlengine import models
diff --git a/tests/integration/cqlengine/model/test_udts.py b/tests/integration/cqlengine/model/test_udts.py
index 1e3adf9..30a2841 100644
--- a/tests/integration/cqlengine/model/test_udts.py
+++ b/tests/integration/cqlengine/model/test_udts.py
@@ -15,7 +15,7 @@
 
 from datetime import datetime, date, time
 from decimal import Decimal
-from mock import Mock
+from unittest.mock import Mock
 from uuid import UUID, uuid4
 
 from cassandra.cqlengine.models import Model
diff --git a/tests/integration/cqlengine/model/test_updates.py b/tests/integration/cqlengine/model/test_updates.py
index 17eed8d..b03f6a5 100644
--- a/tests/integration/cqlengine/model/test_updates.py
+++ b/tests/integration/cqlengine/model/test_updates.py
@@ -12,9 +12,9 @@
 # See the License for the specific language governing permissions and
 # limitations under the License.
 
+from unittest.mock import patch
 from uuid import uuid4
 
-from mock import patch
 from cassandra.cqlengine import ValidationError
 
 from tests.integration import greaterthancass21
diff --git a/tests/integration/cqlengine/query/test_batch_query.py b/tests/integration/cqlengine/query/test_batch_query.py
index f0c9c43..db9bab8 100644
--- a/tests/integration/cqlengine/query/test_batch_query.py
+++ b/tests/integration/cqlengine/query/test_batch_query.py
@@ -12,7 +12,7 @@
 # See the License for the specific language governing permissions and
 # limitations under the License.
 
-import mock
+from unittest import mock
 
 from cassandra.cqlengine import columns
 from cassandra.cqlengine.connection import NOT_SET
diff --git a/tests/integration/cqlengine/query/test_queryset.py b/tests/integration/cqlengine/query/test_queryset.py
index ec5044b..7b1b428 100644
--- a/tests/integration/cqlengine/query/test_queryset.py
+++ b/tests/integration/cqlengine/query/test_queryset.py
@@ -24,7 +24,7 @@
 from cassandra import InvalidRequest
 from tests.integration.cqlengine.base import BaseCassEngTestCase
 from cassandra.cqlengine.connection import NOT_SET
-import mock
+from unittest import mock
 from cassandra.cqlengine import functions
 from cassandra.cqlengine.management import sync_table, drop_table
 from cassandra.cqlengine.models import Model
diff --git a/tests/integration/cqlengine/test_batch_query.py b/tests/integration/cqlengine/test_batch_query.py
index 7887949..4a1cd63 100644
--- a/tests/integration/cqlengine/test_batch_query.py
+++ b/tests/integration/cqlengine/test_batch_query.py
@@ -19,7 +19,7 @@
 from cassandra.cqlengine.query import BatchQuery
 from tests.integration.cqlengine.base import BaseCassEngTestCase
 
-from mock import patch
+from unittest.mock import patch
 
 class TestMultiKeyModel(Model):
     partition   = columns.Integer(primary_key=True)
diff --git a/tests/integration/cqlengine/test_consistency.py b/tests/integration/cqlengine/test_consistency.py
index dc0aa32..c979718 100644
--- a/tests/integration/cqlengine/test_consistency.py
+++ b/tests/integration/cqlengine/test_consistency.py
@@ -12,7 +12,7 @@
 # See the License for the specific language governing permissions and
 # limitations under the License.
 
-import mock
+from unittest import mock
 from uuid import uuid4
 
 from cassandra import ConsistencyLevel as CL, ConsistencyLevel
diff --git a/tests/integration/cqlengine/test_ifexists.py b/tests/integration/cqlengine/test_ifexists.py
index 1189bc0..1674bbd 100644
--- a/tests/integration/cqlengine/test_ifexists.py
+++ b/tests/integration/cqlengine/test_ifexists.py
@@ -12,8 +12,7 @@
 # See the License for the specific language governing permissions and
 # limitations under the License.
 import unittest
-
-import mock
+from unittest import mock
 from uuid import uuid4
 
 from cassandra.cqlengine import columns
diff --git a/tests/integration/cqlengine/test_ifnotexists.py b/tests/integration/cqlengine/test_ifnotexists.py
index 260e132..5b24070 100644
--- a/tests/integration/cqlengine/test_ifnotexists.py
+++ b/tests/integration/cqlengine/test_ifnotexists.py
@@ -12,8 +12,7 @@
 # See the License for the specific language governing permissions and
 # limitations under the License.
 import unittest
-
-import mock
+from unittest import mock
 from uuid import uuid4
 
 from cassandra.cqlengine import columns
diff --git a/tests/integration/cqlengine/test_lwt_conditional.py b/tests/integration/cqlengine/test_lwt_conditional.py
index 45dbf86..6f2e133 100644
--- a/tests/integration/cqlengine/test_lwt_conditional.py
+++ b/tests/integration/cqlengine/test_lwt_conditional.py
@@ -12,8 +12,7 @@
 # See the License for the specific language governing permissions and
 # limitations under the License.
 import unittest
-
-import mock
+from unittest import mock
 from uuid import uuid4
 
 from cassandra.cqlengine import columns
diff --git a/tests/integration/cqlengine/test_timestamp.py b/tests/integration/cqlengine/test_timestamp.py
index abf751e..bfed7f9 100644
--- a/tests/integration/cqlengine/test_timestamp.py
+++ b/tests/integration/cqlengine/test_timestamp.py
@@ -13,7 +13,7 @@
 # limitations under the License.
 
 from datetime import timedelta, datetime
-import mock
+from unittest import mock
 import sure
 from uuid import uuid4
 
diff --git a/tests/integration/cqlengine/test_ttl.py b/tests/integration/cqlengine/test_ttl.py
index 55457ff..bd0c7f6 100644
--- a/tests/integration/cqlengine/test_ttl.py
+++ b/tests/integration/cqlengine/test_ttl.py
@@ -23,7 +23,7 @@
 from cassandra.cqlengine.models import Model
 from uuid import uuid4
 from cassandra.cqlengine import columns
-import mock
+from unittest import mock
 from cassandra.cqlengine.connection import get_session
 from tests.integration import CASSANDRA_VERSION, greaterthancass20
 
diff --git a/tests/integration/long/test_failure_types.py b/tests/integration/long/test_failure_types.py
index 2ca0106..ea88971 100644
--- a/tests/integration/long/test_failure_types.py
+++ b/tests/integration/long/test_failure_types.py
@@ -17,8 +17,7 @@
 import traceback
 import time
 from packaging.version import Version
-
-from mock import Mock
+from unittest.mock import Mock
 
 from cassandra.policies import HostFilterPolicy, RoundRobinPolicy
 from cassandra import (
diff --git a/tests/integration/simulacron/test_connection.py b/tests/integration/simulacron/test_connection.py
index d086766..6af180a 100644
--- a/tests/integration/simulacron/test_connection.py
+++ b/tests/integration/simulacron/test_connection.py
@@ -15,8 +15,7 @@
 
 import logging
 import time
-
-from mock import Mock, patch
+from unittest.mock import Mock, patch
 
 from cassandra import OperationTimedOut
 from cassandra.cluster import (EXEC_PROFILE_DEFAULT, Cluster, ExecutionProfile,
diff --git a/tests/integration/standard/test_cluster.py b/tests/integration/standard/test_cluster.py
index 11a9fba..4c28642 100644
--- a/tests/integration/standard/test_cluster.py
+++ b/tests/integration/standard/test_cluster.py
@@ -16,7 +16,7 @@
 
 from collections import deque
 from copy import copy
-from mock import Mock, call, patch, ANY
+from unittest.mock import Mock, call, patch, ANY
 import time
 from uuid import uuid4
 import logging
diff --git a/tests/integration/standard/test_connection.py b/tests/integration/standard/test_connection.py
index 463080f..b109728 100644
--- a/tests/integration/standard/test_connection.py
+++ b/tests/integration/standard/test_connection.py
@@ -15,7 +15,7 @@
 import unittest
 
 from functools import partial
-from mock import patch
+from unittest.mock import patch
 import logging
 import sys
 import threading
diff --git a/tests/integration/standard/test_custom_protocol_handler.py b/tests/integration/standard/test_custom_protocol_handler.py
index aa74f18..16d43bb 100644
--- a/tests/integration/standard/test_custom_protocol_handler.py
+++ b/tests/integration/standard/test_custom_protocol_handler.py
@@ -27,7 +27,7 @@
 from tests.integration.standard.utils import create_table_with_all_types, get_all_primitive_params
 
 import uuid
-import mock
+from unittest import mock
 
 
 def setup_module():
diff --git a/tests/integration/standard/test_metadata.py b/tests/integration/standard/test_metadata.py
index c8930a5..30db02f 100644
--- a/tests/integration/standard/test_metadata.py
+++ b/tests/integration/standard/test_metadata.py
@@ -21,7 +21,7 @@
 import time
 import os
 from packaging.version import Version
-from mock import Mock, patch
+from unittest.mock import Mock, patch
 
 from cassandra import AlreadyExists, SignatureDescriptor, UserFunctionDescriptor, UserAggregateDescriptor
 
diff --git a/tests/integration/standard/test_query.py b/tests/integration/standard/test_query.py
index 8157e4c..8948680 100644
--- a/tests/integration/standard/test_query.py
+++ b/tests/integration/standard/test_query.py
@@ -33,7 +33,7 @@
 import random
 import re
 
-import mock
+from unittest import mock
 
 
 log = logging.getLogger(__name__)
diff --git a/tests/unit/advanced/cloud/test_cloud.py b/tests/unit/advanced/cloud/test_cloud.py
index f253e70..04cbf88 100644
--- a/tests/unit/advanced/cloud/test_cloud.py
+++ b/tests/unit/advanced/cloud/test_cloud.py
@@ -9,14 +9,12 @@
 import tempfile
 import os
 import shutil
-
 import unittest
+from unittest.mock import patch
 
 from cassandra import DriverException
 from cassandra.datastax import cloud
 
-from mock import patch
-
 from tests import notwindows
 
 class CloudTests(unittest.TestCase):
diff --git a/tests/unit/advanced/test_insights.py b/tests/unit/advanced/test_insights.py
index 4f1dd7a..4047fe1 100644
--- a/tests/unit/advanced/test_insights.py
+++ b/tests/unit/advanced/test_insights.py
@@ -16,8 +16,8 @@
 import unittest
 
 import logging
-from mock import sentinel
 import sys
+from unittest.mock import sentinel
 
 from cassandra import ConsistencyLevel
 from cassandra.cluster import (
diff --git a/tests/unit/advanced/test_policies.py b/tests/unit/advanced/test_policies.py
index b8e4a4e..553e7db 100644
--- a/tests/unit/advanced/test_policies.py
+++ b/tests/unit/advanced/test_policies.py
@@ -12,8 +12,7 @@
 # See the License for the specific language governing permissions and
 # limitations under the License.
 import unittest
-
-from mock import Mock
+from unittest.mock import Mock
 
 from cassandra.pool import Host
 from cassandra.policies import RoundRobinPolicy
diff --git a/tests/unit/cqlengine/test_connection.py b/tests/unit/cqlengine/test_connection.py
index 56136b6..76266cf 100644
--- a/tests/unit/cqlengine/test_connection.py
+++ b/tests/unit/cqlengine/test_connection.py
@@ -13,13 +13,12 @@
 # limitations under the License.
 
 import unittest
+from unittest.mock import Mock
 
 from cassandra.cluster import _ConfigMode
 from cassandra.cqlengine import connection
 from cassandra.query import dict_factory
 
-from mock import Mock
-
 
 class ConnectionTest(unittest.TestCase):
 
diff --git a/tests/unit/io/test_asyncioreactor.py b/tests/unit/io/test_asyncioreactor.py
index aa00a32..65708d4 100644
--- a/tests/unit/io/test_asyncioreactor.py
+++ b/tests/unit/io/test_asyncioreactor.py
@@ -10,7 +10,7 @@
 from tests import is_monkey_patched, connection_class
 from tests.unit.io.utils import TimerCallback, TimerTestMixin
 
-from mock import patch
+from unittest.mock import patch
 
 import unittest
 import time
diff --git a/tests/unit/io/test_asyncorereactor.py b/tests/unit/io/test_asyncorereactor.py
index 6f49389..6e3fc2d 100644
--- a/tests/unit/io/test_asyncorereactor.py
+++ b/tests/unit/io/test_asyncorereactor.py
@@ -13,7 +13,7 @@
 # limitations under the License.
 import unittest
 
-from mock import patch
+from unittest.mock import patch
 import socket
 import cassandra.io.asyncorereactor as asyncorereactor
 from cassandra.io.asyncorereactor import AsyncoreConnection
diff --git a/tests/unit/io/test_eventletreactor.py b/tests/unit/io/test_eventletreactor.py
index e2b6a53..21837bb 100644
--- a/tests/unit/io/test_eventletreactor.py
+++ b/tests/unit/io/test_eventletreactor.py
@@ -19,7 +19,7 @@
 from tests import notpypy, EVENT_LOOP_MANAGER
 
 from eventlet import monkey_patch
-from mock import patch
+from unittest.mock import patch
 
 try:
     from cassandra.io.eventletreactor import EventletConnection
diff --git a/tests/unit/io/test_geventreactor.py b/tests/unit/io/test_geventreactor.py
index 466b9ae..58aa028 100644
--- a/tests/unit/io/test_geventreactor.py
+++ b/tests/unit/io/test_geventreactor.py
@@ -13,6 +13,7 @@
 # limitations under the License.
 
 import unittest
+from unittest.mock import patch
 
 
 from tests.unit.io.utils import TimerTestMixin
@@ -23,8 +24,6 @@
 except ImportError:
     GeventConnection = None  # noqa
 
-from mock import patch
-
 
 skip_condition = GeventConnection is None or EVENT_LOOP_MANAGER != "gevent"
 @unittest.skipIf(skip_condition, "Skipping the gevent tests because it's not installed")
diff --git a/tests/unit/io/test_libevreactor.py b/tests/unit/io/test_libevreactor.py
index 67ab5fc..3ea6c66 100644
--- a/tests/unit/io/test_libevreactor.py
+++ b/tests/unit/io/test_libevreactor.py
@@ -13,7 +13,7 @@
 # limitations under the License.
 import unittest
 
-from mock import patch, Mock
+from unittest.mock import patch, Mock
 import weakref
 import socket
 
diff --git a/tests/unit/io/test_twistedreactor.py b/tests/unit/io/test_twistedreactor.py
index b426a82..0da9915 100644
--- a/tests/unit/io/test_twistedreactor.py
+++ b/tests/unit/io/test_twistedreactor.py
@@ -13,7 +13,7 @@
 # limitations under the License.
 
 import unittest
-from mock import Mock, patch
+from unittest.mock import Mock, patch
 
 from cassandra.connection import DefaultEndPoint
 
diff --git a/tests/unit/io/utils.py b/tests/unit/io/utils.py
index 1475347..be721dc 100644
--- a/tests/unit/io/utils.py
+++ b/tests/unit/io/utils.py
@@ -27,7 +27,7 @@
 from functools import wraps
 from itertools import cycle
 from io import BytesIO
-from mock import Mock
+from unittest.mock import Mock
 
 import errno
 import logging
diff --git a/tests/unit/test_cluster.py b/tests/unit/test_cluster.py
index d6e0040..90bcfbd 100644
--- a/tests/unit/test_cluster.py
+++ b/tests/unit/test_cluster.py
@@ -16,7 +16,7 @@
 import logging
 import socket
 
-from mock import patch, Mock
+from unittest.mock import patch, Mock
 
 from cassandra import ConsistencyLevel, DriverException, Timeout, Unavailable, RequestExecutionException, ReadTimeout, WriteTimeout, CoordinationFailure, ReadFailure, WriteFailure, FunctionFailure, AlreadyExists,\
     InvalidRequest, Unauthorized, AuthenticationFailed, OperationTimedOut, UnsupportedOperation, RequestValidationException, ConfigurationException, ProtocolVersion
diff --git a/tests/unit/test_concurrent.py b/tests/unit/test_concurrent.py
index 3e84220..bdfd081 100644
--- a/tests/unit/test_concurrent.py
+++ b/tests/unit/test_concurrent.py
@@ -16,7 +16,7 @@
 import unittest
 
 from itertools import cycle
-from mock import Mock
+from unittest.mock import Mock
 import time
 import threading
 from queue import PriorityQueue
diff --git a/tests/unit/test_connection.py b/tests/unit/test_connection.py
index 1d81376..51e6247 100644
--- a/tests/unit/test_connection.py
+++ b/tests/unit/test_connection.py
@@ -12,11 +12,10 @@
 # See the License for the specific language governing permissions and
 # limitations under the License.
 import unittest
-
-from mock import Mock, ANY, call, patch
 from io import BytesIO
 import time
 from threading import Lock
+from unittest.mock import Mock, ANY, call, patch
 
 from cassandra import OperationTimedOut
 from cassandra.cluster import Cluster
diff --git a/tests/unit/test_control_connection.py b/tests/unit/test_control_connection.py
index cb863da..a8a6421 100644
--- a/tests/unit/test_control_connection.py
+++ b/tests/unit/test_control_connection.py
@@ -15,7 +15,7 @@
 import unittest
 
 from concurrent.futures import ThreadPoolExecutor
-from mock import Mock, ANY, call
+from unittest.mock import Mock, ANY, call
 
 from cassandra import OperationTimedOut, SchemaTargetType, SchemaChangeType
 from cassandra.protocol import ResultMessage, RESULT_KIND_ROWS
diff --git a/tests/unit/test_endpoints.py b/tests/unit/test_endpoints.py
index 18f245e..b084196 100644
--- a/tests/unit/test_endpoints.py
+++ b/tests/unit/test_endpoints.py
@@ -12,7 +12,7 @@
 
 from cassandra.connection import DefaultEndPoint, SniEndPoint, SniEndPointFactory
 
-from mock import patch
+from unittest.mock import patch
 
 
 def socket_getaddrinfo(*args):
diff --git a/tests/unit/test_host_connection_pool.py b/tests/unit/test_host_connection_pool.py
index 86d4bf9..97a3334 100644
--- a/tests/unit/test_host_connection_pool.py
+++ b/tests/unit/test_host_connection_pool.py
@@ -13,9 +13,8 @@
 # limitations under the License.
 
 import unittest
-
-from mock import Mock, NonCallableMagicMock
 from threading import Thread, Event, Lock
+from unittest.mock import Mock, NonCallableMagicMock
 
 from cassandra.cluster import Session
 from cassandra.connection import Connection
diff --git a/tests/unit/test_metadata.py b/tests/unit/test_metadata.py
index 94fed13..578c493 100644
--- a/tests/unit/test_metadata.py
+++ b/tests/unit/test_metadata.py
@@ -15,7 +15,7 @@
 
 from binascii import unhexlify
 import logging
-from mock import Mock
+from unittest.mock import Mock
 import os
 import timeit
 
diff --git a/tests/unit/test_policies.py b/tests/unit/test_policies.py
index f340f58..e1bd17a 100644
--- a/tests/unit/test_policies.py
+++ b/tests/unit/test_policies.py
@@ -15,7 +15,7 @@
 import unittest
 
 from itertools import islice, cycle
-from mock import Mock, patch, call
+from unittest.mock import Mock, patch, call
 from random import randint
 from _thread import LockType
 import sys
diff --git a/tests/unit/test_protocol.py b/tests/unit/test_protocol.py
index eec9d73..907f62f 100644
--- a/tests/unit/test_protocol.py
+++ b/tests/unit/test_protocol.py
@@ -14,7 +14,7 @@
 
 import unittest
 
-from mock import Mock
+from unittest.mock import Mock
 
 from cassandra import ProtocolVersion, UnsupportedOperation
 from cassandra.protocol import (
diff --git a/tests/unit/test_response_future.py b/tests/unit/test_response_future.py
index ff60ac6..ba3bd5b 100644
--- a/tests/unit/test_response_future.py
+++ b/tests/unit/test_response_future.py
@@ -16,8 +16,7 @@
 
 from collections import deque
 from threading import RLock
-
-from mock import Mock, MagicMock, ANY
+from unittest.mock import Mock, MagicMock, ANY
 
 from cassandra import ConsistencyLevel, Unavailable, SchemaTargetType, SchemaChangeType, OperationTimedOut
 from cassandra.cluster import Session, ResponseFuture, NoHostAvailable, ProtocolVersion
diff --git a/tests/unit/test_resultset.py b/tests/unit/test_resultset.py
index 97002d9..7ff6352 100644
--- a/tests/unit/test_resultset.py
+++ b/tests/unit/test_resultset.py
@@ -11,13 +11,12 @@
 # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 # See the License for the specific language governing permissions and
 # limitations under the License.
-from cassandra.query import named_tuple_factory, dict_factory, tuple_factory
 
 import unittest
-
-from mock import Mock, PropertyMock, patch
+from unittest.mock import Mock, PropertyMock, patch
 
 from cassandra.cluster import ResultSet
+from cassandra.query import named_tuple_factory, dict_factory, tuple_factory
 
 
 class ResultSetTests(unittest.TestCase):
diff --git a/tests/unit/test_timestamps.py b/tests/unit/test_timestamps.py
index ef8ac36..151c004 100644
--- a/tests/unit/test_timestamps.py
+++ b/tests/unit/test_timestamps.py
@@ -13,8 +13,7 @@
 # limitations under the License.
 
 import unittest
-
-import mock
+from unittest import mock
 
 from cassandra import timestamps
 from threading import Thread, Lock
diff --git a/tests/unit/utils.py b/tests/unit/utils.py
index 3c9cc34..ec9a674 100644
--- a/tests/unit/utils.py
+++ b/tests/unit/utils.py
@@ -12,10 +12,11 @@
 # See the License for the specific language governing permissions and
 # limitations under the License.
 
-from concurrent.futures import Future
 from functools import wraps
+from unittest.mock import patch
+
+from concurrent.futures import Future
 from cassandra.cluster import Session
-from mock import patch
 
 
 def mock_session_pools(f):
diff --git a/tox.ini b/tox.ini
index b4a01e5..a101bbc 100644
--- a/tox.ini
+++ b/tox.ini
@@ -3,7 +3,6 @@
 
 [base]
 deps = pynose
-       mock>1.1
        packaging
        cython>=0.20,<0.30
        eventlet