Merge "Fix network functional tests for sdk 0.9.12"

This commit is contained in:
Jenkins 2017-01-14 23:11:28 +00:00 committed by Gerrit Code Review
commit d35374e33f

@ -10,164 +10,173 @@
# License for the specific language governing permissions and limitations
# under the License.
import re
import json
import uuid
import testtools
from openstackclient.tests.functional import base
class NetworkTests(base.TestCase):
"""Functional tests for network"""
@classmethod
def setUpClass(cls):
# Set up some regex for matching below
cls.re_id = re.compile("id\s+\|\s+(\S+)")
cls.re_description = re.compile("description\s+\|\s+([^|]+?)\s+\|")
cls.re_enabled = re.compile("admin_state_up\s+\|\s+(\S+)")
cls.re_shared = re.compile("shared\s+\|\s+(\S+)")
cls.re_external = re.compile("router:external\s+\|\s+(\S+)")
cls.re_default = re.compile("is_default\s+\|\s+(\S+)")
cls.re_port_security = re.compile(
"port_security_enabled\s+\|\s+(\S+)"
)
def test_network_delete(self):
"""Test create, delete multiple"""
name1 = uuid.uuid4().hex
raw_output = self.openstack(
'network create ' +
cmd_output = json.loads(self.openstack(
'network create -f json ' +
'--description aaaa ' +
name1
)
))
self.assertIsNotNone(cmd_output["id"])
self.assertEqual(
'aaaa',
re.search(self.re_description, raw_output).group(1),
cmd_output["description"],
)
name2 = uuid.uuid4().hex
raw_output = self.openstack(
'network create ' +
cmd_output = json.loads(self.openstack(
'network create -f json ' +
'--description bbbb ' +
name2
)
))
self.assertIsNotNone(cmd_output["id"])
self.assertEqual(
'bbbb',
re.search(self.re_description, raw_output).group(1),
cmd_output["description"],
)
del_output = self.openstack('network delete ' + name1 + ' ' + name2)
self.assertOutput('', del_output)
@testtools.skip('broken SDK testing')
def test_network_list(self):
"""Test create defaults, list filters, delete"""
name1 = uuid.uuid4().hex
raw_output = self.openstack(
'network create ' +
cmd_output = json.loads(self.openstack(
'network create -f json ' +
'--description aaaa ' +
name1
)
))
self.addCleanup(self.openstack, 'network delete ' + name1)
self.assertIsNotNone(cmd_output["id"])
self.assertEqual(
'aaaa',
re.search(self.re_description, raw_output).group(1),
cmd_output["description"],
)
# Check the default values
self.assertEqual(
'UP',
re.search(self.re_enabled, raw_output).group(1),
cmd_output["admin_state_up"],
)
self.assertEqual(
'False',
re.search(self.re_shared, raw_output).group(1),
False,
cmd_output["shared"],
)
self.assertEqual(
'Internal',
re.search(self.re_external, raw_output).group(1),
cmd_output["router:external"],
)
# NOTE(dtroyer): is_default is not present in the create output
# so make sure it stays that way.
self.assertIsNone(re.search(self.re_default, raw_output))
# NOTE(stevemar): is_default *is* present in SDK 0.9.11 and newer,
# but the value seems to always be None, regardless
# of the --default or --no-default value.
# self.assertEqual('x', cmd_output)
if ('is_default' in cmd_output):
self.assertEqual(
None,
cmd_output["is_default"],
)
self.assertEqual(
'True',
re.search(self.re_port_security, raw_output).group(1),
True,
cmd_output["port_security_enabled"],
)
name2 = uuid.uuid4().hex
raw_output = self.openstack(
'network create ' +
cmd_output = json.loads(self.openstack(
'network create -f json ' +
'--description bbbb ' +
'--disable ' +
'--share ' +
name2
)
))
self.addCleanup(self.openstack, 'network delete ' + name2)
self.assertIsNotNone(cmd_output["id"])
self.assertEqual(
'bbbb',
re.search(self.re_description, raw_output).group(1),
cmd_output["description"],
)
self.assertEqual(
'DOWN',
re.search(self.re_enabled, raw_output).group(1),
cmd_output["admin_state_up"],
)
self.assertEqual(
'True',
re.search(self.re_shared, raw_output).group(1),
True,
cmd_output["shared"],
)
if ('is_default' in cmd_output):
self.assertEqual(
None,
cmd_output["is_default"],
)
self.assertEqual(
True,
cmd_output["port_security_enabled"],
)
# Test list --long
raw_output = self.openstack('network list --long')
self.assertIsNotNone(
re.search("\|\s+" + name1 + "\s+\|\s+ACTIVE", raw_output)
)
self.assertIsNotNone(
re.search("\|\s+" + name2 + "\s+\|\s+ACTIVE", raw_output)
)
cmd_output = json.loads(self.openstack(
"network list -f json " +
"--long"
))
col_name = [x["Name"] for x in cmd_output]
self.assertIn(name1, col_name)
self.assertIn(name2, col_name)
# Test list --long --enable
raw_output = self.openstack('network list --long --enable')
self.assertIsNotNone(
re.search("\|\s+" + name1 + "\s+\|\s+ACTIVE", raw_output)
)
self.assertIsNone(
re.search("\|\s+" + name2 + "\s+\|\s+ACTIVE", raw_output)
)
cmd_output = json.loads(self.openstack(
"network list -f json " +
"--enable " +
"--long"
))
col_name = [x["Name"] for x in cmd_output]
self.assertIn(name1, col_name)
self.assertNotIn(name2, col_name)
# Test list --long --disable
raw_output = self.openstack('network list --long --disable')
self.assertIsNone(
re.search("\|\s+" + name1 + "\s+\|\s+ACTIVE", raw_output)
)
self.assertIsNotNone(
re.search("\|\s+" + name2 + "\s+\|\s+ACTIVE", raw_output)
)
cmd_output = json.loads(self.openstack(
"network list -f json " +
"--disable " +
"--long"
))
col_name = [x["Name"] for x in cmd_output]
self.assertNotIn(name1, col_name)
self.assertIn(name2, col_name)
# Test list --long --share
raw_output = self.openstack('network list --long --share')
self.assertIsNone(
re.search("\|\s+" + name1 + "\s+\|\s+ACTIVE", raw_output)
)
self.assertIsNotNone(
re.search("\|\s+" + name2 + "\s+\|\s+ACTIVE", raw_output)
)
cmd_output = json.loads(self.openstack(
"network list -f json " +
"--share " +
"--long"
))
col_name = [x["Name"] for x in cmd_output]
self.assertNotIn(name1, col_name)
self.assertIn(name2, col_name)
# Test list --long --no-share
raw_output = self.openstack('network list --long --no-share')
self.assertIsNotNone(
re.search("\|\s+" + name1 + "\s+\|\s+ACTIVE", raw_output)
)
self.assertIsNone(
re.search("\|\s+" + name2 + "\s+\|\s+ACTIVE", raw_output)
)
cmd_output = json.loads(self.openstack(
"network list -f json " +
"--no-share " +
"--long"
))
col_name = [x["Name"] for x in cmd_output]
self.assertIn(name1, col_name)
self.assertNotIn(name2, col_name)
@testtools.skip('broken SDK testing')
def test_network_set(self):
"""Tests create options, set, show, delete"""
name = uuid.uuid4().hex
raw_output = self.openstack(
'network create ' +
cmd_output = json.loads(self.openstack(
'network create -f json ' +
'--description aaaa ' +
'--enable ' +
'--no-share ' +
@ -175,30 +184,38 @@ class NetworkTests(base.TestCase):
'--no-default ' +
'--enable-port-security ' +
name
)
))
self.addCleanup(self.openstack, 'network delete ' + name)
self.assertIsNotNone(cmd_output["id"])
self.assertEqual(
'aaaa',
re.search(self.re_description, raw_output).group(1),
cmd_output["description"],
)
self.assertEqual(
'UP',
re.search(self.re_enabled, raw_output).group(1),
cmd_output["admin_state_up"],
)
self.assertEqual(
'False',
re.search(self.re_shared, raw_output).group(1),
False,
cmd_output["shared"],
)
self.assertEqual(
'Internal',
re.search(self.re_external, raw_output).group(1),
cmd_output["router:external"],
)
# NOTE(dtroyer): is_default is not present in the create output
# so make sure it stays that way.
self.assertIsNone(re.search(self.re_default, raw_output))
# NOTE(stevemar): is_default *is* present in SDK 0.9.11 and newer,
# but the value seems to always be None, regardless
# of the --default or --no-default value.
if ('is_default' in cmd_output):
self.assertEqual(
None,
cmd_output["is_default"],
)
self.assertEqual(
'True',
re.search(self.re_port_security, raw_output).group(1),
True,
cmd_output["port_security_enabled"],
)
raw_output = self.openstack(
@ -212,32 +229,34 @@ class NetworkTests(base.TestCase):
)
self.assertOutput('', raw_output)
raw_output = self.openstack('network show ' + name)
cmd_output = json.loads(self.openstack(
'network show -f json ' + name
))
self.assertEqual(
'cccc',
re.search(self.re_description, raw_output).group(1),
cmd_output["description"],
)
self.assertEqual(
'DOWN',
re.search(self.re_enabled, raw_output).group(1),
cmd_output["admin_state_up"],
)
self.assertEqual(
'True',
re.search(self.re_shared, raw_output).group(1),
True,
cmd_output["shared"],
)
self.assertEqual(
'External',
re.search(self.re_external, raw_output).group(1),
cmd_output["router:external"],
)
# why not 'None' like above??
self.assertEqual(
'False',
re.search(self.re_default, raw_output).group(1),
False,
cmd_output["is_default"],
)
self.assertEqual(
'False',
re.search(self.re_port_security, raw_output).group(1),
False,
cmd_output["port_security_enabled"],
)
# NOTE(dtroyer): There is ambiguity around is_default in that
@ -252,14 +271,16 @@ class NetworkTests(base.TestCase):
)
self.assertOutput('', raw_output)
raw_output = self.openstack('network show ' + name)
cmd_output = json.loads(self.openstack(
'network show -f json ' + name
))
self.assertEqual(
'cccc',
re.search(self.re_description, raw_output).group(1),
cmd_output["description"],
)
# NOTE(dtroyer): This should be 'True'
self.assertEqual(
'False',
re.search(self.re_default, raw_output).group(1),
False,
cmd_output["port_security_enabled"],
)