diff --git a/ironic_python_agent/tests/unit/extensions/test_base.py b/ironic_python_agent/tests/unit/extensions/test_base.py
index 51296ea85..2881d2ab2 100644
--- a/ironic_python_agent/tests/unit/extensions/test_base.py
+++ b/ironic_python_agent/tests/unit/extensions/test_base.py
@@ -12,7 +12,8 @@
 # See the License for the specific language governing permissions and
 # limitations under the License.
 
-import mock
+from unittest import mock
+
 from stevedore import extension
 
 from ironic_python_agent import errors
diff --git a/ironic_python_agent/tests/unit/extensions/test_clean.py b/ironic_python_agent/tests/unit/extensions/test_clean.py
index 3e510d302..b78d347c3 100644
--- a/ironic_python_agent/tests/unit/extensions/test_clean.py
+++ b/ironic_python_agent/tests/unit/extensions/test_clean.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 ironic_python_agent import errors
 from ironic_python_agent.extensions import clean
diff --git a/ironic_python_agent/tests/unit/extensions/test_flow.py b/ironic_python_agent/tests/unit/extensions/test_flow.py
index 58801c510..7fe24d758 100644
--- a/ironic_python_agent/tests/unit/extensions/test_flow.py
+++ b/ironic_python_agent/tests/unit/extensions/test_flow.py
@@ -13,8 +13,8 @@
 # limitations under the License.
 
 import time
+from unittest import mock
 
-import mock
 from stevedore import enabled
 from stevedore import extension
 
diff --git a/ironic_python_agent/tests/unit/extensions/test_image.py b/ironic_python_agent/tests/unit/extensions/test_image.py
index 8bb7444c1..546d18199 100644
--- a/ironic_python_agent/tests/unit/extensions/test_image.py
+++ b/ironic_python_agent/tests/unit/extensions/test_image.py
@@ -16,9 +16,9 @@
 import os
 import shutil
 import tempfile
+from unittest import mock
 
 from ironic_lib import utils as ilib_utils
-import mock
 from oslo_concurrency import processutils
 
 from ironic_python_agent import errors
diff --git a/ironic_python_agent/tests/unit/extensions/test_iscsi.py b/ironic_python_agent/tests/unit/extensions/test_iscsi.py
index 5af152b78..e914d4aa7 100644
--- a/ironic_python_agent/tests/unit/extensions/test_iscsi.py
+++ b/ironic_python_agent/tests/unit/extensions/test_iscsi.py
@@ -13,8 +13,9 @@
 #    License for the specific language governing permissions and limitations
 #    under the License.
 
+from unittest import mock
+
 from ironic_lib import disk_utils
-import mock
 from oslo_concurrency import processutils
 
 from ironic_python_agent import errors
diff --git a/ironic_python_agent/tests/unit/extensions/test_log.py b/ironic_python_agent/tests/unit/extensions/test_log.py
index 5237ee181..838f24f01 100644
--- a/ironic_python_agent/tests/unit/extensions/test_log.py
+++ b/ironic_python_agent/tests/unit/extensions/test_log.py
@@ -13,7 +13,7 @@
 #    License for the specific language governing permissions and limitations
 #    under the License.
 
-import mock
+from unittest import mock
 
 from ironic_python_agent.extensions import log
 from ironic_python_agent.tests.unit import base
diff --git a/ironic_python_agent/tests/unit/extensions/test_rescue.py b/ironic_python_agent/tests/unit/extensions/test_rescue.py
index 1d3b94561..4c807e51b 100644
--- a/ironic_python_agent/tests/unit/extensions/test_rescue.py
+++ b/ironic_python_agent/tests/unit/extensions/test_rescue.py
@@ -10,7 +10,8 @@
 # See the License for the specific language governing permissions and
 # limitations under the License.
 
-import mock
+from unittest import mock
+
 from oslotest import base as test_base
 
 from ironic_python_agent.extensions import rescue
diff --git a/ironic_python_agent/tests/unit/extensions/test_standby.py b/ironic_python_agent/tests/unit/extensions/test_standby.py
index cab4116c0..d4030f092 100644
--- a/ironic_python_agent/tests/unit/extensions/test_standby.py
+++ b/ironic_python_agent/tests/unit/extensions/test_standby.py
@@ -14,9 +14,9 @@
 
 import os
 import tempfile
+from unittest import mock
 
 from ironic_lib import exception
-import mock
 from oslo_concurrency import processutils
 
 from ironic_python_agent import errors
