summaryrefslogtreecommitdiff
path: root/openstackclient/tests/functional/network
diff options
context:
space:
mode:
authorjiahui.qiang <jiahui.qiang@easystack.cn>2017-01-18 21:27:35 +0800
committerjiahui.qiang <jiahui.qiang@easystack.cn>2017-01-19 01:26:08 +0800
commitf96cff1a6dc40ea78a5d530b95626abf6f0e2467 (patch)
tree282a3c09ca46a6f7fa4ad6a56e28ffcface9ec13 /openstackclient/tests/functional/network
parent4b4194755a944ca6daf1a7547a334b21f52e3333 (diff)
downloadpython-openstackclient-f96cff1a6dc40ea78a5d530b95626abf6f0e2467.tar.gz
Functional test for router
Refactor functional tests for testing more command options. Change-Id: I6200045c6228e245fc48a4d48d4b3796dede61b5
Diffstat (limited to 'openstackclient/tests/functional/network')
-rw-r--r--openstackclient/tests/functional/network/v2/test_router.py235
1 files changed, 206 insertions, 29 deletions
diff --git a/openstackclient/tests/functional/network/v2/test_router.py b/openstackclient/tests/functional/network/v2/test_router.py
index 789c3825..443f68b2 100644
--- a/openstackclient/tests/functional/network/v2/test_router.py
+++ b/openstackclient/tests/functional/network/v2/test_router.py
@@ -10,6 +10,7 @@
# License for the specific language governing permissions and limitations
# under the License.
+import json
import uuid
from openstackclient.tests.functional import base
@@ -17,34 +18,210 @@ 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_create_and_delete(self):
+ """Test create options, delete"""
+ name1 = uuid.uuid4().hex
+ name2 = uuid.uuid4().hex
+ cmd_output = json.loads(self.openstack(
+ 'router create -f json ' +
+ name1
+ ))
+ self.assertEqual(
+ name1,
+ cmd_output["name"],
+ )
+ cmd_output = json.loads(self.openstack(
+ 'router create -f json ' +
+ name2
+ ))
+ self.assertEqual(
+ name2,
+ cmd_output["name"],
+ )
+
+ del_output = self.openstack(
+ 'router delete ' + name1 + ' ' + name2)
+ self.assertOutput('', del_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)
+ """Test create, list filter"""
+ # Get project IDs
+ cmd_output = json.loads(self.openstack('token issue -f json '))
+ auth_project_id = cmd_output['project_id']
+
+ cmd_output = json.loads(self.openstack('project list -f json '))
+ admin_project_id = None
+ demo_project_id = None
+ for p in cmd_output:
+ if p['Name'] == 'admin':
+ admin_project_id = p['ID']
+ if p['Name'] == 'demo':
+ demo_project_id = p['ID']
+
+ # Verify assumptions:
+ # * admin and demo projects are present
+ # * demo and admin are distinct projects
+ # * tests run as admin
+ self.assertIsNotNone(admin_project_id)
+ self.assertIsNotNone(demo_project_id)
+ self.assertNotEqual(admin_project_id, demo_project_id)
+ self.assertEqual(admin_project_id, auth_project_id)
+
+ name1 = uuid.uuid4().hex
+ name2 = uuid.uuid4().hex
+ cmd_output = json.loads(self.openstack(
+ 'router create -f json ' +
+ '--disable ' +
+ name1
+ ))
+ self.assertEqual(
+ name1,
+ cmd_output["name"],
+ )
+ self.assertEqual(
+ "DOWN",
+ cmd_output["admin_state_up"],
+ )
+ self.assertEqual(
+ admin_project_id,
+ cmd_output["project_id"],
+ )
+ cmd_output = json.loads(self.openstack(
+ 'router create -f json ' +
+ '--project ' + demo_project_id +
+ ' ' + name2
+ ))
+ self.assertEqual(
+ name2,
+ cmd_output["name"],
+ )
+ self.assertEqual(
+ "UP",
+ cmd_output["admin_state_up"],
+ )
+ self.assertEqual(
+ demo_project_id,
+ cmd_output["project_id"],
+ )
+
+ # Test list --project
+ cmd_output = json.loads(self.openstack(
+ 'router list -f json ' +
+ '--project ' + demo_project_id
+ ))
+ names = [x["Name"] for x in cmd_output]
+ self.assertNotIn(name1, names)
+ self.assertIn(name2, names)
+
+ # Test list --disable
+ cmd_output = json.loads(self.openstack(
+ 'router list -f json ' +
+ '--disable '
+ ))
+ names = [x["Name"] for x in cmd_output]
+ self.assertIn(name1, names)
+ self.assertNotIn(name2, names)
+
+ # Test list --name
+ cmd_output = json.loads(self.openstack(
+ 'router list -f json ' +
+ '--name ' + name1
+ ))
+ names = [x["Name"] for x in cmd_output]
+ self.assertIn(name1, names)
+ self.assertNotIn(name2, names)
+
+ # Test list --long
+ cmd_output = json.loads(self.openstack(
+ 'router list -f json ' +
+ '--long '
+ ))
+ names = [x["Name"] for x in cmd_output]
+ self.assertIn(name1, names)
+ self.assertIn(name2, names)
+
+ del_output = self.openstack(
+ 'router delete ' + name1 + ' ' + name2)
+ self.assertOutput('', del_output)
+
+ def test_router_set_show_unset(self):
+ """Tests create router, set, unset, show, delete"""
+
+ name = uuid.uuid4().hex
+ new_name = name + "_"
+ cmd_output = json.loads(self.openstack(
+ 'router create -f json ' +
+ '--description aaaa ' +
+ name
+ ))
+ self.assertEqual(
+ name,
+ cmd_output["name"],
+ )
+ self.assertEqual(
+ 'aaaa',
+ cmd_output["description"],
+ )
+
+ # Test set --disable
+ cmd_output = self.openstack(
+ 'router set ' +
+ '--name ' + new_name +
+ ' --description bbbb ' +
+ '--disable ' +
+ name
+ )
+ self.assertOutput('', cmd_output)
+
+ cmd_output = json.loads(self.openstack(
+ 'router show -f json ' +
+ new_name
+ ))
+ self.assertEqual(
+ new_name,
+ cmd_output["name"],
+ )
+ self.assertEqual(
+ 'bbbb',
+ cmd_output["description"],
+ )
+ self.assertEqual(
+ 'DOWN',
+ cmd_output["admin_state_up"],
+ )
+
+ # Test set --ha --distributed
+ cmd_output = self.openstack(
+ 'router set ' +
+ '--distributed ' +
+ '--external-gateway public ' +
+ new_name
+ )
+ self.assertOutput('', cmd_output)
+
+ cmd_output = json.loads(self.openstack(
+ 'router show -f json ' +
+ new_name
+ ))
+ self.assertEqual(
+ True,
+ cmd_output["distributed"],
+ )
+ self.assertIsNotNone(cmd_output["external_gateway_info"])
+
+ # Test unset
+ cmd_output = self.openstack(
+ 'router unset ' +
+ '--external-gateway ' +
+ new_name
+ )
+ cmd_output = json.loads(self.openstack(
+ 'router show -f json ' +
+ new_name
+ ))
+ self.assertIsNone(cmd_output["external_gateway_info"])
+
+ del_output = self.openstack(
+ 'router delete ' + new_name)
+ self.assertOutput('', del_output)