From f73f2e2aa2da06f0c2928c57207151e5682e6aba Mon Sep 17 00:00:00 2001
From: Duncan Macleod <duncan.macleod@ligo.org>
Date: Mon, 7 Feb 2022 14:42:24 +0000
Subject: [PATCH] Replace all use of mock with unittest.mock

---
 containers/dockerfile-template               |  2 +-
 containers/v3-dockerfile-test-suite-python38 |  2 +-
 containers/v3-dockerfile-test-suite-python39 |  2 +-
 requirements.txt                             |  1 -
 test/core/likelihood_test.py                 |  9 ++++----
 test/core/prior/base_test.py                 |  2 +-
 test/core/prior/conditional_test.py          |  2 +-
 test/core/prior/dict_test.py                 |  2 +-
 test/core/sampler/base_sampler_test.py       |  2 +-
 test/core/sampler/cpnest_test.py             |  3 +--
 test/core/sampler/dnest4_test.py             |  3 +--
 test/core/sampler/dynesty_test.py            |  2 +-
 test/core/sampler/emcee_test.py              |  3 +--
 test/core/sampler/kombine_test.py            |  3 +--
 test/core/sampler/nessai_test.py             |  3 +--
 test/core/sampler/nestle_test.py             |  3 +--
 test/core/sampler/polychord_test.py          |  2 +-
 test/core/sampler/proposal_test.py           |  2 +-
 test/core/sampler/ptemcee_test.py            |  3 +--
 test/core/sampler/pymc3_test.py              |  4 ++--
 test/core/sampler/pymultinest_test.py        |  3 +--
 test/core/sampler/ultranest_test.py          |  3 +--
 test/core/sampler/zeus_test.py               |  3 +--
 test/gw/detector/geometry_test.py            | 23 ++++++++++----------
 test/gw/detector/interferometer_test.py      | 23 ++++++++++----------
 test/gw/detector/networks_test.py            | 19 ++++++++--------
 test/gw/detector/psd_test.py                 | 11 +++++-----
 test/gw/detector/strain_data_test.py         |  7 +++---
 test/gw/sampler/proposal_test.py             |  2 +-
 test/gw/waveform_generator_test.py           | 11 +++++-----
 30 files changed, 71 insertions(+), 89 deletions(-)

diff --git a/containers/dockerfile-template b/containers/dockerfile-template
index fc74e7a08..939ba29ca 100644
--- a/containers/dockerfile-template
+++ b/containers/dockerfile-template
@@ -14,7 +14,7 @@ RUN conda info
 RUN python --version
 
 # Install conda-installable programs
-RUN conda install -n ${{conda_env}} -y matplotlib numpy scipy pandas astropy flake8 mock
+RUN conda install -n ${{conda_env}} -y matplotlib numpy scipy pandas astropy flake8
 RUN conda install -n ${{conda_env}} -c anaconda coverage configargparse future
 RUN conda install -n ${{conda_env}} -c conda-forge black pytest-cov deepdish arviz
 
diff --git a/containers/v3-dockerfile-test-suite-python38 b/containers/v3-dockerfile-test-suite-python38
index e5724e0c8..080f1fd22 100644
--- a/containers/v3-dockerfile-test-suite-python38
+++ b/containers/v3-dockerfile-test-suite-python38
@@ -16,7 +16,7 @@ RUN conda info
 RUN python --version
 
 # Install conda-installable programs
-RUN conda install -n ${conda_env} -y matplotlib numpy scipy pandas astropy flake8 mock
+RUN conda install -n ${conda_env} -y matplotlib numpy scipy pandas astropy flake8
 RUN conda install -n ${conda_env} -c anaconda coverage configargparse future
 RUN conda install -n ${conda_env} -c conda-forge black pytest-cov deepdish arviz
 
