| 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() |