Updates keystone.catalog.core.format_url tests

Since the tests were unit tests I moved them into the new directory
structure. I also added a few tests to increase the coverage to 100%.

Change-Id: I063f0712b83ddd7773458a5bb3d4f483c20eb2a2
This commit is contained in:
David Stanek 2014-06-13 18:13:03 +00:00
parent 8737b43d2c
commit 7c1a342107
3 changed files with 54 additions and 21 deletions

View File

@ -22,7 +22,6 @@ from keystoneclient.common import cms
import six
from testtools import matchers
from keystone.catalog import core
from keystone.common import driver_hints
from keystone import config
from keystone import exception
@ -3639,26 +3638,6 @@ class TrustTests(object):
self.assertIsNone(self.trust_api.get_trust(trust_data['id']))
class CommonHelperTests(tests.TestCase):
def test_format_helper_raises_malformed_on_missing_key(self):
self.assertRaises(exception.MalformedEndpoint,
core.format_url,
"http://%(foo)s/%(bar)s",
{"foo": "1"})
def test_format_helper_raises_malformed_on_wrong_type(self):
self.assertRaises(exception.MalformedEndpoint,
core.format_url,
"http://%foo%s",
{"foo": "1"})
def test_format_helper_raises_malformed_on_incomplete_format(self):
self.assertRaises(exception.MalformedEndpoint,
core.format_url,
"http://%(foo)",
{"foo": "1"})
class CatalogTests(object):
def test_region_crud(self):
# create

View File

View File

@ -0,0 +1,54 @@
# Licensed under the Apache License, Version 2.0 (the "License"); you may
# not use this file except in compliance with the License. You may obtain
# a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
# License for the specific language governing permissions and limitations
# under the License.
import testtools
from keystone.catalog import core
from keystone import exception
class FormatUrlTests(testtools.TestCase):
def test_successful_formatting(self):
url_template = 'http://%(host)s:%(port)d/%(part1)s/%(part2)s'
values = {'host': 'server', 'port': 9090, 'part1': 'A', 'part2': 'B'}
actual_url = core.format_url(url_template, values)
expected_url = 'http://server:9090/A/B'
self.assertEqual(actual_url, expected_url)
def test_raises_malformed_on_missing_key(self):
self.assertRaises(exception.MalformedEndpoint,
core.format_url,
"http://%(foo)s/%(bar)s",
{"foo": "1"})
def test_raises_malformed_on_wrong_type(self):
self.assertRaises(exception.MalformedEndpoint,
core.format_url,
"http://%foo%s",
{"foo": "1"})
def test_raises_malformed_on_incomplete_format(self):
self.assertRaises(exception.MalformedEndpoint,
core.format_url,
"http://%(foo)",
{"foo": "1"})
def test_formatting_a_non_string(self):
def _test(url_template):
expected_url = None
actual_url = core.format_url(url_template, {})
self.assertEqual(actual_url, expected_url)
_test(None)
_test(object())