diff --git a/containers/v3-dockerfile-test-suite-python39 b/containers/v3-dockerfile-test-suite-python39
index 106cd4573..91b906ef8 100644
--- a/containers/v3-dockerfile-test-suite-python39
+++ b/containers/v3-dockerfile-test-suite-python39
@@ -16,7 +16,7 @@ RUN conda info
 RUN python --version
 
 # Install conda-installable programs
-RUN conda install -n ${conda_env} -y matplotlib numpy scipy pandas astropy flake8 mock
+RUN conda install -n ${conda_env} -y matplotlib numpy scipy pandas astropy flake8
 RUN conda install -n ${conda_env} -c anaconda coverage configargparse future
 RUN conda install -n ${conda_env} -c conda-forge black pytest-cov deepdish arviz
 
diff --git a/requirements.txt b/requirements.txt
index 99b3eedbb..e23d0a0cb 100644
--- a/requirements.txt
+++ b/requirements.txt
@@ -5,7 +5,6 @@ numpy
 matplotlib>=2.1
 scipy>=1.5
 pandas
-mock
 dill
 tqdm
 h5py
diff --git a/test/core/likelihood_test.py b/test/core/likelihood_test.py
index a3adfa926..d5a0e2968 100644
--- a/test/core/likelihood_test.py
+++ b/test/core/likelihood_test.py
@@ -1,6 +1,5 @@
 import unittest
-from mock import MagicMock
-import mock
+from unittest import mock
 import numpy as np
 from bilby.core.likelihood import (
     Likelihood,
@@ -657,9 +656,9 @@ class TestJointLikelihood(unittest.TestCase):
         )
 
     def test_log_noise_likelihood(self):
-        self.first_likelihood.noise_log_likelihood = MagicMock(return_value=1)
-        self.second_likelihood.noise_log_likelihood = MagicMock(return_value=2)
-        self.third_likelihood.noise_log_likelihood = MagicMock(return_value=3)
+        self.first_likelihood.noise_log_likelihood = mock.MagicMock(return_value=1)
+        self.second_likelihood.noise_log_likelihood = mock.MagicMock(return_value=2)
+        self.third_likelihood.noise_log_likelihood = mock.MagicMock(return_value=3)
         self.joint_likelihood = JointLikelihood(
             self.first_likelihood, self.second_likelihood, self.third_likelihood
         )
diff --git a/test/core/prior/base_test.py b/test/core/prior/base_test.py
index 49887de50..c9b788732 100644
--- a/test/core/prior/base_test.py
+++ b/test/core/prior/base_test.py
@@ -1,7 +1,7 @@
 import unittest
+from unittest.mock import Mock
 
 import numpy as np
-from mock import Mock
 
 import bilby
 
diff --git a/test/core/prior/conditional_test.py b/test/core/prior/conditional_test.py
index 3e2c5d051..3f7e88731 100644
--- a/test/core/prior/conditional_test.py
+++ b/test/core/prior/conditional_test.py
@@ -1,6 +1,6 @@
 import unittest
+from unittest import mock
 
-import mock
 import numpy as np
 
 import bilby
diff --git a/test/core/prior/dict_test.py b/test/core/prior/dict_test.py
index 03881612a..0a421336b 100644
--- a/test/core/prior/dict_test.py
+++ b/test/core/prior/dict_test.py
@@ -1,8 +1,8 @@
 import os
 import unittest
+from unittest.mock import Mock
 
 import numpy as np
-from mock import Mock
 
 import bilby
 
diff --git a/test/core/sampler/base_sampler_test.py b/test/core/sampler/base_sampler_test.py
index d14eeaa49..30be5e2ba 100644
--- a/test/core/sampler/base_sampler_test.py
+++ b/test/core/sampler/base_sampler_test.py
@@ -1,9 +1,9 @@
 import copy
 import os
 import unittest
+from unittest.mock import MagicMock
 
 import numpy as np
-from mock import MagicMock
 
 import bilby
 from bilby.core import prior
