Remove use of mock

Since Python 3.4, the unittest module has provided mock, negating the
need for the external dependancy. Switch to using unittest.mock.

Change-Id: Idec3aaed2fddd1ece3ed86ee0bcc48f7616d56fa
This commit is contained in:
Steve Kowalik 2022-05-24 11:56:35 +10:00
parent 95f68cd673
commit 20c97e83d3
8 changed files with 39 additions and 41 deletions

View File

@ -3,6 +3,5 @@ hacking>=3.2.0,<3.3.0;python_version>='3.0' # Apache-2.0
coverage!=4.4,>=4.0 # Apache-2.0 coverage!=4.4,>=4.0 # Apache-2.0
keystoneauth1>=3.4.0 # Apache-2.0 keystoneauth1>=3.4.0 # Apache-2.0
mock>=1.2.0 # BSD
stestr>=2.0.0,!=3.0.0 # Apache-2.0 stestr>=2.0.0,!=3.0.0 # Apache-2.0
openstacksdk>=0.11.0 # Apache-2.0 openstacksdk>=0.11.0 # Apache-2.0

View File

@ -14,8 +14,8 @@
import datetime import datetime
import json import json
import mock
import unittest import unittest
from unittest import mock
from keystoneauth1 import plugin from keystoneauth1 import plugin
from keystoneauth1 import loading from keystoneauth1 import loading
from keystoneauth1 import exceptions from keystoneauth1 import exceptions

View File

@ -13,9 +13,9 @@
# See the License for the specific language governing permissions and # See the License for the specific language governing permissions and
# limitations under the License. # limitations under the License.
import mock
from io import StringIO from io import StringIO
import unittest import unittest
from unittest import mock
from swiftclient import command_helpers as h from swiftclient import command_helpers as h
from swiftclient.multithreading import OutputManager from swiftclient.multithreading import OutputManager

View File

