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
This commit is contained in:
Isaac Mungai 2016-08-31 15:43:50 -04:00
parent 414261ac13
commit cc6dbf73e8
3 changed files with 37 additions and 20 deletions

View File

@ -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):

View File

@ -26,3 +26,6 @@ class TestCase(base.TestCase):
def setUp(self):
super(TestCase, self).setUp()
def tearDown(self):
super(TestCase, self).tearDown()

View File

@ -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
}
}
]),