diff --git a/test/core/sampler/cpnest_test.py b/test/core/sampler/cpnest_test.py
index 569e00c03..08a23b0a8 100644
--- a/test/core/sampler/cpnest_test.py
+++ b/test/core/sampler/cpnest_test.py
@@ -1,6 +1,5 @@
 import unittest
-
-from mock import MagicMock
+from unittest.mock import MagicMock
 
 import bilby
 
diff --git a/test/core/sampler/dnest4_test.py b/test/core/sampler/dnest4_test.py
index fc67a0f8f..dac5289f6 100644
--- a/test/core/sampler/dnest4_test.py
+++ b/test/core/sampler/dnest4_test.py
@@ -1,6 +1,5 @@
 import unittest
-
-from mock import MagicMock
+from unittest.mock import MagicMock
 
 import bilby
 
diff --git a/test/core/sampler/dynesty_test.py b/test/core/sampler/dynesty_test.py
index 2b5ae1f07..d1c42b099 100644
--- a/test/core/sampler/dynesty_test.py
+++ b/test/core/sampler/dynesty_test.py
@@ -1,7 +1,7 @@
 import unittest
+from unittest.mock import MagicMock
 
 import numpy as np
-from mock import MagicMock
 
 import bilby
 
diff --git a/test/core/sampler/emcee_test.py b/test/core/sampler/emcee_test.py
index 9a81d073f..66265e51e 100644
--- a/test/core/sampler/emcee_test.py
+++ b/test/core/sampler/emcee_test.py
@@ -1,6 +1,5 @@
 import unittest
-
-from mock import MagicMock
+from unittest.mock import MagicMock
 
 import bilby
 
diff --git a/test/core/sampler/kombine_test.py b/test/core/sampler/kombine_test.py
index f4bdc8030..d16eb8c90 100644
--- a/test/core/sampler/kombine_test.py
+++ b/test/core/sampler/kombine_test.py
@@ -1,6 +1,5 @@
 import unittest
-
-from mock import MagicMock
+from unittest.mock import MagicMock
 
 import bilby
 
diff --git a/test/core/sampler/nessai_test.py b/test/core/sampler/nessai_test.py
index 6f902f71d..86b03fb38 100644
--- a/test/core/sampler/nessai_test.py
+++ b/test/core/sampler/nessai_test.py
@@ -1,6 +1,5 @@
 import unittest
-
-from mock import MagicMock, patch, mock_open
+from unittest.mock import MagicMock, patch, mock_open
 
 import bilby
 
diff --git a/test/core/sampler/nestle_test.py b/test/core/sampler/nestle_test.py
index 5be3ac8d8..e5623ef33 100644
--- a/test/core/sampler/nestle_test.py
+++ b/test/core/sampler/nestle_test.py
@@ -1,6 +1,5 @@
 import unittest
-
-from mock import MagicMock
+from unittest.mock import MagicMock
 
 import bilby
 
diff --git a/test/core/sampler/polychord_test.py b/test/core/sampler/polychord_test.py
index 8427315ac..88193a83a 100644
--- a/test/core/sampler/polychord_test.py
+++ b/test/core/sampler/polychord_test.py
@@ -1,7 +1,7 @@
 import unittest
+from unittest.mock import MagicMock
 
 import numpy as np
-from mock import MagicMock
 
 import bilby
 
diff --git a/test/core/sampler/proposal_test.py b/test/core/sampler/proposal_test.py
index 6b1f5b774..ce678d3fe 100644
--- a/test/core/sampler/proposal_test.py
+++ b/test/core/sampler/proposal_test.py
@@ -1,5 +1,5 @@
 import unittest
-import mock
+from unittest import mock
 import random
 
 import numpy as np
diff --git a/test/core/sampler/ptemcee_test.py b/test/core/sampler/ptemcee_test.py
index 08439c814..2bc4d6580 100644
--- a/test/core/sampler/ptemcee_test.py
+++ b/test/core/sampler/ptemcee_test.py
@@ -1,6 +1,5 @@
 import unittest
