From cc6dbf73e8e0890f7086ba751b91e82fbdecd329 Mon Sep 17 00:00:00 2001 From: Isaac Mungai Date: Wed, 31 Aug 2016 15:43:50 -0400 Subject: [PATCH] Enable skipped test Also fixes domain claim logic in the mock storage layer, it should now match the same behavior in cassandra storage. Change-Id: I84490f9adf17f92f593a06303f63e5d69597711c --- poppy/storage/mockdb/services.py | 24 ++++++++++++--- tests/functional/base.py | 3 ++ .../pecan/controllers/test_services.py | 30 +++++++++---------- 3 files changed, 37 insertions(+), 20 deletions(-) diff --git a/poppy/storage/mockdb/services.py b/poppy/storage/mockdb/services.py index d9e4aee4..4a72201c 100644 --- a/poppy/storage/mockdb/services.py +++ b/poppy/storage/mockdb/services.py @@ -76,7 +76,9 @@ class ServicesController(base.ServicesController): self.created_service_ids.append(service_obj.service_id) self.created_services[service_obj.service_id] = service_obj.to_dict() for domain_obj in service_obj.domains: - self.claimed_domains.append(domain_obj.domain) + self.claimed_domains.append( + (domain_obj.domain, service_obj.service_id) + ) try: self.service_count_per_project_id[project_id] += 1 except KeyError: @@ -118,8 +120,13 @@ class ServicesController(base.ServicesController): service_id)]): self.created_services[service_id] = service_json.to_dict() for domain_obj in service_json.domains: - if domain_obj not in self.claimed_domains: - self.claimed_domains.append(domain_obj.domain) + if ( + (domain_obj.domain, service_id) not in + self.claimed_domains + ): + self.claimed_domains.append( + (domain_obj.domain, service_id) + ) else: raise ValueError("Domain has already been taken") @@ -180,7 +187,16 @@ class ServicesController(base.ServicesController): pass def domain_exists_elsewhere(self, domain_name, service_id): - return domain_name in self.claimed_domains + claimed = False + for claimed_domain, claimed_service_id in self.claimed_domains: + if ( + claimed_domain == domain_name and + claimed_service_id != service_id + ): + claimed = True + break + + return claimed def get_service_details_by_domain_name(self, domain_name, project_id=None): diff --git a/tests/functional/base.py b/tests/functional/base.py index 8c693268..57225947 100644 --- a/tests/functional/base.py +++ b/tests/functional/base.py @@ -26,3 +26,6 @@ class TestCase(base.TestCase): def setUp(self): super(TestCase, self).setUp() + + def tearDown(self): + super(TestCase, self).tearDown() diff --git a/tests/functional/transport/pecan/controllers/test_services.py b/tests/functional/transport/pecan/controllers/test_services.py index 22c1ea97..a60fd34f 100644 --- a/tests/functional/transport/pecan/controllers/test_services.py +++ b/tests/functional/transport/pecan/controllers/test_services.py @@ -289,20 +289,19 @@ class ServiceControllerTest(base.FunctionalTest): 'X-Project-ID': self.project_id }) self.assertEqual(202, response.status_code) - response = self.app.patch(response.location, - params=json.dumps([{ - "op": "add", - "path": "/domains/-", - "value": { - "domain": "mocksite", - "protocol": "https", - "certificate": "shared"} - }]), - headers={'Content-Type': - 'application/json', - 'X-Project-ID': - self.project_id - }, expect_errors=True) + response = self.app.patch( + response.location, + params=json.dumps([{ + "op": "add", + "path": "/domains/-", + "value": { + "domain": "mocksite", + "protocol": "https", + "certificate": "shared"} + }]), + headers={'Content-Type': 'application/json', + 'X-Project-ID': self.project_id} + ) self.assertEqual(202, response.status_code) # NOTE(TheSriram): Now create another service, and patch it. @@ -461,7 +460,6 @@ class ServiceControllerTest(base.FunctionalTest): self.assertEqual(400, response.status_code) def test_update_with_good_input(self): - self.skipTest('Skip failing test') response = self.app.get( self.service_url, headers={'X-Project-ID': self.project_id}) @@ -475,7 +473,7 @@ class ServiceControllerTest(base.FunctionalTest): "value": { "origin": "44.33.22.11", "port": 80, - "ssl": "false" + "ssl": False } } ]),