diff --git a/ironic_python_agent/tests/unit/hardware_managers/test_cna.py b/ironic_python_agent/tests/unit/hardware_managers/test_cna.py
index 0f3af3a2f..212942ce9 100644
--- a/ironic_python_agent/tests/unit/hardware_managers/test_cna.py
+++ b/ironic_python_agent/tests/unit/hardware_managers/test_cna.py
@@ -13,8 +13,8 @@
 # limitations under the License.
 
 import os
+from unittest import mock
 
-import mock
 from oslo_concurrency import processutils
 from oslo_config import cfg
 
diff --git a/ironic_python_agent/tests/unit/hardware_managers/test_mlnx.py b/ironic_python_agent/tests/unit/hardware_managers/test_mlnx.py
index bf3c15bdf..0e6fbfec8 100755
--- a/ironic_python_agent/tests/unit/hardware_managers/test_mlnx.py
+++ b/ironic_python_agent/tests/unit/hardware_managers/test_mlnx.py
@@ -13,8 +13,7 @@
 # limitations under the License.
 
 import os
-
-import mock
+from unittest import mock
 
 from ironic_python_agent import errors
 from ironic_python_agent import hardware
diff --git a/ironic_python_agent/tests/unit/test_agent.py b/ironic_python_agent/tests/unit/test_agent.py
index 3a751967f..bb6913773 100644
--- a/ironic_python_agent/tests/unit/test_agent.py
+++ b/ironic_python_agent/tests/unit/test_agent.py
@@ -14,9 +14,9 @@
 
 import socket
 import time
+from unittest import mock
 
 from ironic_lib import exception as lib_exc
-import mock
 from oslo_concurrency import processutils
 from oslo_config import cfg
 from oslo_serialization import jsonutils
diff --git a/ironic_python_agent/tests/unit/test_api.py b/ironic_python_agent/tests/unit/test_api.py
index db380c3ce..ff71e3231 100644
--- a/ironic_python_agent/tests/unit/test_api.py
+++ b/ironic_python_agent/tests/unit/test_api.py
@@ -13,8 +13,8 @@
 # limitations under the License.
 
 import time
+from unittest import mock
 
-import mock
 from oslo_config import cfg
 from werkzeug import test as http_test
 from werkzeug import wrappers
diff --git a/ironic_python_agent/tests/unit/test_base.py b/ironic_python_agent/tests/unit/test_base.py
index ef91c6a3f..ecea63031 100644
--- a/ironic_python_agent/tests/unit/test_base.py
+++ b/ironic_python_agent/tests/unit/test_base.py
@@ -12,9 +12,9 @@
 # limitations under the License.
 
 import subprocess
+from unittest import mock
 
 import ironic_lib
-import mock
 from oslo_concurrency import processutils
 
 from ironic_python_agent.tests.unit import base as ironic_agent_base
diff --git a/ironic_python_agent/tests/unit/test_dmi_inspector.py b/ironic_python_agent/tests/unit/test_dmi_inspector.py
index 0c8c69703..fc663359a 100644
--- a/ironic_python_agent/tests/unit/test_dmi_inspector.py
+++ b/ironic_python_agent/tests/unit/test_dmi_inspector.py
@@ -12,7 +12,8 @@
 # See the License for the specific language governing permissions and
 # limitations under the License.
 
-import mock
+from unittest import mock
+
 from oslo_concurrency import processutils
 
 from ironic_python_agent import dmi_inspector
diff --git a/ironic_python_agent/tests/unit/test_hardware.py b/ironic_python_agent/tests/unit/test_hardware.py
index 49ab4fe30..7f98559a2 100644
--- a/ironic_python_agent/tests/unit/test_hardware.py
+++ b/ironic_python_agent/tests/unit/test_hardware.py
@@ -15,9 +15,9 @@
 import binascii
 import os
 import time
+from unittest import mock
 
 from ironic_lib import disk_utils
-import mock
 import netifaces
 from oslo_concurrency import processutils
 from oslo_config import cfg
diff --git a/ironic_python_agent/tests/unit/test_inspector.py b/ironic_python_agent/tests/unit/test_inspector.py
index 9155cf56c..cac0edf1d 100644
--- a/ironic_python_agent/tests/unit/test_inspector.py
+++ b/ironic_python_agent/tests/unit/test_inspector.py
@@ -17,8 +17,8 @@ import collections
 import copy
 import os
 import time
+from unittest import mock
 
-import mock
 from oslo_concurrency import processutils
 from oslo_config import cfg
 import requests