-
-from mock import MagicMock
+from unittest.mock import MagicMock
 
 import bilby
 
diff --git a/test/core/sampler/pymc3_test.py b/test/core/sampler/pymc3_test.py
index 9978327a9..b3bb758d3 100644
--- a/test/core/sampler/pymc3_test.py
+++ b/test/core/sampler/pymc3_test.py
@@ -1,7 +1,7 @@
 import unittest
-import pytest
+from unittest.mock import MagicMock
 
-from mock import MagicMock
+import pytest
 
 import bilby
 
diff --git a/test/core/sampler/pymultinest_test.py b/test/core/sampler/pymultinest_test.py
index 41c3de407..8ffcef674 100644
--- a/test/core/sampler/pymultinest_test.py
+++ b/test/core/sampler/pymultinest_test.py
@@ -1,6 +1,5 @@
 import unittest
-
-from mock import MagicMock
+from unittest.mock import MagicMock
 
 import bilby
 
diff --git a/test/core/sampler/ultranest_test.py b/test/core/sampler/ultranest_test.py
index e70a70fdf..dc578cd71 100644
--- a/test/core/sampler/ultranest_test.py
+++ b/test/core/sampler/ultranest_test.py
@@ -1,7 +1,6 @@
 import shutil
 import unittest
-
-from mock import MagicMock
+from unittest.mock import MagicMock
 
 import bilby
 
diff --git a/test/core/sampler/zeus_test.py b/test/core/sampler/zeus_test.py
index e7bd9289c..2b3e2b5de 100644
--- a/test/core/sampler/zeus_test.py
+++ b/test/core/sampler/zeus_test.py
@@ -1,6 +1,5 @@
 import unittest
-
-from mock import MagicMock
+from unittest.mock import MagicMock
 
 import bilby
 
diff --git a/test/gw/detector/geometry_test.py b/test/gw/detector/geometry_test.py
index b05b67459..3960c1964 100644
--- a/test/gw/detector/geometry_test.py
+++ b/test/gw/detector/geometry_test.py
@@ -1,8 +1,7 @@
 import unittest
+from unittest import mock
 
-import mock
 import numpy as np
-from mock import MagicMock
 
 import bilby
 
@@ -89,53 +88,53 @@ class TestInterferometerGeometry(unittest.TestCase):
 
     def test_x_without_update(self):
         _ = self.geometry.x
-        self.geometry.unit_vector_along_arm = MagicMock(return_value=np.array([1]))
+        self.geometry.unit_vector_along_arm = mock.MagicMock(return_value=np.array([1]))
 
         self.assertFalse(np.array_equal(self.geometry.x, np.array([1])))
 
     def test_x_with_xarm_tilt_update(self):
-        self.geometry.unit_vector_along_arm = MagicMock(return_value=np.array([1]))
+        self.geometry.unit_vector_along_arm = mock.MagicMock(return_value=np.array([1]))
         self.geometry.xarm_tilt = 0
         self.assertTrue(np.array_equal(self.geometry.x, np.array([1])))
 
     def test_x_with_xarm_azimuth_update(self):
-        self.geometry.unit_vector_along_arm = MagicMock(return_value=np.array([1]))
+        self.geometry.unit_vector_along_arm = mock.MagicMock(return_value=np.array([1]))
         self.geometry.xarm_azimuth = 0
         self.assertTrue(np.array_equal(self.geometry.x, np.array([1])))
 
     def test_x_with_longitude_update(self):
-        self.geometry.unit_vector_along_arm = MagicMock(return_value=np.array([1]))
+        self.geometry.unit_vector_along_arm = mock.MagicMock(return_value=np.array([1]))
         self.geometry.longitude = 0
         self.assertTrue(np.array_equal(self.geometry.x, np.array([1])))
 
     def test_x_with_latitude_update(self):
