diff --git a/openstackclient/tests/functional/network/v2/test_network_rbac.py b/openstackclient/tests/functional/network/v2/test_network_rbac.py index 2206761f04..3bbe4f27cf 100644 --- a/openstackclient/tests/functional/network/v2/test_network_rbac.py +++ b/openstackclient/tests/functional/network/v2/test_network_rbac.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.network.v2 import common @@ -22,69 +23,51 @@ class NetworkRBACTests(common.NetworkTests): HEADERS = ['ID'] FIELDS = ['id'] - @classmethod - def setUpClass(cls): - common.NetworkTests.setUpClass() - if cls.haz_network: - cls.NET_NAME = uuid.uuid4().hex - cls.PROJECT_NAME = uuid.uuid4().hex - - 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): - try: - if cls.haz_network: - 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) - finally: - super(NetworkRBACTests, cls).tearDownClass() - def setUp(self): super(NetworkRBACTests, self).setUp() # Nothing in this class works with Nova Network if not self.haz_network: self.skipTest("No Network service present") + self.NET_NAME = uuid.uuid4().hex + self.PROJECT_NAME = uuid.uuid4().hex + + cmd_output = json.loads(self.openstack( + 'network create -f json ' + self.NET_NAME + )) + self.addCleanup(self.openstack, + 'network delete ' + cmd_output['id']) + self.OBJECT_ID = cmd_output['id'] + + cmd_output = json.loads(self.openstack( + 'network rbac create -f json ' + + self.OBJECT_ID + + ' --action access_as_shared' + + ' --target-project admin' + + ' --type network' + )) + self.addCleanup(self.openstack, + 'network rbac delete ' + cmd_output['id']) + self.ID = cmd_output['id'] + self.assertEqual(self.OBJECT_ID, cmd_output['object_id']) + 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) + cmd_output = json.loads(self.openstack('network rbac list -f json')) + self.assertIn(self.ID, [rbac['ID'] for rbac in cmd_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) + cmd_output = json.loads(self.openstack( + 'network rbac show -f json ' + self.ID)) + self.assertEqual(self.ID, cmd_output['id']) def test_network_rbac_set(self): - opts = self.get_opts(self.FIELDS) - project_id = self.openstack( - 'project create ' + self.PROJECT_NAME + opts) + project_id = json.loads(self.openstack( + 'project create -f json ' + self.PROJECT_NAME))['id'] 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) + cmd_output_rbac = json.loads(self.openstack( + 'network rbac show -f json ' + self.ID)) + self.assertEqual(project_id, cmd_output_rbac['target_project_id']) raw_output_project = self.openstack( 'project delete ' + self.PROJECT_NAME) - self.assertEqual(project_id, raw_output_rbac) - self.assertOutput('', raw_output_project) + self.assertEqual('', raw_output_project) diff --git a/openstackclient/tests/functional/network/v2/test_network_service_provider.py b/openstackclient/tests/functional/network/v2/test_network_service_provider.py index 8ed44dd909..999b7eb713 100644 --- a/openstackclient/tests/functional/network/v2/test_network_service_provider.py +++ b/openstackclient/tests/functional/network/v2/test_network_service_provider.py @@ -13,14 +13,14 @@ # License for the specific language governing permissions and limitations # under the License. +import json + from openstackclient.tests.functional.network.v2 import common class TestNetworkServiceProvider(common.NetworkTests): """Functional tests for network service provider""" - SERVICE_TYPE = 'L3_ROUTER_NAT' - def setUp(self): super(TestNetworkServiceProvider, self).setUp() # Nothing in this class works with Nova Network @@ -28,5 +28,6 @@ class TestNetworkServiceProvider(common.NetworkTests): self.skipTest("No Network service present") def test_network_service_provider_list(self): - raw_output = self.openstack('network service provider list') - self.assertIn(self.SERVICE_TYPE, raw_output) + cmd_output = json.loads(self.openstack( + 'network service provider list -f json')) + self.assertIn('L3_ROUTER_NAT', [x['Service Type'] for x in cmd_output])