diff options
| author | Huanxuan Ao <huanxuan.ao@easystack.cn> | 2017-01-17 22:33:08 +0800 |
|---|---|---|
| committer | Dean Troyer <dtroyer@gmail.com> | 2017-01-18 19:33:05 +0000 |
| commit | 4a8e7dbe6b19e589e277e13d565578d98161572f (patch) | |
| tree | e7ea9993dc48c6e1684d467e3ae83d6d3b60cf3d /openstackclient/tests/functional/network | |
| parent | 08ca61ba074ba43ab0fd281992e878c78e0f709a (diff) | |
| download | python-openstackclient-4a8e7dbe6b19e589e277e13d565578d98161572f.tar.gz | |
Fix functional test for creating subnet
subnet create failed by some bad random
subnet range, so retry it with new random
range when the test failed.
Change-Id: If528ff419b51dd5c5232f81d4b26abae542bd820
Diffstat (limited to 'openstackclient/tests/functional/network')
| -rw-r--r-- | openstackclient/tests/functional/network/v2/test_floating_ip.py | 39 |
1 files changed, 26 insertions, 13 deletions
diff --git a/openstackclient/tests/functional/network/v2/test_floating_ip.py b/openstackclient/tests/functional/network/v2/test_floating_ip.py index fa9607a0..8fbec3d5 100644 --- a/openstackclient/tests/functional/network/v2/test_floating_ip.py +++ b/openstackclient/tests/functional/network/v2/test_floating_ip.py @@ -31,25 +31,38 @@ class FloatingIpTests(base.TestCase): cls.re_description = re.compile("description\s+\|\s+([^|]+?)\s+\|") cls.re_network_id = re.compile("floating_network_id\s+\|\s+(\S+)") - # Make a random subnet - cls.subnet = ".".join(map( - str, - (random.randint(0, 223) for _ in range(3)) - )) + ".0/26" - # Create a network for the floating ip raw_output = cls.openstack( 'network create --external ' + cls.NETWORK_NAME ) cls.network_id = re.search(cls.re_id, raw_output).group(1) - # Create a subnet for the network - raw_output = cls.openstack( - 'subnet create ' + - '--network ' + cls.NETWORK_NAME + ' ' + - '--subnet-range ' + cls.subnet + ' ' + - cls.SUBNET_NAME - ) + # Try random subnet range for subnet creating + # Because we can not determine ahead of time what subnets are already + # in use, possibly by another test running in parallel, try 4 times + for i in range(4): + # Make a random subnet + cls.subnet = ".".join(map( + str, + (random.randint(0, 223) for _ in range(3)) + )) + ".0/26" + try: + # Create a subnet for the network + raw_output = cls.openstack( + 'subnet create ' + + '--network ' + cls.NETWORK_NAME + ' ' + + '--subnet-range ' + cls.subnet + ' ' + + cls.SUBNET_NAME + ) + except Exception: + if (i == 3): + # raise the exception at the last time + raise + pass + else: + # break and no longer retry if create sucessfully + break + cls.subnet_id = re.search(cls.re_id, raw_output).group(1) @classmethod |