-        self.geometry.unit_vector_along_arm = MagicMock(return_value=np.array([1]))
+        self.geometry.unit_vector_along_arm = mock.MagicMock(return_value=np.array([1]))
         self.geometry.latitude = 0
         self.assertTrue(np.array_equal(self.geometry.x, np.array([1])))
 
     def test_y_without_update(self):
         _ = self.geometry.y
-        self.geometry.unit_vector_along_arm = MagicMock(return_value=np.array([1]))
+        self.geometry.unit_vector_along_arm = mock.MagicMock(return_value=np.array([1]))
 
         self.assertFalse(np.array_equal(self.geometry.y, np.array([1])))
 
     def test_y_with_yarm_tilt_update(self):
-        self.geometry.unit_vector_along_arm = MagicMock(return_value=np.array([1]))
+        self.geometry.unit_vector_along_arm = mock.MagicMock(return_value=np.array([1]))
         self.geometry.yarm_tilt = 0
         self.assertTrue(np.array_equal(self.geometry.y, np.array([1])))
 
     def test_y_with_yarm_azimuth_update(self):
-        self.geometry.unit_vector_along_arm = MagicMock(return_value=np.array([1]))
+        self.geometry.unit_vector_along_arm = mock.MagicMock(return_value=np.array([1]))
         self.geometry.yarm_azimuth = 0
         self.assertTrue(np.array_equal(self.geometry.y, np.array([1])))
 
     def test_y_with_longitude_update(self):
-        self.geometry.unit_vector_along_arm = MagicMock(return_value=np.array([1]))
+        self.geometry.unit_vector_along_arm = mock.MagicMock(return_value=np.array([1]))
         self.geometry.longitude = 0
         self.assertTrue(np.array_equal(self.geometry.y, np.array([1])))
 
     def test_y_with_latitude_update(self):
-        self.geometry.unit_vector_along_arm = MagicMock(return_value=np.array([1]))
+        self.geometry.unit_vector_along_arm = mock.MagicMock(return_value=np.array([1]))
         self.geometry.latitude = 0
         self.assertTrue(np.array_equal(self.geometry.y, np.array([1])))
 
diff --git a/test/gw/detector/interferometer_test.py b/test/gw/detector/interferometer_test.py
index fe17dd555..2a37830fc 100644
--- a/test/gw/detector/interferometer_test.py
+++ b/test/gw/detector/interferometer_test.py
@@ -1,4 +1,5 @@
 import unittest
+from unittest import mock
 
 import lal
 import lalsimulation
@@ -7,9 +8,7 @@ from packaging import version
 from shutil import rmtree
 
 import deepdish as dd
-import mock
 import numpy as np
-from mock import MagicMock, patch
 import pandas
 
 import bilby
@@ -56,7 +55,7 @@ class TestInterferometer(unittest.TestCase):
         self.injection_polarizations["plus"] = np.random.random(4097)
         self.injection_polarizations["cross"] = np.random.random(4097)
 
-        self.waveform_generator = MagicMock()
+        self.waveform_generator = mock.MagicMock()
         self.wg_polarizations = dict(
             plus=np.random.random(4097), cross=np.random.random(4097)
         )
@@ -118,8 +117,8 @@ class TestInterferometer(unittest.TestCase):
             )
 
     def test_get_detector_response_default_behaviour(self):
-        self.ifo.antenna_response = MagicMock(return_value=1)
-        self.ifo.time_delay_from_geocenter = MagicMock(return_value=0)
+        self.ifo.antenna_response = mock.MagicMock(return_value=1)
+        self.ifo.time_delay_from_geocenter = mock.MagicMock(return_value=0)
         self.ifo.epoch = 0
         self.minimum_frequency = 10
         self.maximum_frequency = 20
@@ -134,8 +133,8 @@ class TestInterferometer(unittest.TestCase):
         )
 
     def test_get_detector_response_with_dt(self):
