summaryrefslogtreecommitdiff
path: root/novaclient/tests/unit/fixture_data/floatingips.py
diff options
context:
space:
mode:
authorJoe Gordon <joe.gordon0@gmail.com>2015-01-27 12:59:15 -0800
committerJoe Gordon <joe.gordon0@gmail.com>2015-01-27 13:06:06 -0800
commit3561772f8b0cfee746af53fa228375b2ec7dfd9d (patch)
treedb17dcd13f893639354b48b9288cbbd407d56b0b /novaclient/tests/unit/fixture_data/floatingips.py
parent7544dcb4ea92247c1e8fa97b8f0aba566e33ca48 (diff)
downloadpython-novaclient-3561772f8b0cfee746af53fa228375b2ec7dfd9d.tar.gz
Move unit tests into unit test directory
In order to pave the way for functional testing, move existing unit tests into a directory labeled unit. A subsequent patch will add a directory for functional tests. Change-Id: I0adb8b9f14451acb382c725d31f5387b4b6d82bb
Diffstat (limited to 'novaclient/tests/unit/fixture_data/floatingips.py')
-rw-r--r--novaclient/tests/unit/fixture_data/floatingips.py211
1 files changed, 211 insertions, 0 deletions
diff --git a/novaclient/tests/unit/fixture_data/floatingips.py b/novaclient/tests/unit/fixture_data/floatingips.py
new file mode 100644
index 00000000..10772a79
--- /dev/null
+++ b/novaclient/tests/unit/fixture_data/floatingips.py
@@ -0,0 +1,211 @@
+# 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.
+
+from oslo.serialization import jsonutils
+
+from novaclient.tests.unit import fakes
+from novaclient.tests.unit.fixture_data import base
+
+
+class FloatingFixture(base.Fixture):
+
+ base_url = 'os-floating-ips'
+
+ def setUp(self):
+ super(FloatingFixture, self).setUp()
+
+ floating_ips = [{'id': 1, 'fixed_ip': '10.0.0.1', 'ip': '11.0.0.1'},
+ {'id': 2, 'fixed_ip': '10.0.0.2', 'ip': '11.0.0.2'}]
+
+ get_os_floating_ips = {'floating_ips': floating_ips}
+ self.requests.register_uri('GET', self.url(),
+ json=get_os_floating_ips,
+ headers=self.json_headers)
+
+ for ip in floating_ips:
+ get_os_floating_ip = {'floating_ip': ip}
+ self.requests.register_uri('GET', self.url(ip['id']),
+ json=get_os_floating_ip,
+ headers=self.json_headers)
+
+ self.requests.register_uri('DELETE', self.url(ip['id']),
+ headers=self.json_headers,
+ status_code=204)
+
+ def post_os_floating_ips(request, context):
+ body = jsonutils.loads(request.body)
+ ip = floating_ips[0].copy()
+ ip['pool'] = body.get('pool')
+ return {'floating_ip': ip}
+ self.requests.register_uri('POST', self.url(),
+ json=post_os_floating_ips,
+ headers=self.json_headers)
+
+
+class DNSFixture(base.Fixture):
+
+ base_url = 'os-floating-ip-dns'
+
+ def setUp(self):
+ super(DNSFixture, self).setUp()
+
+ get_os_floating_ip_dns = {
+ 'domain_entries': [
+ {'domain': 'example.org'},
+ {'domain': 'example.com'}
+ ]
+ }
+ self.requests.register_uri('GET', self.url(),
+ json=get_os_floating_ip_dns,
+ headers=self.json_headers,
+ status_code=205)
+
+ get_dns_testdomain_entries_testname = {
+ 'dns_entry': {
+ 'ip': "10.10.10.10",
+ 'name': 'testname',
+ 'type': "A",
+ 'domain': 'testdomain'
+ }
+ }
+ url = self.url('testdomain', 'entries', 'testname')
+ self.requests.register_uri('GET', url,
+ json=get_dns_testdomain_entries_testname,
+ headers=self.json_headers,
+ status_code=205)
+
+ self.requests.register_uri('DELETE', self.url('testdomain'))
+
+ url = self.url('testdomain', 'entries', 'testname')
+ self.requests.register_uri('DELETE', url)
+
+ def put_dns_testdomain_entries_testname(request, context):
+ body = jsonutils.loads(request.body)
+ fakes.assert_has_keys(body['dns_entry'],
+ required=['ip', 'dns_type'])
+ context.status_code = 205
+ return request.body
+ self.requests.register_uri('PUT', url,
+ text=put_dns_testdomain_entries_testname,
+ headers=self.json_headers)
+
+ url = self.url('testdomain', 'entries')
+ self.requests.register_uri('GET', url, status_code=404)
+
+ get_os_floating_ip_dns_testdomain = {
+ 'dns_entries': [
+ {
+ 'dns_entry': {
+ 'ip': '1.2.3.4',
+ 'name': "host1",
+ 'type': "A",
+ 'domain': 'testdomain'
+ }
+ },
+ {
+ 'dns_entry': {
+ 'ip': '1.2.3.4',
+ 'name': "host2",
+ 'type': "A",
+ 'domain': 'testdomain'
+ }
+ },
+ ]
+ }
+ self.requests.register_uri('GET', url + '?ip=1.2.3.4',
+ json=get_os_floating_ip_dns_testdomain,
+ status_code=205,
+ headers=self.json_headers)
+
+ def put_os_floating_ip_dns_testdomain(request, context):
+ body = jsonutils.loads(request.body)
+ if body['domain_entry']['scope'] == 'private':
+ fakes.assert_has_keys(body['domain_entry'],
+ required=['availability_zone', 'scope'])
+ elif body['domain_entry']['scope'] == 'public':
+ fakes.assert_has_keys(body['domain_entry'],
+ required=['project', 'scope'])
+ else:
+ fakes.assert_has_keys(body['domain_entry'],
+ required=['project', 'scope'])
+
+ return request.body
+
+ self.requests.register_uri('PUT', self.url('testdomain'),
+ text=put_os_floating_ip_dns_testdomain,
+ status_code=205,
+ headers=self.json_headers)
+
+
+class BulkFixture(base.Fixture):
+
+ base_url = 'os-floating-ips-bulk'
+
+ def setUp(self):
+ super(BulkFixture, self).setUp()
+
+ get_os_floating_ips_bulk = {
+ 'floating_ip_info': [
+ {'id': 1, 'fixed_ip': '10.0.0.1', 'ip': '11.0.0.1'},
+ {'id': 2, 'fixed_ip': '10.0.0.2', 'ip': '11.0.0.2'},
+ ]
+ }
+ self.requests.register_uri('GET', self.url(),
+ json=get_os_floating_ips_bulk,
+ headers=self.json_headers)
+ self.requests.register_uri('GET', self.url('testHost'),
+ json=get_os_floating_ips_bulk,
+ headers=self.json_headers)
+
+ def put_os_floating_ips_bulk_delete(request, context):
+ body = jsonutils.loads(request.body)
+ ip_range = body.get('ip_range')
+ return {'floating_ips_bulk_delete': ip_range}
+
+ self.requests.register_uri('PUT', self.url('delete'),
+ json=put_os_floating_ips_bulk_delete,
+ headers=self.json_headers)
+
+ def post_os_floating_ips_bulk(request, context):
+ body = jsonutils.loads(request.body)
+ params = body.get('floating_ips_bulk_create')
+ pool = params.get('pool', 'defaultPool')
+ interface = params.get('interface', 'defaultInterface')
+ return {
+ 'floating_ips_bulk_create': {
+ 'ip_range': '192.168.1.0/30',
+ 'pool': pool,
+ 'interface': interface
+ }
+ }
+
+ self.requests.register_uri('POST', self.url(),
+ json=post_os_floating_ips_bulk,
+ headers=self.json_headers)
+
+
+class PoolsFixture(base.Fixture):
+
+ base_url = 'os-floating-ip-pools'
+
+ def setUp(self):
+ super(PoolsFixture, self).setUp()
+
+ get_os_floating_ip_pools = {
+ 'floating_ip_pools': [
+ {'name': 'foo'},
+ {'name': 'bar'}
+ ]
+ }
+ self.requests.register_uri('GET', self.url(),
+ json=get_os_floating_ip_pools,
+ headers=self.json_headers)