Merge "Add error test coverage and adjust test setup"
This commit is contained in:
commit
4e8596b429
@ -4,6 +4,7 @@ import collections
|
|||||||
import json
|
import json
|
||||||
import os
|
import os
|
||||||
from os import path
|
from os import path
|
||||||
|
import Queue
|
||||||
import sys
|
import sys
|
||||||
import unittest
|
import unittest
|
||||||
import yaml
|
import yaml
|
||||||
@ -288,7 +289,7 @@ class TestEnvironments(unittest.TestCase):
|
|||||||
self.assertIn(key, self.loaded_environment)
|
self.assertIn(key, self.loaded_environment)
|
||||||
|
|
||||||
|
|
||||||
class TestDuplicateIps(unittest.TestCase):
|
class TestIps(unittest.TestCase):
|
||||||
def setUp(self):
|
def setUp(self):
|
||||||
# Allow custom assertion errors.
|
# Allow custom assertion errors.
|
||||||
self.longMessage = True
|
self.longMessage = True
|
||||||
@ -312,6 +313,20 @@ class TestDuplicateIps(unittest.TestCase):
|
|||||||
self.assertEqual(1, ips[addr],
|
self.assertEqual(1, ips[addr],
|
||||||
msg="IP %s duplicated." % addr)
|
msg="IP %s duplicated." % addr)
|
||||||
|
|
||||||
|
def test_empty_ip_queue(self):
|
||||||
|
q = Queue.Queue()
|
||||||
|
with self.assertRaises(SystemExit) as context:
|
||||||
|
di.get_ip_address('test', q)
|
||||||
|
expectedLog = ("Cannot retrieve requested amount of IP addresses. "
|
||||||
|
"Increase the test range in your "
|
||||||
|
"openstack_user_config.yml.")
|
||||||
|
self.assertEqual(context.exception.message, expectedLog)
|
||||||
|
|
||||||
|
def tearDown(self):
|
||||||
|
# Since the get_ip_address function touches USED_IPS,
|
||||||
|
# and USED_IPS is currently a global var, make sure we clean it out
|
||||||
|
di.USED_IPS = []
|
||||||
|
|
||||||
|
|
||||||
class TestConfigChecks(unittest.TestCase):
|
class TestConfigChecks(unittest.TestCase):
|
||||||
|
|
||||||
@ -320,7 +335,7 @@ class TestConfigChecks(unittest.TestCase):
|
|||||||
with open(USER_CONFIG_FILE, 'rb') as f:
|
with open(USER_CONFIG_FILE, 'rb') as f:
|
||||||
self.user_defined_config.update(yaml.safe_load(f.read()) or {})
|
self.user_defined_config.update(yaml.safe_load(f.read()) or {})
|
||||||
|
|
||||||
def setup_config_file(self, user_defined_config, key):
|
def delete_config_key(self, user_defined_config, key):
|
||||||
try:
|
try:
|
||||||
if key in user_defined_config:
|
if key in user_defined_config:
|
||||||
del user_defined_config[key]
|
del user_defined_config[key]
|
||||||
@ -329,15 +344,45 @@ class TestConfigChecks(unittest.TestCase):
|
|||||||
else:
|
else:
|
||||||
raise KeyError("can't find specified key in user config")
|
raise KeyError("can't find specified key in user config")
|
||||||
finally:
|
finally:
|
||||||
# rename temporarily our user_config_file so we can use the new one
|
self.write_config()
|
||||||
os.rename(USER_CONFIG_FILE, USER_CONFIG_FILE + ".tmp")
|
|
||||||
# Save new user_config_file
|
def delete_provider_network(self, net_name):
|
||||||
with open(USER_CONFIG_FILE, 'wb') as f:
|
del self.user_defined_config['cidr_networks'][net_name]
|
||||||
f.write(yaml.dump(user_defined_config))
|
self.write_config()
|
||||||
|
|
||||||
|
def write_config(self):
|
||||||
|
# rename temporarily our user_config_file so we can use the new one
|
||||||
|
os.rename(USER_CONFIG_FILE, USER_CONFIG_FILE + ".tmp")
|
||||||
|
# Save new user_config_file
|
||||||
|
with open(USER_CONFIG_FILE, 'wb') as f:
|
||||||
|
f.write(yaml.dump(self.user_defined_config))
|
||||||
|
|
||||||
|
def test_missing_container_cidr_network(self):
|
||||||
|
self.delete_provider_network('container')
|
||||||
|
with self.assertRaises(SystemExit) as context:
|
||||||
|
get_inventory()
|
||||||
|
expectedLog = ("No container or management network specified in "
|
||||||
|
"user config.")
|
||||||
|
self.assertEqual(context.exception.message, expectedLog)
|
||||||
|
|
||||||
|
def test_missing_cidr_network_present_in_provider(self):
|
||||||
|
self.delete_provider_network('storage')
|
||||||
|
with self.assertRaises(SystemExit) as context:
|
||||||
|
get_inventory()
|
||||||
|
expectedLog = "can't find storage in cidr_networks"
|
||||||
|
self.assertEqual(context.exception.message, expectedLog)
|
||||||
|
|
||||||
|
def test_missing_cidr_networks_key(self):
|
||||||
|
del self.user_defined_config['cidr_networks']
|
||||||
|
self.write_config()
|
||||||
|
with self.assertRaises(SystemExit) as context:
|
||||||
|
get_inventory()
|
||||||
|
expectedLog = "No container CIDR specified in user config"
|
||||||
|
self.assertEqual(context.exception.message, expectedLog)
|
||||||
|
|
||||||
def test_provider_networks_check(self):
|
def test_provider_networks_check(self):
|
||||||
# create config file without provider networks
|
# create config file without provider networks
|
||||||
self.setup_config_file(self.user_defined_config, 'provider_networks')
|
self.delete_config_key(self.user_defined_config, 'provider_networks')
|
||||||
# check if provider networks absence is Caught
|
# check if provider networks absence is Caught
|
||||||
with self.assertRaises(SystemExit) as context:
|
with self.assertRaises(SystemExit) as context:
|
||||||
get_inventory()
|
get_inventory()
|
||||||
@ -346,7 +391,7 @@ class TestConfigChecks(unittest.TestCase):
|
|||||||
|
|
||||||
def test_global_overrides_check(self):
|
def test_global_overrides_check(self):
|
||||||
# create config file without global_overrides
|
# create config file without global_overrides
|
||||||
self.setup_config_file(self.user_defined_config, 'global_overrides')
|
self.delete_config_key(self.user_defined_config, 'global_overrides')
|
||||||
# check if global_overrides absence is Caught
|
# check if global_overrides absence is Caught
|
||||||
with self.assertRaises(SystemExit) as context:
|
with self.assertRaises(SystemExit) as context:
|
||||||
get_inventory()
|
get_inventory()
|
||||||
|
Loading…
Reference in New Issue
Block a user