-        self.ifo.antenna_response = MagicMock(return_value=1)
-        self.ifo.time_delay_from_geocenter = MagicMock(return_value=0)
+        self.ifo.antenna_response = mock.MagicMock(return_value=1)
+        self.ifo.time_delay_from_geocenter = mock.MagicMock(return_value=0)
         self.ifo.epoch = 1
         self.minimum_frequency = 10
         self.maximum_frequency = 20
@@ -152,8 +151,8 @@ class TestInterferometer(unittest.TestCase):
         self.assertTrue(np.allclose(abs(expected_response), abs(response)))
 
     def test_get_detector_response_multiple_modes(self):
-        self.ifo.antenna_response = MagicMock(return_value=1)
-        self.ifo.time_delay_from_geocenter = MagicMock(return_value=0)
+        self.ifo.antenna_response = mock.MagicMock(return_value=1)
+        self.ifo.time_delay_from_geocenter = mock.MagicMock(return_value=0)
         self.ifo.epoch = 0
         self.minimum_frequency = 10
         self.maximum_frequency = 20
@@ -227,7 +226,7 @@ class TestInterferometer(unittest.TestCase):
                 injection_polarizations=self.injection_polarizations,
             )
 
-    @patch.object(bilby.core.utils.logger, "warning")
+    @mock.patch.object(bilby.core.utils.logger, "warning")
     def test_inject_signal_outside_segment_logs_warning(self, m):
         self.parameters["geocent_time"] = 24345.0
         self.ifo.get_detector_response = lambda x, params: x["plus"] + x["cross"]
@@ -253,7 +252,7 @@ class TestInterferometer(unittest.TestCase):
             )
         )
 
-    @patch.object(
+    @mock.patch.object(
         bilby.gw.detector.Interferometer, "inject_signal_from_waveform_generator"
     )
     def test_inject_signal_with_waveform_generator_correct_call(self, m):
@@ -296,7 +295,7 @@ class TestInterferometer(unittest.TestCase):
             np.array_equal(expected, self.ifo.strain_data._frequency_domain_strain)
         )
 
-    @patch.object(
+    @mock.patch.object(
         bilby.gw.detector.Interferometer, "inject_signal_from_waveform_polarizations"
     )
     def test_inject_signal_with_injection_polarizations_and_waveform_generator(self, m):
diff --git a/test/gw/detector/networks_test.py b/test/gw/detector/networks_test.py
index 6108c3e4e..971254b24 100644
--- a/test/gw/detector/networks_test.py
+++ b/test/gw/detector/networks_test.py
@@ -1,13 +1,12 @@
 import unittest
+from unittest import mock
 import pytest
 from shutil import rmtree
 from packaging import version
 from itertools import combinations
 
 import deepdish as dd
-import mock
 import numpy as np
-from mock import patch, MagicMock
 import pandas
 
 import bilby
@@ -183,7 +182,7 @@ class TestInterferometerList(unittest.TestCase):
         with self.assertRaises(ValueError):
             bilby.gw.detector.InterferometerList([self.ifo1, self.ifo2])
 
-    @patch.object(bilby.gw.detector.networks.logger, "warning")
+    @mock.patch.object(bilby.gw.detector.networks.logger, "warning")
     def test_check_interferometers_relative_tolerance(self, mock_warning):
         # Value larger than relative tolerance -- not tolerated
         self.ifo2.strain_data.start_time = self.ifo1.strain_data.start_time + 1e-4
@@ -201,7 +200,7 @@ class TestInterferometerList(unittest.TestCase):
             "The start_time of all interferometers are not the same:" in warning_log_str
         )
 