@ -16,17 +16,16 @@
import builtins import builtins
import contextlib import contextlib
import io import io
import mock
import os import os
import tempfile import tempfile
import unittest import unittest
import time import time
import json import json
from io import BytesIO from io import BytesIO
from unittest import mock
from concurrent.futures import Future from concurrent.futures import Future
from hashlib import md5 from hashlib import md5
from mock import Mock, PropertyMock
from queue import Queue, Empty as QueueEmptyError from queue import Queue, Empty as QueueEmptyError
from time import sleep from time import sleep
@ -215,9 +214,9 @@ class TestSwiftReader(unittest.TestCase):
class _TestServiceBase(unittest.TestCase): class _TestServiceBase(unittest.TestCase):
def _get_mock_connection(self, attempts=2): def _get_mock_connection(self, attempts=2):
m = Mock(spec=Connection) m = mock.Mock(spec=Connection)
type(m).attempts = PropertyMock(return_value=attempts) type(m).attempts = mock.PropertyMock(return_value=attempts)
type(m).auth_end_time = PropertyMock(return_value=4) type(m).auth_end_time = mock.PropertyMock(return_value=4)
return m return m
def _get_queue(self, q): def _get_queue(self, q):
@ -272,7 +271,7 @@ class TestServiceDelete(_TestServiceBase):
def test_delete_segment_exception(self): def test_delete_segment_exception(self):
mock_q = Queue() mock_q = Queue()
mock_conn = self._get_mock_connection() mock_conn = self._get_mock_connection()
mock_conn.delete_object = Mock(side_effect=self.exc) mock_conn.delete_object = mock.Mock(side_effect=self.exc)
expected_r = self._get_expected({ expected_r = self._get_expected({
'action': 'delete_segment', 'action': 'delete_segment',
'object': 'test_s', 'object': 'test_s',
@ -298,7 +297,7 @@ class TestServiceDelete(_TestServiceBase):
def test_delete_object(self): def test_delete_object(self):
mock_q = Queue() mock_q = Queue()
mock_conn = self._get_mock_connection() mock_conn = self._get_mock_connection()
mock_conn.head_object = Mock(return_value={}) mock_conn.head_object = mock.Mock(return_value={})
expected_r = self._get_expected({ expected_r = self._get_expected({
'action': 'delete_object', 'action': 'delete_object',
'success': True 'success': True
@ -346,7 +345,7 @@ class TestServiceDelete(_TestServiceBase):
def test_delete_object_with_headers(self): def test_delete_object_with_headers(self):
mock_q = Queue() mock_q = Queue()
mock_conn = self._get_mock_connection() mock_conn = self._get_mock_connection()
mock_conn.head_object = Mock(return_value={}) mock_conn.head_object = mock.Mock(return_value={})
expected_r = self._get_expected({ expected_r = self._get_expected({
'action': 'delete_object', 'action': 'delete_object',
'success': True 'success': True
@ -369,7 +368,7 @@ class TestServiceDelete(_TestServiceBase):
def test_delete_object_exception(self): def test_delete_object_exception(self):
mock_q = Queue() mock_q = Queue()
mock_conn = self._get_mock_connection() mock_conn = self._get_mock_connection()
mock_conn.delete_object = Mock(side_effect=self.exc) mock_conn.delete_object = mock.Mock(side_effect=self.exc)
expected_r = self._get_expected({ expected_r = self._get_expected({
'action': 'delete_object', 'action': 'delete_object',
'success': False, 'success': False,
@ -402,7 +401,7 @@ class TestServiceDelete(_TestServiceBase):
# additional query string to cause the right delete server side # additional query string to cause the right delete server side
mock_q = Queue() mock_q = Queue()
mock_conn = self._get_mock_connection() mock_conn = self._get_mock_connection()
mock_conn.head_object = Mock( mock_conn.head_object = mock.Mock(
return_value={'x-static-large-object': True} return_value={'x-static-large-object': True}
) )
expected_r = self._get_expected({ expected_r = self._get_expected({
@ -435,10 +434,10 @@ class TestServiceDelete(_TestServiceBase):
# A DLO object is determined in _delete_object by heading the object # A DLO object is determined in _delete_object by heading the object
# and checking for the existence of a x-object-manifest header. # and checking for the existence of a x-object-manifest header.
# Mock that here. # Mock that here.
mock_conn.head_object = Mock( mock_conn.head_object = mock.Mock(
return_value={'x-object-manifest': 'manifest_c/manifest_p'} return_value={'x-object-manifest': 'manifest_c/manifest_p'}
) )
mock_conn.get_container = Mock( mock_conn.get_container = mock.Mock(
side_effect=[(None, [{'name': 'test_seg_1'}, side_effect=[(None, [{'name': 'test_seg_1'},
{'name': 'test_seg_2'}]), {'name': 'test_seg_2'}]),
(None, {})] (None, {})]
@ -495,7 +494,7 @@ class TestServiceDelete(_TestServiceBase):
def test_delete_empty_container_exception(self): def test_delete_empty_container_exception(self):
mock_conn = self._get_mock_connection() mock_conn = self._get_mock_connection()
mock_conn.delete_container = Mock(side_effect=self.exc) mock_conn.delete_container = mock.Mock(side_effect=self.exc)
expected_r = self._get_expected({ expected_r = self._get_expected({
'action': 'delete_container', 'action': 'delete_container',
'success': False, 'success': False,
@ -825,7 +824,7 @@ class TestServiceList(_TestServiceBase):
(None, [{'name': 'test_c'}]), (None, [{'name': 'test_c'}]),
(None, []) (None, [])
] ]
mock_conn.get_account = Mock(side_effect=get_account_returns) mock_conn.get_account = mock.Mock(side_effect=get_account_returns)
expected_r = self._get_expected({ expected_r = self._get_expected({
'action': 'list_account_part', 'action': 'list_account_part',
@ -841,12 +840,12 @@ class TestServiceList(_TestServiceBase):
self.assertIsNone(self._get_queue(mock_q)) self.assertIsNone(self._get_queue(mock_q))
long_opts = dict(self.opts, **{'long': True}) long_opts = dict(self.opts, **{'long': True})
mock_conn.head_container = Mock(return_value={'test_m': '1'}) mock_conn.head_container = mock.Mock(return_value={'test_m': '1'})
get_account_returns = [ get_account_returns = [
(None, [{'name': 'test_c'}]), (None, [{'name': 'test_c'}]),
(None, []) (None, [])
] ]
mock_conn.get_account = Mock(side_effect=get_account_returns) mock_conn.get_account = mock.Mock(side_effect=get_account_returns)
expected_r_long = self._get_expected({ expected_r_long = self._get_expected({
'action': 'list_account_part', 'action': 'list_account_part',
@ -868,7 +867,7 @@ class TestServiceList(_TestServiceBase):
(None, [{'name': 'test_c'}]), (None, [{'name': 'test_c'}]),
(None, []) (None, [])
] ]
mock_conn.get_account = Mock(side_effect=get_account_returns) mock_conn.get_account = mock.Mock(side_effect=get_account_returns)
expected_r = self._get_expected({ expected_r = self._get_expected({
'action': 'list_account_part', 'action': 'list_account_part',
@ -892,7 +891,7 @@ class TestServiceList(_TestServiceBase):
def test_list_account_exception(self): def test_list_account_exception(self):
mock_q = Queue() mock_q = Queue()
mock_conn = self._get_mock_connection() mock_conn = self._get_mock_connection()
mock_conn.get_account = Mock(side_effect=self.exc) mock_conn.get_account = mock.Mock(side_effect=self.exc)
expected_r = self._get_expected({ expected_r = self._get_expected({
'action': 'list_account_part', 'action': 'list_account_part',
'success': False, 'success': False,
@ -918,7 +917,7 @@ class TestServiceList(_TestServiceBase):
(None, [{'name': 'test_o'}]), (None, [{'name': 'test_o'}]),
(None, []) (None, [])
] ]
mock_conn.get_container = Mock(side_effect=get_container_returns) mock_conn.get_container = mock.Mock(side_effect=get_container_returns)
expected_r = self._get_expected({ expected_r = self._get_expected({
'action': 'list_container_part', 'action': 'list_container_part',
@ -935,12 +934,12 @@ class TestServiceList(_TestServiceBase):
self.assertIsNone(self._get_queue(mock_q)) self.assertIsNone(self._get_queue(mock_q))
long_opts = dict(self.opts, **{'long': True}) long_opts = dict(self.opts, **{'long': True})
mock_conn.head_container = Mock(return_value={'test_m': '1'}) mock_conn.head_container = mock.Mock(return_value={'test_m': '1'})
get_container_returns = [ get_container_returns = [
(None, [{'name': 'test_o'}]), (None, [{'name': 'test_o'}]),
(None, []) (None, [])
] ]
mock_conn.get_container = Mock(side_effect=get_container_returns) mock_conn.get_container = mock.Mock(side_effect=get_container_returns)
expected_r_long = self._get_expected({ expected_r_long = self._get_expected({
'action': 'list_container_part', 'action': 'list_container_part',
@ -964,7 +963,7 @@ class TestServiceList(_TestServiceBase):
(None, [{'name': 'b'}, {'name': 'c'}]), (None, [{'name': 'b'}, {'name': 'c'}]),
(None, []) (None, [])
] ]
mock_get_cont = Mock(side_effect=get_container_returns) mock_get_cont = mock.Mock(side_effect=get_container_returns)
mock_conn.get_container = mock_get_cont mock_conn.get_container = mock_get_cont
expected_r = self._get_expected({ expected_r = self._get_expected({
@ -998,7 +997,7 @@ class TestServiceList(_TestServiceBase):
(None, [{'name': 'test_o'}]), (None, [{'name': 'test_o'}]),
(None, []) (None, [])
] ]
mock_conn.get_container = Mock(side_effect=get_container_returns) mock_conn.get_container = mock.Mock(side_effect=get_container_returns)
expected_r = self._get_expected({ expected_r = self._get_expected({
'action': 'list_container_part', 'action': 'list_container_part',
@ -1027,7 +1026,7 @@ class TestServiceList(_TestServiceBase):
def test_list_container_exception(self): def test_list_container_exception(self):
mock_q = Queue() mock_q = Queue()
mock_conn = self._get_mock_connection() mock_conn = self._get_mock_connection()
mock_conn.get_container = Mock(side_effect=self.exc) mock_conn.get_container = mock.Mock(side_effect=self.exc)
expected_r = self._get_expected({ expected_r = self._get_expected({
'action': 'list_container_part', 'action': 'list_container_part',
'container': 'test_c', 'container': 'test_c',
@ -1120,7 +1119,7 @@ class TestServiceList(_TestServiceBase):
(None, [{'name': 'container14'}]), (None, [{'name': 'container14'}]),
(None, []) (None, [])
] ]
mock_conn.get_account = Mock(side_effect=get_account_returns) mock_conn.get_account = mock.Mock(side_effect=get_account_returns)
mock_get_conn.return_value = mock_conn mock_get_conn.return_value = mock_conn
s = SwiftService(options=self.opts) s = SwiftService(options=self.opts)
@ -2218,7 +2217,7 @@ class TestServiceDownload(_TestServiceBase):
sub_page.side_effect = fake_sub_page sub_page.side_effect = fake_sub_page
r = Mock(spec=Future) r = mock.Mock(spec=Future)
r.result.return_value = self._get_expected({ r.result.return_value = self._get_expected({
'success': True, 'success': True,
'start_time': 1, 'start_time': 1,
@ -2257,7 +2256,7 @@ class TestServiceDownload(_TestServiceBase):
return repr(self.value) return repr(self.value)
def _make_result(): def _make_result():
r = Mock(spec=Future) r = mock.Mock(spec=Future)
r.result.return_value = self._get_expected({ r.result.return_value = self._get_expected({
'success': True, 'success': True,
'start_time': 1, 'start_time': 1,
@ -2329,7 +2328,7 @@ class TestServiceDownload(_TestServiceBase):
}) })
with mock.patch.object(builtins, 'open') as mock_open: with mock.patch.object(builtins, 'open') as mock_open:
written_content = Mock() written_content = mock.Mock()
mock_open.return_value = written_content mock_open.return_value = written_content
s = SwiftService() s = SwiftService()
_opts = self.opts.copy() _opts = self.opts.copy()
@ -2373,7 +2372,7 @@ class TestServiceDownload(_TestServiceBase):
with mock.patch.object(builtins, 'open') as mock_open, \ with mock.patch.object(builtins, 'open') as mock_open, \
mock.patch('swiftclient.service.utime') as mock_utime: mock.patch('swiftclient.service.utime') as mock_utime:
written_content = Mock() written_content = mock.Mock()
mock_open.return_value = written_content mock_open.return_value = written_content
s = SwiftService() s = SwiftService()
_opts = self.opts.copy() _opts = self.opts.copy()
@ -2419,7 +2418,7 @@ class TestServiceDownload(_TestServiceBase):
with mock.patch.object(builtins, 'open') as mock_open, \ with mock.patch.object(builtins, 'open') as mock_open, \
mock.patch('swiftclient.service.utime') as mock_utime: mock.patch('swiftclient.service.utime') as mock_utime:
written_content = Mock() written_content = mock.Mock()
mock_open.return_value = written_content mock_open.return_value = written_content
s = SwiftService() s = SwiftService()
_opts = self.opts.copy() _opts = self.opts.copy()
@ -2464,7 +2463,7 @@ class TestServiceDownload(_TestServiceBase):
with mock.patch.object(builtins, 'open') as mock_open, \ with mock.patch.object(builtins, 'open') as mock_open, \
mock.patch('swiftclient.service.utime') as mock_utime: mock.patch('swiftclient.service.utime') as mock_utime:
written_content = Mock() written_content = mock.Mock()
mock_open.return_value = written_content mock_open.return_value = written_content
s = SwiftService() s = SwiftService()
_opts = self.opts.copy() _opts = self.opts.copy()
@ -2492,7 +2491,7 @@ class TestServiceDownload(_TestServiceBase):
def test_download_object_job_exception(self): def test_download_object_job_exception(self):
mock_conn = self._get_mock_connection() mock_conn = self._get_mock_connection()
mock_conn.get_object = Mock(side_effect=self.exc) mock_conn.get_object = mock.Mock(side_effect=self.exc)
expected_r = self._get_expected({ expected_r = self._get_expected({
'success': False, 'success': False,
'error': self.exc, 'error': self.exc,
@ -3026,7 +3025,7 @@ class TestServicePost(_TestServiceBase):
Check post method translates strings and objects to _post_object_job Check post method translates strings and objects to _post_object_job
calls correctly calls correctly
""" """
tm_instance = Mock() tm_instance = mock.Mock()
thread_manager.return_value = tm_instance thread_manager.return_value = tm_instance
self.opts.update({'meta': ["meta1:test1"], "header": ["hdr1:test1"]}) self.opts.update({'meta': ["meta1:test1"], "header": ["hdr1:test1"]})
@ -3071,7 +3070,7 @@ class TestServiceCopy(_TestServiceBase):
Check copy method translates strings and objects to _copy_object_job Check copy method translates strings and objects to _copy_object_job
calls correctly calls correctly
""" """
tm_instance = Mock() tm_instance = mock.Mock()
thread_manager.return_value = tm_instance thread_manager.return_value = tm_instance
self.opts.update({'meta': ["meta1:test1"], "header": ["hdr1:test1"]}) self.opts.update({'meta': ["meta1:test1"], "header": ["hdr1:test1"]})

View File

@ -20,10 +20,10 @@ import getpass
import hashlib import hashlib
import json import json
import logging import logging
import mock
import os import os
import tempfile import tempfile
import unittest import unittest
from unittest import mock
import textwrap import textwrap
from time import localtime, mktime, strftime, strptime from time import localtime, mktime, strftime, strptime

View File

@ -16,11 +16,11 @@
import gzip import gzip
import json import json
import logging import logging
import mock
import io import io
import socket import socket
import string import string
import unittest import unittest
from unittest import mock
import warnings import warnings
import tempfile import tempfile
from hashlib import md5 from hashlib import md5

View File

@ -17,7 +17,7 @@ import gzip
import io import io
import json import json
import unittest import unittest
import mock from unittest import mock
import tempfile import tempfile
from time import gmtime, localtime, mktime, strftime, strptime from time import gmtime, localtime, mktime, strftime, strptime
from hashlib import md5, sha1 from hashlib import md5, sha1

View File

@ -20,10 +20,10 @@ import os
import sys import sys
from time import sleep from time import sleep
import unittest import unittest
from unittest import mock
from requests import RequestException from requests import RequestException
from requests.structures import CaseInsensitiveDict from requests.structures import CaseInsensitiveDict
import mock
from urllib.parse import urlparse, ParseResult from urllib.parse import urlparse, ParseResult
from swiftclient import client as c from swiftclient import client as c
from swiftclient import shell as s from swiftclient import shell as s