diff options
| author | Steve Martinelli <s.martinelli@gmail.com> | 2016-09-05 20:35:06 -0700 |
|---|---|---|
| committer | Steve Martinelli <s.martinelli@gmail.com> | 2016-09-09 03:29:47 +0000 |
| commit | c14d3efe6162a58cb3cdcb2834ad2508e2525018 (patch) | |
| tree | 084f7a998a410957299db58a2449dbfb1dce20a9 /openstackclient/tests/functional/network | |
| parent | 39839def2e356e8d145be89380c73a71423cf06d (diff) | |
| download | python-openstackclient-c14d3efe6162a58cb3cdcb2834ad2508e2525018.tar.gz | |
move all functional tests to tests module
functional tests should be grouped with other tests (unit and
integration tests). as part of this commit the "common" module
was renamed to just "base", this was done for simplicity.
the post_test_hook.sh file was also copied to the functional module
since it should live there. a separate change to the infra repo
will be made to call the new location, once that is merged we
can remove the old one (a new change will also be posted for that)
Needed-By: I49d54f009021d65c1ae49faf6b3f0a7acdadd7b3
Change-Id: Ie8c334f6223373b8e06df8bd8466500d2a2c8ede
Diffstat (limited to 'openstackclient/tests/functional/network')
15 files changed, 736 insertions, 0 deletions
diff --git a/openstackclient/tests/functional/network/__init__.py b/openstackclient/tests/functional/network/__init__.py new file mode 100644 index 00000000..e69de29b --- /dev/null +++ b/openstackclient/tests/functional/network/__init__.py diff --git a/openstackclient/tests/functional/network/v2/__init__.py b/openstackclient/tests/functional/network/v2/__init__.py new file mode 100644 index 00000000..e69de29b --- /dev/null +++ b/openstackclient/tests/functional/network/v2/__init__.py diff --git a/openstackclient/tests/functional/network/v2/test_address_scope.py b/openstackclient/tests/functional/network/v2/test_address_scope.py new file mode 100644 index 00000000..ef4b5756 --- /dev/null +++ b/openstackclient/tests/functional/network/v2/test_address_scope.py @@ -0,0 +1,49 @@ +# 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 uuid + +from openstackclient.tests.functional import base + + +class AddressScopeTests(base.TestCase): + """Functional tests for address scope. """ + NAME = uuid.uuid4().hex + HEADERS = ['Name'] + FIELDS = ['name'] + + @classmethod + def setUpClass(cls): + opts = cls.get_opts(cls.FIELDS) + raw_output = cls.openstack('address scope create ' + cls.NAME + opts) + cls.assertOutput(cls.NAME + "\n", raw_output) + + @classmethod + def tearDownClass(cls): + raw_output = cls.openstack('address scope delete ' + cls.NAME) + cls.assertOutput('', raw_output) + + def test_address_scope_list(self): + opts = self.get_opts(self.HEADERS) + raw_output = self.openstack('address scope list' + opts) + self.assertIn(self.NAME, raw_output) + + def test_address_scope_show(self): + opts = self.get_opts(self.FIELDS) + raw_output = self.openstack('address scope show ' + self.NAME + opts) + self.assertEqual(self.NAME + "\n", raw_output) + + def test_address_scope_set(self): + self.openstack('address scope set --share ' + self.NAME) + opts = self.get_opts(['shared']) + raw_output = self.openstack('address scope show ' + self.NAME + opts) + self.assertEqual("True\n", raw_output) diff --git a/openstackclient/tests/functional/network/v2/test_floating_ip.py b/openstackclient/tests/functional/network/v2/test_floating_ip.py new file mode 100644 index 00000000..f3a1971f --- /dev/null +++ b/openstackclient/tests/functional/network/v2/test_floating_ip.py @@ -0,0 +1,58 @@ +# 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 uuid + +from openstackclient.tests.functional import base + + +class FloatingIpTests(base.TestCase): + """Functional tests for floating ip. """ + SUBNET_NAME = uuid.uuid4().hex + NETWORK_NAME = uuid.uuid4().hex + ID = None + HEADERS = ['ID'] + FIELDS = ['id'] + + @classmethod + def setUpClass(cls): + # Create a network for the floating ip. + cls.openstack('network create --external ' + cls.NETWORK_NAME) + # Create a subnet for the network. + cls.openstack( + 'subnet create --network ' + cls.NETWORK_NAME + + ' --subnet-range 10.10.10.0/24 ' + + cls.SUBNET_NAME + ) + opts = cls.get_opts(cls.FIELDS) + raw_output = cls.openstack( + 'floating ip create ' + cls.NETWORK_NAME + opts) + cls.ID = raw_output.strip('\n') + + @classmethod + def tearDownClass(cls): + raw_output = cls.openstack('floating ip delete ' + cls.ID) + cls.assertOutput('', raw_output) + raw_output = cls.openstack('subnet delete ' + cls.SUBNET_NAME) + cls.assertOutput('', raw_output) + raw_output = cls.openstack('network delete ' + cls.NETWORK_NAME) + cls.assertOutput('', raw_output) + + def test_floating_ip_list(self): + opts = self.get_opts(self.HEADERS) + raw_output = self.openstack('floating ip list' + opts) + self.assertIn(self.ID, raw_output) + + def test_floating_ip_show(self): + opts = self.get_opts(self.FIELDS) + raw_output = self.openstack('floating ip show ' + self.ID + opts) + self.assertEqual(self.ID + "\n", raw_output) diff --git a/openstackclient/tests/functional/network/v2/test_ip_availability.py b/openstackclient/tests/functional/network/v2/test_ip_availability.py new file mode 100644 index 00000000..b5c908f4 --- /dev/null +++ b/openstackclient/tests/functional/network/v2/test_ip_availability.py @@ -0,0 +1,53 @@ +# 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 uuid + +from openstackclient.tests.functional import base + + +class IPAvailabilityTests(base.TestCase): + """Functional tests for IP availability. """ + NAME = uuid.uuid4().hex + NETWORK_NAME = uuid.uuid4().hex + FIELDS = ['network_name'] + + @classmethod + def setUpClass(cls): + # Create a network for the subnet. + cls.openstack('network create ' + cls.NETWORK_NAME) + opts = cls.get_opts(['name']) + raw_output = cls.openstack( + 'subnet create --network ' + cls.NETWORK_NAME + + ' --subnet-range 10.10.10.0/24 ' + + cls.NAME + opts + ) + expected = cls.NAME + '\n' + cls.assertOutput(expected, raw_output) + + @classmethod + def tearDownClass(cls): + raw_subnet = cls.openstack('subnet delete ' + cls.NAME) + raw_network = cls.openstack('network delete ' + cls.NETWORK_NAME) + cls.assertOutput('', raw_subnet) + cls.assertOutput('', raw_network) + + def test_ip_availability_list(self): + opts = ' -f csv -c "Network Name"' + raw_output = self.openstack('ip availability list' + opts) + self.assertIn(self.NETWORK_NAME, raw_output) + + def test_ip_availability_show(self): + opts = self.get_opts(self.FIELDS) + raw_output = self.openstack( + 'ip availability show ' + self.NETWORK_NAME + opts) + self.assertEqual(self.NETWORK_NAME + "\n", raw_output) diff --git a/openstackclient/tests/functional/network/v2/test_network.py b/openstackclient/tests/functional/network/v2/test_network.py new file mode 100644 index 00000000..c77ff642 --- /dev/null +++ b/openstackclient/tests/functional/network/v2/test_network.py @@ -0,0 +1,50 @@ +# 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 uuid + +from openstackclient.tests.functional import base + + +class NetworkTests(base.TestCase): + """Functional tests for network. """ + NAME = uuid.uuid4().hex + HEADERS = ['Name'] + FIELDS = ['name'] + + @classmethod + def setUpClass(cls): + opts = cls.get_opts(cls.FIELDS) + raw_output = cls.openstack('network create ' + cls.NAME + opts) + expected = cls.NAME + '\n' + cls.assertOutput(expected, raw_output) + + @classmethod + def tearDownClass(cls): + raw_output = cls.openstack('network delete ' + cls.NAME) + cls.assertOutput('', raw_output) + + def test_network_list(self): + opts = self.get_opts(self.HEADERS) + raw_output = self.openstack('network list' + opts) + self.assertIn(self.NAME, raw_output) + + def test_network_set(self): + raw_output = self.openstack('network set --disable ' + self.NAME) + opts = self.get_opts(['name', 'admin_state_up']) + raw_output = self.openstack('network show ' + self.NAME + opts) + self.assertEqual("DOWN\n" + self.NAME + "\n", raw_output) + + def test_network_show(self): + opts = self.get_opts(self.FIELDS) + raw_output = self.openstack('network show ' + self.NAME + opts) + self.assertEqual(self.NAME + "\n", raw_output) diff --git a/openstackclient/tests/functional/network/v2/test_network_agent.py b/openstackclient/tests/functional/network/v2/test_network_agent.py new file mode 100644 index 00000000..dd6112e7 --- /dev/null +++ b/openstackclient/tests/functional/network/v2/test_network_agent.py @@ -0,0 +1,41 @@ +# 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 openstackclient.tests.functional import base + + +class NetworkAgentTests(base.TestCase): + """Functional tests for network agent. """ + IDs = None + HEADERS = ['ID'] + FIELDS = ['id'] + + @classmethod + def test_network_agent_list(cls): + opts = cls.get_opts(cls.HEADERS) + raw_output = cls.openstack('network agent list' + opts) + # get the list of network agent IDs. + cls.IDs = raw_output.split('\n') + + def test_network_agent_show(self): + opts = self.get_opts(self.FIELDS) + raw_output = self.openstack('network agent show ' + self.IDs[0] + opts) + self.assertEqual(self.IDs[0] + "\n", raw_output) + + def test_network_agent_set(self): + opts = self.get_opts(['admin_state_up']) + self.openstack('network agent set --disable ' + self.IDs[0]) + raw_output = self.openstack('network agent show ' + self.IDs[0] + opts) + self.assertEqual("DOWN\n", raw_output) + self.openstack('network agent set --enable ' + self.IDs[0]) + raw_output = self.openstack('network agent show ' + self.IDs[0] + opts) + self.assertEqual("UP\n", raw_output) diff --git a/openstackclient/tests/functional/network/v2/test_network_rbac.py b/openstackclient/tests/functional/network/v2/test_network_rbac.py new file mode 100644 index 00000000..6f9f05e7 --- /dev/null +++ b/openstackclient/tests/functional/network/v2/test_network_rbac.py @@ -0,0 +1,69 @@ +# 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 uuid + +from openstackclient.tests.functional import base + + +class NetworkRBACTests(base.TestCase): + """Functional tests for network rbac. """ + NET_NAME = uuid.uuid4().hex + PROJECT_NAME = uuid.uuid4().hex + OBJECT_ID = None + ID = None + HEADERS = ['ID'] + FIELDS = ['id'] + + @classmethod + def setUpClass(cls): + opts = cls.get_opts(cls.FIELDS) + raw_output = cls.openstack('network create ' + cls.NET_NAME + opts) + cls.OBJECT_ID = raw_output.strip('\n') + opts = cls.get_opts(['id', 'object_id']) + raw_output = cls.openstack('network rbac create ' + + cls.OBJECT_ID + + ' --action access_as_shared' + + ' --target-project admin' + + ' --type network' + opts) + cls.ID, object_id, rol = tuple(raw_output.split('\n')) + cls.assertOutput(cls.OBJECT_ID, object_id) + + @classmethod + def tearDownClass(cls): + raw_output_rbac = cls.openstack('network rbac delete ' + cls.ID) + raw_output_network = cls.openstack('network delete ' + cls.OBJECT_ID) + cls.assertOutput('', raw_output_rbac) + cls.assertOutput('', raw_output_network) + + def test_network_rbac_list(self): + opts = self.get_opts(self.HEADERS) + raw_output = self.openstack('network rbac list' + opts) + self.assertIn(self.ID, raw_output) + + def test_network_rbac_show(self): + opts = self.get_opts(self.FIELDS) + raw_output = self.openstack('network rbac show ' + self.ID + opts) + self.assertEqual(self.ID + "\n", raw_output) + + def test_network_rbac_set(self): + opts = self.get_opts(self.FIELDS) + project_id = self.openstack( + 'project create ' + self.PROJECT_NAME + opts) + self.openstack('network rbac set ' + self.ID + + ' --target-project ' + self.PROJECT_NAME) + opts = self.get_opts(['target_project_id']) + raw_output_rbac = self.openstack('network rbac show ' + self.ID + opts) + raw_output_project = self.openstack( + 'project delete ' + self.PROJECT_NAME) + self.assertEqual(project_id, raw_output_rbac) + self.assertOutput('', raw_output_project) diff --git a/openstackclient/tests/functional/network/v2/test_network_segment.py b/openstackclient/tests/functional/network/v2/test_network_segment.py new file mode 100644 index 00000000..f871e88e --- /dev/null +++ b/openstackclient/tests/functional/network/v2/test_network_segment.py @@ -0,0 +1,60 @@ +# 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 +import uuid + +from openstackclient.tests.functional import base + + +# NOTE(rtheis): Routed networks is still a WIP and not enabled by default. +@testtools.skip("bp/routed-networks") +class NetworkSegmentTests(base.TestCase): + """Functional tests for network segment. """ + NETWORK_NAME = uuid.uuid4().hex + PHYSICAL_NETWORK_NAME = uuid.uuid4().hex + NETWORK_SEGMENT_ID = None + NETWORK_ID = None + + @classmethod + def setUpClass(cls): + # Create a network for the segment. + opts = cls.get_opts(['id']) + raw_output = cls.openstack('network create ' + cls.NETWORK_NAME + opts) + cls.NETWORK_ID = raw_output.strip('\n') + + # Get the segment for the network. + opts = cls.get_opts(['ID', 'Network']) + raw_output = cls.openstack('--os-beta-command ' + 'network segment list ' + ' --network ' + cls.NETWORK_NAME + + ' ' + opts) + raw_output_row = raw_output.split('\n')[0] + cls.NETWORK_SEGMENT_ID = raw_output_row.split(' ')[0] + + @classmethod + def tearDownClass(cls): + raw_output = cls.openstack('network delete ' + cls.NETWORK_NAME) + cls.assertOutput('', raw_output) + + def test_network_segment_list(self): + opts = self.get_opts(['ID']) + raw_output = self.openstack('--os-beta-command ' + 'network segment list' + opts) + self.assertIn(self.NETWORK_SEGMENT_ID, raw_output) + + def test_network_segment_show(self): + opts = self.get_opts(['network_id']) + raw_output = self.openstack('--os-beta-command ' + 'network segment show ' + + self.NETWORK_SEGMENT_ID + opts) + self.assertEqual(self.NETWORK_ID + "\n", raw_output) diff --git a/openstackclient/tests/functional/network/v2/test_port.py b/openstackclient/tests/functional/network/v2/test_port.py new file mode 100644 index 00000000..decd9553 --- /dev/null +++ b/openstackclient/tests/functional/network/v2/test_port.py @@ -0,0 +1,58 @@ +# 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 uuid + +from openstackclient.tests.functional import base + + +class PortTests(base.TestCase): + """Functional tests for port. """ + NAME = uuid.uuid4().hex + NETWORK_NAME = uuid.uuid4().hex + HEADERS = ['Name'] + FIELDS = ['name'] + + @classmethod + def setUpClass(cls): + # Create a network for the subnet. + cls.openstack('network create ' + cls.NETWORK_NAME) + opts = cls.get_opts(cls.FIELDS) + raw_output = cls.openstack( + 'port create --network ' + cls.NETWORK_NAME + ' ' + + cls.NAME + opts + ) + expected = cls.NAME + '\n' + cls.assertOutput(expected, raw_output) + + @classmethod + def tearDownClass(cls): + raw_output = cls.openstack('port delete ' + cls.NAME) + cls.assertOutput('', raw_output) + raw_output = cls.openstack('network delete ' + cls.NETWORK_NAME) + cls.assertOutput('', raw_output) + + def test_port_list(self): + opts = self.get_opts(self.HEADERS) + raw_output = self.openstack('port list' + opts) + self.assertIn(self.NAME, raw_output) + + def test_port_set(self): + self.openstack('port set --disable ' + self.NAME) + opts = self.get_opts(['name', 'admin_state_up']) + raw_output = self.openstack('port show ' + self.NAME + opts) + self.assertEqual("DOWN\n" + self.NAME + "\n", raw_output) + + def test_port_show(self): + opts = self.get_opts(self.FIELDS) + raw_output = self.openstack('port show ' + self.NAME + opts) + self.assertEqual(self.NAME + "\n", raw_output) diff --git a/openstackclient/tests/functional/network/v2/test_router.py b/openstackclient/tests/functional/network/v2/test_router.py new file mode 100644 index 00000000..789c3825 --- /dev/null +++ b/openstackclient/tests/functional/network/v2/test_router.py @@ -0,0 +1,50 @@ +# 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 uuid + +from openstackclient.tests.functional import base + + +class RouterTests(base.TestCase): + """Functional tests for router. """ + NAME = uuid.uuid4().hex + HEADERS = ['Name'] + FIELDS = ['name'] + + @classmethod + def setUpClass(cls): + opts = cls.get_opts(cls.FIELDS) + raw_output = cls.openstack('router create ' + cls.NAME + opts) + expected = cls.NAME + '\n' + cls.assertOutput(expected, raw_output) + + @classmethod + def tearDownClass(cls): + raw_output = cls.openstack('router delete ' + cls.NAME) + cls.assertOutput('', raw_output) + + def test_router_list(self): + opts = self.get_opts(self.HEADERS) + raw_output = self.openstack('router list' + opts) + self.assertIn(self.NAME, raw_output) + + def test_router_set(self): + self.openstack('router set --disable ' + self.NAME) + opts = self.get_opts(['name', 'admin_state_up']) + raw_output = self.openstack('router show ' + self.NAME + opts) + self.assertEqual("DOWN\n" + self.NAME + "\n", raw_output) + + def test_router_show(self): + opts = self.get_opts(self.FIELDS) + raw_output = self.openstack('router show ' + self.NAME + opts) + self.assertEqual(self.NAME + "\n", raw_output) diff --git a/openstackclient/tests/functional/network/v2/test_security_group.py b/openstackclient/tests/functional/network/v2/test_security_group.py new file mode 100644 index 00000000..debd81df --- /dev/null +++ b/openstackclient/tests/functional/network/v2/test_security_group.py @@ -0,0 +1,60 @@ +# 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 uuid + +from openstackclient.tests.functional import base + + +class SecurityGroupTests(base.TestCase): + """Functional tests for security group. """ + NAME = uuid.uuid4().hex + OTHER_NAME = uuid.uuid4().hex + HEADERS = ['Name'] + FIELDS = ['name'] + + @classmethod + def setUpClass(cls): + opts = cls.get_opts(cls.FIELDS) + raw_output = cls.openstack('security group create ' + cls.NAME + opts) + expected = cls.NAME + '\n' + cls.assertOutput(expected, raw_output) + + @classmethod + def tearDownClass(cls): + # Rename test + raw_output = cls.openstack('security group set --name ' + + cls.OTHER_NAME + ' ' + cls.NAME) + cls.assertOutput('', raw_output) + # Delete test + raw_output = cls.openstack('security group delete ' + cls.OTHER_NAME) + cls.assertOutput('', raw_output) + + def test_security_group_list(self): + opts = self.get_opts(self.HEADERS) + raw_output = self.openstack('security group list' + opts) + self.assertIn(self.NAME, raw_output) + + def test_security_group_set(self): + raw_output = self.openstack( + 'security group set --description NSA ' + self.NAME + ) + self.assertEqual('', raw_output) + + opts = self.get_opts(['description']) + raw_output = self.openstack('security group show ' + self.NAME + opts) + self.assertEqual("NSA\n", raw_output) + + def test_security_group_show(self): + opts = self.get_opts(self.FIELDS) + raw_output = self.openstack('security group show ' + self.NAME + opts) + self.assertEqual(self.NAME + "\n", raw_output) diff --git a/openstackclient/tests/functional/network/v2/test_security_group_rule.py b/openstackclient/tests/functional/network/v2/test_security_group_rule.py new file mode 100644 index 00000000..c91de1a5 --- /dev/null +++ b/openstackclient/tests/functional/network/v2/test_security_group_rule.py @@ -0,0 +1,67 @@ +# 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 uuid + +from openstackclient.tests.functional import base + + +class SecurityGroupRuleTests(base.TestCase): + """Functional tests for security group rule. """ + SECURITY_GROUP_NAME = uuid.uuid4().hex + SECURITY_GROUP_RULE_ID = None + NAME_FIELD = ['name'] + ID_FIELD = ['id'] + ID_HEADER = ['ID'] + + @classmethod + def setUpClass(cls): + # Create the security group to hold the rule. + opts = cls.get_opts(cls.NAME_FIELD) + raw_output = cls.openstack('security group create ' + + cls.SECURITY_GROUP_NAME + + opts) + expected = cls.SECURITY_GROUP_NAME + '\n' + cls.assertOutput(expected, raw_output) + + # Create the security group rule. + opts = cls.get_opts(cls.ID_FIELD) + raw_output = cls.openstack('security group rule create ' + + cls.SECURITY_GROUP_NAME + + ' --protocol tcp --dst-port 80:80' + + ' --ingress --ethertype IPv4' + + opts) + cls.SECURITY_GROUP_RULE_ID = raw_output.strip('\n') + + @classmethod + def tearDownClass(cls): + raw_output = cls.openstack('security group rule delete ' + + cls.SECURITY_GROUP_RULE_ID) + cls.assertOutput('', raw_output) + + raw_output = cls.openstack('security group delete ' + + cls.SECURITY_GROUP_NAME) + cls.assertOutput('', raw_output) + + def test_security_group_rule_list(self): + opts = self.get_opts(self.ID_HEADER) + raw_output = self.openstack('security group rule list ' + + self.SECURITY_GROUP_NAME + + opts) + self.assertIn(self.SECURITY_GROUP_RULE_ID, raw_output) + + def test_security_group_rule_show(self): + opts = self.get_opts(self.ID_FIELD) + raw_output = self.openstack('security group rule show ' + + self.SECURITY_GROUP_RULE_ID + + opts) + self.assertEqual(self.SECURITY_GROUP_RULE_ID + "\n", raw_output) diff --git a/openstackclient/tests/functional/network/v2/test_subnet.py b/openstackclient/tests/functional/network/v2/test_subnet.py new file mode 100644 index 00000000..231671f3 --- /dev/null +++ b/openstackclient/tests/functional/network/v2/test_subnet.py @@ -0,0 +1,66 @@ +# 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 uuid + +from openstackclient.tests.functional import base + + +class SubnetTests(base.TestCase): + """Functional tests for subnet. """ + NAME = uuid.uuid4().hex + NETWORK_NAME = uuid.uuid4().hex + HEADERS = ['Name'] + FIELDS = ['name'] + + @classmethod + def setUpClass(cls): + # Create a network for the subnet. + cls.openstack('network create ' + cls.NETWORK_NAME) + opts = cls.get_opts(cls.FIELDS) + raw_output = cls.openstack( + 'subnet create --network ' + cls.NETWORK_NAME + + ' --subnet-range 10.10.10.0/24 ' + + cls.NAME + opts + ) + expected = cls.NAME + '\n' + cls.assertOutput(expected, raw_output) + + @classmethod + def tearDownClass(cls): + raw_output = cls.openstack('subnet delete ' + cls.NAME) + cls.assertOutput('', raw_output) + raw_output = cls.openstack('network delete ' + cls.NETWORK_NAME) + cls.assertOutput('', raw_output) + + def test_subnet_list(self): + opts = self.get_opts(self.HEADERS) + raw_output = self.openstack('subnet list' + opts) + self.assertIn(self.NAME, raw_output) + + def test_subnet_set(self): + self.openstack('subnet set --no-dhcp ' + self.NAME) + opts = self.get_opts(['name', 'enable_dhcp']) + raw_output = self.openstack('subnet show ' + self.NAME + opts) + self.assertEqual("False\n" + self.NAME + "\n", raw_output) + + def test_subnet_set_service_type(self): + TYPE = 'network:floatingip_agent_gateway' + self.openstack('subnet set --service-type ' + TYPE + ' ' + self.NAME) + opts = self.get_opts(['name', 'service_types']) + raw_output = self.openstack('subnet show ' + self.NAME + opts) + self.assertEqual(self.NAME + "\n" + TYPE + "\n", raw_output) + + def test_subnet_show(self): + opts = self.get_opts(self.FIELDS) + raw_output = self.openstack('subnet show ' + self.NAME + opts) + self.assertEqual(self.NAME + "\n", raw_output) diff --git a/openstackclient/tests/functional/network/v2/test_subnet_pool.py b/openstackclient/tests/functional/network/v2/test_subnet_pool.py new file mode 100644 index 00000000..e52f06fc --- /dev/null +++ b/openstackclient/tests/functional/network/v2/test_subnet_pool.py @@ -0,0 +1,55 @@ +# 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 uuid + +from openstackclient.tests.functional import base + + +class SubnetPoolTests(base.TestCase): + """Functional tests for subnet pool. """ + NAME = uuid.uuid4().hex + CREATE_POOL_PREFIX = '10.100.0.0/24' + SET_POOL_PREFIX = '10.100.0.0/16' + HEADERS = ['Name'] + FIELDS = ['name'] + + @classmethod + def setUpClass(cls): + opts = cls.get_opts(cls.FIELDS) + raw_output = cls.openstack('subnet pool create --pool-prefix ' + + cls.CREATE_POOL_PREFIX + ' ' + + cls.NAME + opts) + cls.assertOutput(cls.NAME + '\n', raw_output) + + @classmethod + def tearDownClass(cls): + raw_output = cls.openstack('subnet pool delete ' + cls.NAME) + cls.assertOutput('', raw_output) + + def test_subnet_list(self): + opts = self.get_opts(self.HEADERS) + raw_output = self.openstack('subnet pool list' + opts) + self.assertIn(self.NAME, raw_output) + + def test_subnet_set(self): + self.openstack('subnet pool set --pool-prefix ' + + self.SET_POOL_PREFIX + ' ' + self.NAME) + opts = self.get_opts(['prefixes', 'name']) + raw_output = self.openstack('subnet pool show ' + self.NAME + opts) + self.assertEqual(self.NAME + '\n' + self.SET_POOL_PREFIX + '\n', + raw_output) + + def test_subnet_show(self): + opts = self.get_opts(self.FIELDS) + raw_output = self.openstack('subnet pool show ' + self.NAME + opts) + self.assertEqual(self.NAME + '\n', raw_output) |
