From c8ab58bf61afb7c1f16018ba79bb102d399c6466 Mon Sep 17 00:00:00 2001 From: "zhiyong.dai" <zhiyong.dai@easystack.cn> Date: Thu, 24 Nov 2016 22:45:21 +0800 Subject: [PATCH] Functional test for server group Rework functional tests to remove resource create/delete from setupClass() and teardownClass() methods. Change-Id: Ia852e48d3bcf706eefa56b03ba1f02b3fd7605cd --- .../compute/v2/test_server_group.py | 104 ++++++++++++++---- 1 file changed, 82 insertions(+), 22 deletions(-) diff --git a/openstackclient/tests/functional/compute/v2/test_server_group.py b/openstackclient/tests/functional/compute/v2/test_server_group.py index 3f0a24e5f9..44ecda1de7 100644 --- a/openstackclient/tests/functional/compute/v2/test_server_group.py +++ b/openstackclient/tests/functional/compute/v2/test_server_group.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 @@ -18,29 +19,88 @@ from openstackclient.tests.functional import base class ServerGroupTests(base.TestCase): """Functional tests for servergroup.""" - NAME = uuid.uuid4().hex - HEADERS = ['Name'] - FIELDS = ['name'] + def test_server_group_delete(self): + """Test create, delete multiple""" + name1 = uuid.uuid4().hex + name2 = uuid.uuid4().hex + cmd_output = json.loads(self.openstack( + 'server group create -f json ' + + '--policy affinity ' + + name1 + )) + self.assertEqual( + name1, + cmd_output['name'] + ) + self.assertEqual( + 'affinity', + cmd_output['policies'] + ) - @classmethod - def setUpClass(cls): - opts = cls.get_opts(cls.FIELDS) - raw_output = cls.openstack('server group create --policy affinity ' + - cls.NAME + opts) - expected = cls.NAME + '\n' - cls.assertOutput(expected, raw_output) + cmd_output = json.loads(self.openstack( + 'server group create -f json ' + + '--policy anti-affinity ' + + name2 + )) + self.assertEqual( + name2, + cmd_output['name'] + ) + self.assertEqual( + 'anti-affinity', + cmd_output['policies'] + ) - @classmethod - def tearDownClass(cls): - raw_output = cls.openstack('server group delete ' + cls.NAME) - cls.assertOutput('', raw_output) + del_output = self.openstack( + 'server group delete ' + name1 + ' ' + name2) + self.assertOutput('', del_output) - def test_server_group_list(self): - opts = self.get_opts(self.HEADERS) - raw_output = self.openstack('server group list' + opts) - self.assertIn(self.NAME, raw_output) + def test_server_group_show_and_list(self): + """Test server group create, show, and list""" + name1 = uuid.uuid4().hex + name2 = uuid.uuid4().hex - def test_server_group_show(self): - opts = self.get_opts(self.FIELDS) - raw_output = self.openstack('server group show ' + self.NAME + opts) - self.assertEqual(self.NAME + "\n", raw_output) + # test server gorup show + cmd_output = json.loads(self.openstack( + 'server group create -f json ' + + '--policy affinity ' + + name1 + )) + self.addCleanup(self.openstack, 'server group delete ' + name1) + cmd_output = json.loads(self.openstack( + 'server group show -f json ' + name1)) + self.assertEqual( + name1, + cmd_output['name'] + ) + self.assertEqual( + 'affinity', + cmd_output['policies'] + ) + + cmd_output = json.loads(self.openstack( + 'server group create -f json ' + + '--policy anti-affinity ' + + name2 + )) + self.addCleanup(self.openstack, 'server group delete ' + name2) + cmd_output = json.loads(self.openstack( + 'server group show -f json ' + name2)) + self.assertEqual( + name2, + cmd_output['name'] + ) + self.assertEqual( + 'anti-affinity', + cmd_output['policies'] + ) + + # test server group list + cmd_output = json.loads(self.openstack( + 'server group list -f json')) + names = [x["Name"] for x in cmd_output] + self.assertIn(name1, names) + self.assertIn(name2, names) + policies = [x["Policies"] for x in cmd_output] + self.assertIn('affinity', policies) + self.assertIn('anti-affinity', policies)