summaryrefslogtreecommitdiff
path: root/openstackclient/tests/functional/compute
diff options
context:
space:
mode:
authorDean Troyer <dtroyer@gmail.com>2017-01-05 12:32:12 -0600
committerDean Troyer <dtroyer@gmail.com>2017-01-06 14:03:39 -0600
commitf825c9b81bb0aca7a623a6106fba01397cc6ebe8 (patch)
tree4a5e7f6ee469a39d441925a28bce9ad6c3dfdb27 /openstackclient/tests/functional/compute
parent8cf99c3866642d0015e4066ff414cdb9142754e6 (diff)
downloadpython-openstackclient-f825c9b81bb0aca7a623a6106fba01397cc6ebe8.tar.gz
Functional tests - flavor
* Rework functional tests to remove resource create/delete from setupClass() and teardownClass() methods. * Add tests for more command options * Use JSON output Change-Id: Ib99ef954fe8e1170c7445940180d80b8b9c0a92c
Diffstat (limited to 'openstackclient/tests/functional/compute')
-rw-r--r--openstackclient/tests/functional/compute/v2/test_flavor.py227
1 files changed, 200 insertions, 27 deletions
diff --git a/openstackclient/tests/functional/compute/v2/test_flavor.py b/openstackclient/tests/functional/compute/v2/test_flavor.py
index 794a6cc3..0b01da51 100644
--- a/openstackclient/tests/functional/compute/v2/test_flavor.py
+++ b/openstackclient/tests/functional/compute/v2/test_flavor.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,52 +19,224 @@ from openstackclient.tests.functional import base
class FlavorTests(base.TestCase):
"""Functional tests for flavor."""
- NAME = uuid.uuid4().hex
- HEADERS = ['Name']
- FIELDS = ['name']
+ PROJECT_NAME = uuid.uuid4().hex
@classmethod
def setUpClass(cls):
- opts = cls.get_opts(cls.FIELDS)
- raw_output = cls.openstack(
- 'flavor create --property a=b --property c=d ' + cls.NAME + opts)
- expected = cls.NAME + '\n'
- cls.assertOutput(expected, raw_output)
+ # Make a project
+ cmd_output = json.loads(cls.openstack(
+ "project create -f json --enable " + cls.PROJECT_NAME
+ ))
+ cls.project_id = cmd_output["id"]
@classmethod
def tearDownClass(cls):
- raw_output = cls.openstack('flavor delete ' + cls.NAME)
+ raw_output = cls.openstack("project delete " + cls.PROJECT_NAME)
cls.assertOutput('', raw_output)
+ def test_flavor_delete(self):
+ """Test create w/project, delete multiple"""
+ name1 = uuid.uuid4().hex
+ cmd_output = json.loads(self.openstack(
+ "flavor create -f json " +
+ "--project " + self.PROJECT_NAME + " " +
+ "--private " +
+ name1
+ ))
+ self.assertIsNotNone(cmd_output["id"])
+
+ name2 = uuid.uuid4().hex
+ cmd_output = json.loads(self.openstack(
+ "flavor create -f json " +
+ "--id qaz " +
+ "--project " + self.PROJECT_NAME + " " +
+ "--private " +
+ name2
+ ))
+ self.assertIsNotNone(cmd_output["id"])
+ self.assertEqual(
+ "qaz",
+ cmd_output["id"],
+ )
+
+ raw_output = self.openstack(
+ "flavor delete " + name1 + " " + name2,
+ )
+ self.assertOutput('', raw_output)
+
def test_flavor_list(self):
- opts = self.get_opts(self.HEADERS)
- raw_output = self.openstack('flavor list' + opts)
- self.assertIn("small", raw_output)
- self.assertIn(self.NAME, raw_output)
+ """Test create defaults, list filters, delete"""
+ name1 = uuid.uuid4().hex
+ cmd_output = json.loads(self.openstack(
+ "flavor create -f json " +
+ "--property a=b " +
+ "--property c=d " +
+ name1
+ ))
+ self.addCleanup(self.openstack, "flavor delete " + name1)
+ self.assertIsNotNone(cmd_output["id"])
+ self.assertEqual(
+ name1,
+ cmd_output["name"],
+ )
+
+ name2 = uuid.uuid4().hex
+ cmd_output = json.loads(self.openstack(
+ "flavor create -f json " +
+ "--id qaz " +
+ "--ram 123 " +
+ "--private " +
+ "--property a=b2 " +
+ "--property b=d2 " +
+ name2
+ ))
+ self.addCleanup(self.openstack, "flavor delete " + name2)
+ self.assertIsNotNone(cmd_output["id"])
+ self.assertEqual(
+ "qaz",
+ cmd_output["id"],
+ )
+ self.assertEqual(
+ name2,
+ cmd_output["name"],
+ )
+ self.assertEqual(
+ 123,
+ cmd_output["ram"],
+ )
+ self.assertEqual(
+ 0,
+ cmd_output["disk"],
+ )
+ self.assertEqual(
+ False,
+ cmd_output["os-flavor-access:is_public"],
+ )
+ self.assertEqual(
+ "a='b2', b='d2'",
+ cmd_output["properties"],
+ )
- def test_flavor_show(self):
- opts = self.get_opts(self.FIELDS)
- raw_output = self.openstack('flavor show ' + self.NAME + opts)
- self.assertEqual(self.NAME + "\n", raw_output)
+ # Test list
+ cmd_output = json.loads(self.openstack(
+ "flavor list -f json"
+ ))
+ col_name = [x["Name"] for x in cmd_output]
+ self.assertIn(name1, col_name)
+ self.assertNotIn(name2, col_name)
+
+ # Test list --long
+ cmd_output = json.loads(self.openstack(
+ "flavor list -f json " +
+ "--long"
+ ))
+ col_name = [x["Name"] for x in cmd_output]
+ col_properties = [x['Properties'] for x in cmd_output]
+ self.assertIn(name1, col_name)
+ self.assertIn("a='b', c='d'", col_properties)
+ self.assertNotIn(name2, col_name)
+ self.assertNotIn("b2', b='d2'", col_properties)
+
+ # Test list --public
+ cmd_output = json.loads(self.openstack(
+ "flavor list -f json " +
+ "--public"
+ ))
+ col_name = [x["Name"] for x in cmd_output]
+ self.assertIn(name1, col_name)
+ self.assertNotIn(name2, col_name)
+
+ # Test list --private
+ cmd_output = json.loads(self.openstack(
+ "flavor list -f json " +
+ "--private"
+ ))
+ col_name = [x["Name"] for x in cmd_output]
+ self.assertNotIn(name1, col_name)
+ self.assertIn(name2, col_name)
+
+ # Test list --all
+ cmd_output = json.loads(self.openstack(
+ "flavor list -f json " +
+ "--all"
+ ))
+ col_name = [x["Name"] for x in cmd_output]
+ self.assertIn(name1, col_name)
+ self.assertIn(name2, col_name)
def test_flavor_properties(self):
- opts = self.get_opts(['properties'])
- # check the properties we added in create command.
- raw_output = self.openstack('flavor show ' + self.NAME + opts)
- self.assertEqual("a='b', c='d'\n", raw_output)
+ """Test create defaults, list filters, delete"""
+ name1 = uuid.uuid4().hex
+ cmd_output = json.loads(self.openstack(
+ "flavor create -f json " +
+ "--id qaz " +
+ "--ram 123 " +
+ "--disk 20 " +
+ "--private " +
+ "--property a=first " +
+ "--property b=second " +
+ name1
+ ))
+ self.addCleanup(self.openstack, "flavor delete " + name1)
+ self.assertIsNotNone(cmd_output["id"])
+ self.assertEqual(
+ "qaz",
+ cmd_output["id"],
+ )
+ self.assertEqual(
+ name1,
+ cmd_output["name"],
+ )
+ self.assertEqual(
+ 123,
+ cmd_output["ram"],
+ )
+ self.assertEqual(
+ 20,
+ cmd_output["disk"],
+ )
+ self.assertEqual(
+ False,
+ cmd_output["os-flavor-access:is_public"],
+ )
+ self.assertEqual(
+ "a='first', b='second'",
+ cmd_output["properties"],
+ )
raw_output = self.openstack(
- 'flavor set --property e=f --property g=h ' + self.NAME
+ "flavor set " +
+ "--property a='third and 10' " +
+ "--property g=fourth " +
+ name1
)
self.assertEqual('', raw_output)
- raw_output = self.openstack('flavor show ' + self.NAME + opts)
- self.assertEqual("a='b', c='d', e='f', g='h'\n", raw_output)
+ cmd_output = json.loads(self.openstack(
+ "flavor show -f json " +
+ name1
+ ))
+ self.assertEqual(
+ "qaz",
+ cmd_output["id"],
+ )
+ self.assertEqual(
+ "a='third and 10', b='second', g='fourth'",
+ cmd_output['properties'],
+ )
raw_output = self.openstack(
- 'flavor unset --property a --property c ' + self.NAME
+ "flavor unset " +
+ "--property b " +
+ name1
)
self.assertEqual('', raw_output)
- raw_output = self.openstack('flavor show ' + self.NAME + opts)
- self.assertEqual("e='f', g='h'\n", raw_output)
+ cmd_output = json.loads(self.openstack(
+ "flavor show -f json " +
+ name1
+ ))
+ self.assertEqual(
+ "a='third and 10', g='fourth'",
+ cmd_output["properties"],
+ )