Unpin python-mock

Update all deprecated calls to nonexistent functions
Update some incorrect unit tests for fastly services

Change-Id: Ida6398944dfddc07812f74c98abf2218449d7bcc
This commit is contained in:
Isaac Mungai 2016-05-10 15:20:31 -04:00
parent 84b5128ffb
commit 32ef7e2d9e
6 changed files with 76 additions and 31 deletions

View File

@ -89,7 +89,7 @@ class ServicesController(base.ServicesController):
job = board.post(job_name,
book=job_logbook,
details=job_details)
LOG.info("%s posted" % (job))
LOG.info("{0} posted".format(job))
def run_task_worker(self, name):
"""Run a task flow worker (conductor).

View File

@ -102,7 +102,7 @@ class ServiceController(base.ServiceBase):
request_condition=request_condition.name
)
# Fastly cachine rule implementation
# Fastly caching rule implementation
for caching_rule in service_obj.caching:
if caching_rule.name.lower() == 'default':
self.client.update_settings(service.id,

View File

@ -887,7 +887,10 @@ class TestFlowRuns(base.TestCase):
# Keep create credentials for now
@mock.patch('pyrax.cloud_dns')
@mock.patch('pyrax.set_credentials')
def test_create_ssl_certificate_normal(self, mock_creds, mock_dns_client):
@mock.patch('cassandra.cluster.Cluster')
def test_create_ssl_certificate_normal(
self, mock_cluster, mock_creds, mock_dns_client):
providers = ['cdn_provider']
cert_obj_json = ssl_certificate.SSLCertificate('cdn',
'mytestsite.com',
@ -915,7 +918,10 @@ class TestFlowRuns(base.TestCase):
@mock.patch('pyrax.cloud_dns')
@mock.patch('pyrax.set_credentials')
def test_recreate_ssl_certificate(self, mock_creds, mock_dns_client):
@mock.patch('cassandra.cluster.Cluster')
def test_recreate_ssl_certificate(
self, mock_cluster, mock_creds, mock_dns_client):
providers = ['cdn_provider']
cert_obj_json = ssl_certificate.SSLCertificate('cdn',
'mytestsite.com',
@ -945,7 +951,9 @@ class TestFlowRuns(base.TestCase):
# Keep create credentials for now
@mock.patch('pyrax.cloud_dns')
@mock.patch('pyrax.set_credentials')
def test_delete_ssl_certificate_normal(self, mock_creds, mock_dns_client):
@mock.patch('cassandra.cluster.Cluster')
def test_delete_ssl_certificate_normal(
self, mock_cluster, mock_creds, mock_dns_client):
kwargs = {
'cert_type': "san",

View File

@ -39,17 +39,27 @@ class TestServiceController(base.TestCase):
self.distributed_task_driver.job_board = mock.Mock()
self.distributed_task_driver.job_board.return_value = (
self.mock_persistence_n_board.copy())
self.distributed_task_driver.job_board.return_value.__enter__ = (
mock.Mock()
)
self.distributed_task_driver.job_board.return_value.__exit__ = (
mock.Mock()
)
def test_persistence(self):
self.assertTrue(self.distributed_task_driver.persistence is not None)
def test_submit_task(self):
flow_factory = mock.Mock()
flow_factory = mock.MagicMock
self.distributed_task_driver.services_controller.submit_task(
flow_factory,
**{})
self.mock_persistence_n_board.get_connection.assert_called()
self.mock_persistence_n_board.post.assert_called()
# save the job logbook
self.mock_persistence_n_board.__enter__().\
get_connection().save_logbook.assert_called()
# post job to board
self.mock_persistence_n_board.copy().__enter__().post.assert_called()
def test_run_task_worker(self):
self.distributed_task_driver.services_controller.run_task_worker(

View File

@ -36,8 +36,14 @@ class TestServices(base.TestCase):
@mock.patch('fastly.FastlyVersion')
@mock.patch('poppy.provider.fastly.services.ServiceController.client')
@mock.patch('poppy.provider.fastly.driver.CDNProvider')
def setUp(self, mock_connection, mock_service, mock_version,
mock_controllerclient, mock_driver):
def setUp(
self,
mock_driver,
mock_controllerclient,
mock_version,
mock_service,
mock_connection
):
super(TestServices, self).setUp()
self.driver = mock_driver()
self.driver.provider_name = 'Fastly'
@ -56,6 +62,7 @@ class TestServices(base.TestCase):
self.version = self.mock_version(
self.controller.client,
self.mock_create_version_resp)
self.version.number = self.mock_create_version_resp.get('number')
self.controller.client.create_service.return_value = (
self.service_instance)
self.controller.client.create_version.return_value = self.version
@ -197,8 +204,9 @@ class TestServices(base.TestCase):
self.assertEqual(False,
controller.client.create_response_object.called)
controller.client.create_backend.assert_has_any_call(
self.service_instance.id, 1,
controller.client.create_backend.assert_any_call(
self.service_instance.id,
self.version.number,
service_obj.origins[0].origin.replace(":", "-"),
service_obj.origins[0].origin,
service_obj.origins[0].ssl,
@ -247,26 +255,36 @@ class TestServices(base.TestCase):
controller.client.check_domains.assert_called_once_with(
self.service_instance.id, self.version.number)
referrer_resctriction_list = [rule.http_host
for restriction in
service_obj.restrictions
for rule in restriction.rules]
referrer_restriction_list = [rule.referrer
for restriction in
service_obj.restrictions
for rule in restriction.rules
if hasattr(rule, 'referrer')]
# referrer assert
host_pattern_stament = ' || '.join(['request.http.referer'
' !~ %s' % host for host in
referrer_resctriction_list])
host_pattern_statement = ' || '.join(['req.http.referer'
' !~ "%s"' % host for host in
referrer_restriction_list
if host is not None])
condition_stmt = ('req.http.referer && (%s)'
% host_pattern_stament)
% host_pattern_statement)
controller.client.create_condition.assert_has_any_call(
self.service_instance.id, 1,
controller.client.create_condition.assert_any_call(
self.service_instance.id,
self.version.number,
'Referrer Restriction Matching Rules',
fastly.FastlyConditionType.REQUEST,
condition_stmt,
priority=10)
controller.client.create_response_object.assert_has_any_call()
controller.client.create_response_object.assert_any_call(
self.service_instance.id,
self.version.number,
'Referrer Restriction response rule(s)',
content='Referring from a non-permitted domain',
status='403',
request_condition=controller.client.create_condition().name
)
# cache rule asset
# create condition first
@ -278,10 +296,20 @@ class TestServices(base.TestCase):
{'general.default_ttl': caching_rule.ttl}
)
else:
controller.client.create_cache_settings.assert_has_any_call()
controller.client.create_backend.assert_has_any_call(
self.service_instance.id, 1,
controller.client.create_cache_settings.assert_any_call(
self.service_instance.id,
self.version.number,
caching_rule.name,
None,
cache_condition=controller.client.create_condition().name,
stale_ttl=0,
ttl=caching_rule.ttl
)
controller.client.create_backend.assert_any_call(
self.service_instance.id,
self.version.number,
service_obj.origins[0].origin.replace(":", "-"),
service_obj.origins[0].origin,
service_obj.origins[0].ssl,
@ -312,7 +340,7 @@ class TestServices(base.TestCase):
origins=[current_origin],
flavor_id='cdn',
project_id=str(uuid.uuid4()))
resp = controller.delete(service_obj, provider_service_id)
exception = fastly.FastlyError(Exception('ding'))
controller.client.delete_service.side_effect = exception
resp = controller.delete(service_obj, provider_service_id)
@ -398,7 +426,7 @@ class TestProviderValidation(base.TestCase):
@mock.patch('poppy.provider.fastly.services.ServiceController.client')
@mock.patch('poppy.provider.fastly.driver.CDNProvider')
def setUp(self, mock_client, mock_driver):
def setUp(self, mock_driver, mock_client):
super(TestProviderValidation, self).setUp()
self.driver = mock_driver()
@ -460,7 +488,7 @@ class TestProviderValidation(base.TestCase):
def test_get_service_details_error(self):
error = fastly.FastlyError('DIMMM')
self.controller.client.get_service_by_name.side_effect = error
resp = self.controller.get('rror-service')
resp = self.controller.get('error-service')
self.assertIn('error', resp[self.driver.provider_name])

View File

@ -18,8 +18,7 @@ setenv = VIRTUAL_ENV={envdir}
PYTHONDONTWRITEBYTECODE=1
deps = -r{toxinidir}/requirements/requirements.txt
-r{toxinidir}/tests/test-requirements.txt
commands = pip install -U mock==1.0.1
pip install git+https://github.com/stackforge/opencafe.git#egg=cafe
commands = pip install git+https://github.com/stackforge/opencafe.git#egg=cafe
nosetests tests.unit tests.functional {posargs:--nologcapture}
[testenv:pep8]