-    @patch.object(
+    @mock.patch.object(
         bilby.gw.detector.Interferometer, "set_strain_data_from_power_spectral_density"
     )
     def test_set_strain_data_from_power_spectral_density(self, m):
@@ -224,21 +223,21 @@ class TestInterferometerList(unittest.TestCase):
         meta_data = {ifo.name: ifo.meta_data for ifo in ifos_list}
         self.assertEqual(ifos.meta_data, meta_data)
 
-    @patch.object(
+    @mock.patch.object(
         bilby.gw.waveform_generator.WaveformGenerator, "frequency_domain_strain"
     )
     def test_inject_signal_pol_none_calls_frequency_domain_strain(self, m):
         waveform_generator = bilby.gw.waveform_generator.WaveformGenerator(
             frequency_domain_source_model=lambda x, y, z: x
         )
-        self.ifo1.inject_signal = MagicMock(return_value=None)
-        self.ifo2.inject_signal = MagicMock(return_value=None)
+        self.ifo1.inject_signal = mock.MagicMock(return_value=None)
+        self.ifo2.inject_signal = mock.MagicMock(return_value=None)
         self.ifo_list.inject_signal(
             parameters=None, waveform_generator=waveform_generator
         )
         self.assertTrue(m.called)
 
-    @patch.object(bilby.gw.detector.Interferometer, "inject_signal")
+    @mock.patch.object(bilby.gw.detector.Interferometer, "inject_signal")
     def test_inject_signal_with_inj_pol(self, m):
         self.ifo_list.inject_signal(
             injection_polarizations=dict(plus=1), raise_error=False
@@ -248,7 +247,7 @@ class TestInterferometerList(unittest.TestCase):
         )
         self.assertEqual(len(self.ifo_list), m.call_count)
 
-    @patch.object(bilby.gw.detector.Interferometer, "inject_signal")
+    @mock.patch.object(bilby.gw.detector.Interferometer, "inject_signal")
     def test_inject_signal_returns_expected_polarisations(self, m):
         m.return_value = dict(plus=1, cross=2)
         injection_polarizations = dict(plus=1, cross=2)
@@ -264,7 +263,7 @@ class TestInterferometerList(unittest.TestCase):
             ifos_pol[1],
         )
 
-    @patch.object(bilby.gw.detector.Interferometer, "save_data")
+    @mock.patch.object(bilby.gw.detector.Interferometer, "save_data")
     def test_save_data(self, m):
         self.ifo_list.save_data(outdir="test_outdir", label="test_outdir")
         m.assert_called_with(outdir="test_outdir", label="test_outdir")
diff --git a/test/gw/detector/psd_test.py b/test/gw/detector/psd_test.py
index 2d9f9acb6..238c3cfa0 100644
--- a/test/gw/detector/psd_test.py
+++ b/test/gw/detector/psd_test.py
@@ -1,10 +1,9 @@
 import logging
 import os
 import unittest
+from unittest import mock
 
-import mock
 import numpy as np
-from mock import MagicMock
 
 import bilby
 
@@ -199,28 +198,28 @@ class TestPowerSpectralDensityWithFiles(unittest.TestCase):
 
     def test_check_file_psd_file_set_to_asd_file(self):
         logger = logging.getLogger("bilby")
-        m = MagicMock()
+        m = mock.MagicMock()
         logger.warning = m
         _ = bilby.gw.detector.PowerSpectralDensity(psd_file=self.asd_file)
         self.assertEqual(4, m.call_count)
 
     def test_check_file_not_called_psd_file_set_to_psd_file(self):
         logger = logging.getLogger("bilby")
-        m = MagicMock()
+        m = mock.MagicMock()
         logger.warning = m
         _ = bilby.gw.detector.PowerSpectralDensity(psd_file=self.psd_file)
         self.assertEqual(0, m.call_count)
 
     def test_check_file_asd_file_set_to_psd_file(self):
         logger = logging.getLogger("bilby")
-        m = MagicMock()
+        m = mock.MagicMock()
         logger.warning = m
         _ = bilby.gw.detector.PowerSpectralDensity(asd_file=self.psd_file)
         self.assertEqual(4, m.call_count)
 
     def test_check_file_not_called_asd_file_set_to_asd_file(self):
         logger = logging.getLogger("bilby")
-        m = MagicMock()
+        m = mock.MagicMock()
         logger.warning = m
         _ = bilby.gw.detector.PowerSpectralDensity(asd_file=self.asd_file)
         self.assertEqual(0, m.call_count)
diff --git a/test/gw/detector/strain_data_test.py b/test/gw/detector/strain_data_test.py
index 9cba74104..0f82a40a2 100644
--- a/test/gw/detector/strain_data_test.py
+++ b/test/gw/detector/strain_data_test.py
@@ -1,9 +1,8 @@
 import unittest
+from unittest import mock
 
-import mock
 import numpy as np
 import scipy.signal
-from mock import patch
 
 import bilby
 
@@ -198,7 +197,7 @@ class TestInterferometerStrainData(unittest.TestCase):
         self.ifosd._time_domain_strain = expected_strain
         self.assertEqual(expected_strain, self.ifosd.time_domain_strain)
 
-    @patch("bilby.core.utils.infft")
+    @mock.patch("bilby.core.utils.infft")
     def test_time_domain_strain_from_frequency_domain_strain(self, m):
         m.return_value = 5
         self.ifosd.sampling_frequency = 200
@@ -222,7 +221,7 @@ class TestInterferometerStrainData(unittest.TestCase):
             np.array_equal(expected_strain, self.ifosd.frequency_domain_strain)
         )
 