diff --git a/ironic_python_agent/tests/unit/test_ironic_api_client.py b/ironic_python_agent/tests/unit/test_ironic_api_client.py
index f11f11416..c0f8bb740 100644
--- a/ironic_python_agent/tests/unit/test_ironic_api_client.py
+++ b/ironic_python_agent/tests/unit/test_ironic_api_client.py
@@ -12,7 +12,8 @@
 # See the License for the specific language governing permissions and
 # limitations under the License.
 
-import mock
+from unittest import mock
+
 from oslo_serialization import jsonutils
 from oslo_service import loopingcall
 
diff --git a/ironic_python_agent/tests/unit/test_multi_hardware.py b/ironic_python_agent/tests/unit/test_multi_hardware.py
index 7849cf236..ff55e2e84 100644
--- a/ironic_python_agent/tests/unit/test_multi_hardware.py
+++ b/ironic_python_agent/tests/unit/test_multi_hardware.py
@@ -13,8 +13,8 @@
 # limitations under the License.
 
 import collections
+from unittest import mock
 
-import mock
 from stevedore import extension
 
 from ironic_python_agent import errors
diff --git a/ironic_python_agent/tests/unit/test_multi_hardware_clean_steps.py b/ironic_python_agent/tests/unit/test_multi_hardware_clean_steps.py
index fd46e53b0..0d7791562 100644
--- a/ironic_python_agent/tests/unit/test_multi_hardware_clean_steps.py
+++ b/ironic_python_agent/tests/unit/test_multi_hardware_clean_steps.py
@@ -12,7 +12,8 @@
 # See the License for the specific language governing permissions and
 # limitations under the License.
 
-import mock
+from unittest import mock
+
 from stevedore import extension
 
 from ironic_python_agent.extensions import clean
diff --git a/ironic_python_agent/tests/unit/test_netutils.py b/ironic_python_agent/tests/unit/test_netutils.py
index b9b2a11e4..90dbd55d4 100644
--- a/ironic_python_agent/tests/unit/test_netutils.py
+++ b/ironic_python_agent/tests/unit/test_netutils.py
@@ -14,8 +14,8 @@
 
 import binascii
 import socket
+from unittest import mock
 
-import mock
 from oslo_config import cfg
 
 from ironic_python_agent import netutils
diff --git a/ironic_python_agent/tests/unit/test_numa_inspector.py b/ironic_python_agent/tests/unit/test_numa_inspector.py
index 21dd001c2..1ab468c04 100644
--- a/ironic_python_agent/tests/unit/test_numa_inspector.py
+++ b/ironic_python_agent/tests/unit/test_numa_inspector.py
@@ -14,8 +14,7 @@
 # limitations under the License.
 
 import os
-
-import mock
+from unittest import mock
 
 from ironic_python_agent import errors
 from ironic_python_agent import numa_inspector as numa_insp
diff --git a/ironic_python_agent/tests/unit/test_utils.py b/ironic_python_agent/tests/unit/test_utils.py
index 531ffb2a5..48948fc35 100644
--- a/ironic_python_agent/tests/unit/test_utils.py
+++ b/ironic_python_agent/tests/unit/test_utils.py
@@ -21,9 +21,9 @@ import shutil
 import subprocess
 import tarfile
 import tempfile
+from unittest import mock
 
 from ironic_lib import utils as ironic_utils
-import mock
 from oslo_concurrency import processutils
 from oslo_serialization import base64
 import testtools
diff --git a/lower-constraints.txt b/lower-constraints.txt
index a749bb484..9cad6064f 100644
--- a/lower-constraints.txt
+++ b/lower-constraints.txt
@@ -33,7 +33,6 @@ logutils==0.3.5
 Mako==1.0.7
 MarkupSafe==1.0
 mccabe==0.2.1
-mock==2.0.0
 monotonic==1.4
 mox3==0.25.0
 msgpack==0.5.6
diff --git a/test-requirements.txt b/test-requirements.txt
index a7100cbc5..ebbc73807 100644
--- a/test-requirements.txt
+++ b/test-requirements.txt
@@ -3,7 +3,6 @@
 # process, which may cause wedges in the gate later.
 hacking>=3.0.0,<3.1.0 # Apache-2.0
 coverage!=4.4,>=4.0 # Apache-2.0
-mock>=2.0.0 # BSD
 testtools>=2.2.0 # MIT
 oslotest>=3.2.0 # Apache-2.0
 stestr>=1.0.0 # Apache-2.0