Adjust tenacity mock
Recent changes in tenacity have broken how we mock the wait call for the test. This change mocks out the inspect.getargspec call that is used in tenacity to fix our unit tests for now. I think it might be beneficial to not actually test the retry functionality in the tripleo-common unit tests as it seems to be more of a test for tenacity than tripleo-common. Change-Id: Ia7e9aef0ee8413fa5b09af93f7f89cb34f3f761d Closes-Bug: #1788802
This commit is contained in:
parent
18be01a011
commit
213968bb3f
|
@ -13,11 +13,13 @@
|
|||
# under the License.
|
||||
#
|
||||
|
||||
import inspect
|
||||
import json
|
||||
import mock
|
||||
import operator
|
||||
import requests
|
||||
import six
|
||||
import tenacity
|
||||
import urllib3
|
||||
|
||||
from oslo_concurrency import processutils
|
||||
|
@ -633,9 +635,9 @@ class TestDockerImageUploader(base.TestCase):
|
|||
('docker.io/t/baz', 'rdo_release', set())
|
||||
])
|
||||
|
||||
@mock.patch('tenacity.wait.wait_random_exponential.__call__')
|
||||
def test_pull_retry(self, mock_wait):
|
||||
mock_wait.return_value = 0
|
||||
def test_pull_retry(self):
|
||||
orig_call = tenacity.wait.wait_random_exponential.__call__
|
||||
orig_argspec = inspect.getargspec(orig_call)
|
||||
image = 'docker.io/tripleomaster/heat-docker-agents-centos'
|
||||
|
||||
dockerc = self.dockermock.return_value
|
||||
|
@ -646,18 +648,22 @@ class TestDockerImageUploader(base.TestCase):
|
|||
['{"error": "ouch"}'],
|
||||
['{"status": "done"}']
|
||||
]
|
||||
self.uploader._pull(dockerc, image)
|
||||
with mock.patch('tenacity.wait.wait_random_exponential.__call__') as f:
|
||||
f.return_value = 0
|
||||
with mock.patch('inspect.getargspec') as mock_args:
|
||||
mock_args.return_value = orig_argspec
|
||||
|
||||
self.assertEqual(dockerc.pull.call_count, 5)
|
||||
dockerc.pull.assert_has_calls([
|
||||
mock.call(image, tag=None, stream=True)
|
||||
])
|
||||
self.uploader._pull(dockerc, image)
|
||||
|
||||
@mock.patch('tenacity.wait.wait_random_exponential.__call__')
|
||||
def test_pull_retry_failure(self, mock_wait):
|
||||
mock_wait.return_value = 0
|
||||
self.assertEqual(dockerc.pull.call_count, 5)
|
||||
dockerc.pull.assert_has_calls([
|
||||
mock.call(image, tag=None, stream=True)
|
||||
])
|
||||
|
||||
def test_pull_retry_failure(self):
|
||||
orig_call = tenacity.wait.wait_random_exponential.__call__
|
||||
orig_argspec = inspect.getargspec(orig_call)
|
||||
image = 'docker.io/tripleomaster/heat-docker-agents-centos'
|
||||
|
||||
dockerc = self.dockermock.return_value
|
||||
dockerc.pull.side_effect = [
|
||||
urllib3.exceptions.ReadTimeoutError('p', '/foo', 'ouch'),
|
||||
|
@ -666,17 +672,23 @@ class TestDockerImageUploader(base.TestCase):
|
|||
urllib3.exceptions.ReadTimeoutError('p', '/foo', 'ouch'),
|
||||
urllib3.exceptions.ReadTimeoutError('p', '/foo', 'ouch'),
|
||||
]
|
||||
self.assertRaises(urllib3.exceptions.ReadTimeoutError,
|
||||
self.uploader._pull, dockerc, image)
|
||||
|
||||
self.assertEqual(dockerc.pull.call_count, 5)
|
||||
dockerc.pull.assert_has_calls([
|
||||
mock.call(image, tag=None, stream=True)
|
||||
])
|
||||
with mock.patch('tenacity.wait.wait_random_exponential.__call__') as f:
|
||||
f.return_value = 0
|
||||
with mock.patch('inspect.getargspec') as mock_args:
|
||||
mock_args.return_value = orig_argspec
|
||||
|
||||
@mock.patch('tenacity.wait.wait_random_exponential.__call__')
|
||||
def test_push_retry(self, mock_wait):
|
||||
mock_wait.return_value = 0
|
||||
self.assertRaises(urllib3.exceptions.ReadTimeoutError,
|
||||
self.uploader._pull, dockerc, image)
|
||||
|
||||
self.assertEqual(dockerc.pull.call_count, 5)
|
||||
dockerc.pull.assert_has_calls([
|
||||
mock.call(image, tag=None, stream=True)
|
||||
])
|
||||
|
||||
def test_push_retry(self):
|
||||
orig_call = tenacity.wait.wait_random_exponential.__call__
|
||||
orig_argspec = inspect.getargspec(orig_call)
|
||||
image = 'docker.io/tripleoupstream/heat-docker-agents-centos'
|
||||
|
||||
dockerc = self.dockermock.return_value
|
||||
|
@ -687,16 +699,21 @@ class TestDockerImageUploader(base.TestCase):
|
|||
['{"error": "ouch"}'],
|
||||
['{"status": "done"}']
|
||||
]
|
||||
self.uploader._push(dockerc, image)
|
||||
with mock.patch('tenacity.wait.wait_random_exponential.__call__') as f:
|
||||
f.return_value = 0
|
||||
with mock.patch('inspect.getargspec') as mock_args:
|
||||
mock_args.return_value = orig_argspec
|
||||
|
||||
self.assertEqual(dockerc.push.call_count, 5)
|
||||
dockerc.push.assert_has_calls([
|
||||
mock.call(image, tag=None, stream=True)
|
||||
])
|
||||
self.uploader._push(dockerc, image)
|
||||
|
||||
@mock.patch('tenacity.wait.wait_random_exponential.__call__')
|
||||
def test_push_retry_failure(self, mock_wait):
|
||||
mock_wait.return_value = 0
|
||||
self.assertEqual(dockerc.push.call_count, 5)
|
||||
dockerc.push.assert_has_calls([
|
||||
mock.call(image, tag=None, stream=True)
|
||||
])
|
||||
|
||||
def test_push_retry_failure(self):
|
||||
orig_call = tenacity.wait.wait_random_exponential.__call__
|
||||
orig_argspec = inspect.getargspec(orig_call)
|
||||
image = 'docker.io/tripleoupstream/heat-docker-agents-centos'
|
||||
|
||||
dockerc = self.dockermock.return_value
|
||||
|
@ -707,13 +724,18 @@ class TestDockerImageUploader(base.TestCase):
|
|||
['{"error": "ouch"}'],
|
||||
['{"error": "ouch"}'],
|
||||
]
|
||||
self.assertRaises(ImageUploaderException,
|
||||
self.uploader._push, dockerc, image)
|
||||
with mock.patch('tenacity.wait.wait_random_exponential.__call__') as f:
|
||||
f.return_value = 0
|
||||
with mock.patch('inspect.getargspec') as mock_args:
|
||||
mock_args.return_value = orig_argspec
|
||||
|
||||
self.assertEqual(dockerc.push.call_count, 5)
|
||||
dockerc.push.assert_has_calls([
|
||||
mock.call(image, tag=None, stream=True)
|
||||
])
|
||||
self.assertRaises(ImageUploaderException,
|
||||
self.uploader._push, dockerc, image)
|
||||
|
||||
self.assertEqual(dockerc.push.call_count, 5)
|
||||
dockerc.push.assert_has_calls([
|
||||
mock.call(image, tag=None, stream=True)
|
||||
])
|
||||
|
||||
@mock.patch('tripleo_common.image.image_uploader.'
|
||||
'DockerImageUploader._inspect')
|
||||
|
|
Loading…
Reference in New Issue