-    @patch("bilby.core.utils.nfft")
+    @mock.patch("bilby.core.utils.nfft")
     def test_frequency_domain_strain_from_frequency_domain_strain(self, m):
         self.ifosd.start_time = 0
         self.ifosd.duration = 4
diff --git a/test/gw/sampler/proposal_test.py b/test/gw/sampler/proposal_test.py
index 282ea61f6..3ad800084 100644
--- a/test/gw/sampler/proposal_test.py
+++ b/test/gw/sampler/proposal_test.py
@@ -1,5 +1,5 @@
 import unittest
-import mock
+from unittest import mock
 
 import numpy as np
 
diff --git a/test/gw/waveform_generator_test.py b/test/gw/waveform_generator_test.py
index f11bb04f9..f2564c6d5 100644
--- a/test/gw/waveform_generator_test.py
+++ b/test/gw/waveform_generator_test.py
@@ -1,8 +1,7 @@
 import unittest
+from unittest import mock
 import bilby
 import numpy as np
-import mock
-from mock import MagicMock
 
 
 def dummy_func_array_return_value(
@@ -259,7 +258,7 @@ class TestFrequencyDomainStrainMethod(unittest.TestCase):
         del self.simulation_parameters
 
     def test_parameter_conversion_is_called(self):
-        self.waveform_generator.parameter_conversion = MagicMock(
+        self.waveform_generator.parameter_conversion = mock.MagicMock(
             side_effect=KeyError("test")
         )
         with self.assertRaises(KeyError):
@@ -328,7 +327,7 @@ class TestFrequencyDomainStrainMethod(unittest.TestCase):
             )
 
     def test_key_popping(self):
-        self.waveform_generator.parameter_conversion = MagicMock(
+        self.waveform_generator.parameter_conversion = mock.MagicMock(
             return_value=(
                 dict(
                     amplitude=1e-21,
@@ -465,7 +464,7 @@ class TestTimeDomainStrainMethod(unittest.TestCase):
         del self.simulation_parameters
 
     def test_parameter_conversion_is_called(self):
-        self.waveform_generator.parameter_conversion = MagicMock(
+        self.waveform_generator.parameter_conversion = mock.MagicMock(
             side_effect=KeyError("test")
         )
         with self.assertRaises(KeyError):
@@ -538,7 +537,7 @@ class TestTimeDomainStrainMethod(unittest.TestCase):
             )
 
     def test_key_popping(self):
-        self.waveform_generator.parameter_conversion = MagicMock(
+        self.waveform_generator.parameter_conversion = mock.MagicMock(
             return_value=(
                 dict(
                     amplitude=1e-2,
-- 
GitLab