blob: de2b7ad4449d61c7636b19096eb09dfe2007d24f [file] [log] [blame]
import unittest, os, sys
vlandpath = os.path.abspath(os.path.normpath(os.path.dirname(sys.argv[0])))
sys.path.insert(0, vlandpath)
sys.path.insert(0, "%s/.." % vlandpath)
os.chdir(vlandpath)
from config.config import VlanConfig
from errors import CriticalError, InputError, ConfigError
class MyTest(unittest.TestCase):
# Check that we raise on missing database section
def test_missing_database_section(self):
with self.assertRaisesRegexp(ConfigError, 'No database'):
config = VlanConfig(filenames=("/dev/null",))
# Check that we raise on missing database config values
def test_missing_database_config(self):
with self.assertRaisesRegexp(ConfigError, 'Invalid database'):
config = VlanConfig(filenames=("test-invalid-DB.cfg",))
# Check that we raise on missing database config values
def test_missing_dbname(self):
with self.assertRaisesRegexp(ConfigError, 'Database.*incomplete'):
config = VlanConfig(filenames=("test-missing-dbname.cfg",))
# Check that we raise on missing database config values
def test_missing_db_username(self):
with self.assertRaisesRegexp(ConfigError, 'Database.*incomplete'):
config = VlanConfig(filenames=("test-missing-db-username.cfg",))
# Check that we raise on repeated switch names
def test_missing_repeated_switch_names(self):
with self.assertRaisesRegexp(ConfigError, 'same name'):
config = VlanConfig(filenames=("test-reused-switch-names.cfg",))
# Check that we raise on unknown config section
def test_unknown_config(self):
with self.assertRaisesRegexp(ConfigError, 'Unrecognised config'):
config = VlanConfig(filenames=("test-unknown-section.cfg",))
# Check we get expected values on a known-good config
def test_known_good(self):
config = VlanConfig(filenames=("test-known-good.cfg",))
self.assertEqual(len(config.switches), 3)
self.assertEqual(config.switches["10.172.2.51"].username, 'cisco')
self.assertEqual(config.switches["baz"].driver, 'CiscoSX300')
if __name__ == '__main__':
unittest.main()