summaryrefslogtreecommitdiff
path: root/openstackclient
diff options
context:
space:
mode:
authorDean Troyer <dtroyer@gmail.com>2017-01-04 19:24:49 -0600
committerDean Troyer <dtroyer@gmail.com>2017-01-05 07:49:58 -0600
commite0813cc54eaf15a553a8273236482e92dc3bf85c (patch)
tree0ac5fd060c8a87a25e8ac6eca634ff639ad32590 /openstackclient
parente6e3cd295ceadadaf7e85a719dc9545157c16e41 (diff)
downloadpython-openstackclient-e0813cc54eaf15a553a8273236482e92dc3bf85c.tar.gz
Functional tests - port
* Rework functional tests to remove resource create/delete from setupClass() and teardownClass() methods. * Add tests for more command options Change-Id: Ic77df94fe5980e60c6a67cbf061b9a9dc601518f
Diffstat (limited to 'openstackclient')
-rw-r--r--openstackclient/tests/functional/network/v2/test_port.py164
1 files changed, 141 insertions, 23 deletions
diff --git a/openstackclient/tests/functional/network/v2/test_port.py b/openstackclient/tests/functional/network/v2/test_port.py
index decd9553..e100bd82 100644
--- a/openstackclient/tests/functional/network/v2/test_port.py
+++ b/openstackclient/tests/functional/network/v2/test_port.py
@@ -10,6 +10,7 @@
# License for the specific language governing permissions and limitations
# under the License.
+import re
import uuid
from openstackclient.tests.functional import base
@@ -24,35 +25,152 @@ class PortTests(base.TestCase):
@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)
+ # Set up some regex for matching below
+ cls.re_id = re.compile("\s+id\s+\|\s+(\S+)")
+ cls.re_name = re.compile("\s+name\s+\|\s+([^|]+?)\s+\|")
+ cls.re_description = re.compile("\s+description\s+\|\s+([^|]+?)\s+\|")
+ cls.re_mac_address = re.compile("\s+mac_address\s+\|\s+([^|]+?)\s+\|")
+ cls.re_state = re.compile("\s+admin_state_up\s+\|\s+([^|]+?)\s+\|")
+
+ # Create a network for the port
+ raw_output = cls.openstack('network create ' + cls.NETWORK_NAME)
+ cls.network_id = re.search(cls.re_id, raw_output).group(1)
@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_delete(self):
+ """Test create, delete multiple"""
+ raw_output = self.openstack(
+ 'port create --network ' + self.NETWORK_NAME + ' ' + self.NAME
+ )
+ re_id1 = re.search(self.re_id, raw_output)
+ self.assertIsNotNone(re_id1)
+ id1 = re_id1.group(1)
+ self.assertIsNotNone(
+ re.search(self.re_mac_address, raw_output).group(1),
+ )
+ self.assertEqual(
+ self.NAME,
+ re.search(self.re_name, raw_output).group(1),
+ )
+
+ raw_output = self.openstack(
+ 'port create ' +
+ '--network ' + self.NETWORK_NAME + ' ' +
+ self.NAME + 'x'
+ )
+ id2 = re.search(self.re_id, raw_output).group(1)
+ self.assertIsNotNone(
+ re.search(self.re_mac_address, raw_output).group(1),
+ )
+ self.assertEqual(
+ self.NAME + 'x',
+ re.search(self.re_name, raw_output).group(1),
+ )
+
+ # Clean up after ourselves
+ raw_output = self.openstack('port delete ' + id1 + ' ' + id2)
+ self.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)
+ """Test create defaults, list, delete"""
+ raw_output = self.openstack(
+ 'port create --network ' + self.NETWORK_NAME + ' ' + self.NAME
+ )
+ re_id1 = re.search(self.re_id, raw_output)
+ self.assertIsNotNone(re_id1)
+ id1 = re_id1.group(1)
+ mac1 = re.search(self.re_mac_address, raw_output).group(1)
+ self.addCleanup(self.openstack, 'port delete ' + id1)
+ self.assertEqual(
+ self.NAME,
+ re.search(self.re_name, raw_output).group(1),
+ )
+
+ raw_output = self.openstack(
+ 'port create ' +
+ '--network ' + self.NETWORK_NAME + ' ' +
+ self.NAME + 'x'
+ )
+ id2 = re.search(self.re_id, raw_output).group(1)
+ mac2 = re.search(self.re_mac_address, raw_output).group(1)
+ self.addCleanup(self.openstack, 'port delete ' + id2)
+ self.assertEqual(
+ self.NAME + 'x',
+ re.search(self.re_name, raw_output).group(1),
+ )
+
+ # Test list
+ raw_output = self.openstack('port list')
+ self.assertIsNotNone(re.search("\|\s+" + id1 + "\s+\|", raw_output))
+ self.assertIsNotNone(re.search("\|\s+" + id2 + "\s+\|", raw_output))
+ self.assertIsNotNone(re.search("\|\s+" + mac1 + "\s+\|", raw_output))
+ self.assertIsNotNone(re.search("\|\s+" + mac2 + "\s+\|", raw_output))
+
+ # Test list --long
+ raw_output = self.openstack('port list --long')
+ self.assertIsNotNone(re.search("\|\s+" + id1 + "\s+\|", raw_output))
+ self.assertIsNotNone(re.search("\|\s+" + id2 + "\s+\|", raw_output))
+
+ # Test list --mac-address
+ raw_output = self.openstack('port list --mac-address ' + mac2)
+ self.assertIsNone(re.search("\|\s+" + id1 + "\s+\|", raw_output))
+ self.assertIsNotNone(re.search("\|\s+" + id2 + "\s+\|", raw_output))
+ self.assertIsNone(re.search("\|\s+" + mac1 + "\s+\|", raw_output))
+ self.assertIsNotNone(re.search("\|\s+" + mac2 + "\s+\|", 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)
+ """Test create, set, show, delete"""
+ raw_output = self.openstack(
+ 'port create ' +
+ '--network ' + self.NETWORK_NAME + ' ' +
+ '--description xyzpdq '
+ '--disable ' +
+ self.NAME
+ )
+ re_id = re.search(self.re_id, raw_output)
+ self.assertIsNotNone(re_id)
+ id = re_id.group(1)
+ self.addCleanup(self.openstack, 'port delete ' + id)
+ self.assertEqual(
+ self.NAME,
+ re.search(self.re_name, raw_output).group(1),
+ )
+ self.assertEqual(
+ 'xyzpdq',
+ re.search(self.re_description, raw_output).group(1),
+ )
+ self.assertEqual(
+ 'DOWN',
+ re.search(self.re_state, raw_output).group(1),
+ )
+
+ raw_output = self.openstack(
+ 'port set ' +
+ '--enable ' +
+ self.NAME
+ )
+ self.assertOutput('', raw_output)
+
+ raw_output = self.openstack(
+ 'port show ' +
+ self.NAME
+ )
+ self.assertEqual(
+ self.NAME,
+ re.search(self.re_name, raw_output).group(1),
+ )
+ self.assertEqual(
+ 'xyzpdq',
+ re.search(self.re_description, raw_output).group(1),
+ )
+ self.assertEqual(
+ 'UP',
+ re.search(self.re_state, raw_output).group(1),
+ )
+ self.assertIsNotNone(
+ re.search(self.re_mac_address, raw_output).group(1),
+ )