def setUp(self): self.mgr = ModelManager() if GNU_LINUX: self.addCleanup(self.mgr.notifier.loseConnection) try: threadpool = DummyThreadPool() self.database = Database(threadpool, True) Model.database = self.database store = self.database.store() store.execute('CREATE TABLE IF NOT EXISTS `dummy` (' ' id INTEGER PRIMARY KEY, name TEXT' ')') store.commit() except DatabaseModuleError as error: raise unittest.SkipTest(error)
def setUp(self): self.mgr = ModelManager() if GNU_LINUX: self.addCleanup(self.mgr.notifier.loseConnection) try: threadpool = DummyThreadPool() self.database = Database(threadpool, True) Model.database = self.database store = self.database.store() store.execute( 'CREATE TABLE IF NOT EXISTS `dummy` (' ' id INTEGER PRIMARY KEY, name TEXT' ')' ) store.commit() except DatabaseModuleError as error: raise unittest.SkipTest(error)
class ModelManagerTest(unittest.TestCase): """Tests for mamba.application.model.ModelManager """ def setUp(self): self.mgr = ModelManager() if GNU_LINUX: self.addCleanup(self.mgr.notifier.loseConnection) try: threadpool = DummyThreadPool() self.database = Database(threadpool, True) Model.database = self.database store = self.database.store() store.execute( 'CREATE TABLE IF NOT EXISTS `dummy` (' ' id INTEGER PRIMARY KEY, name TEXT' ')' ) store.commit() except DatabaseModuleError as error: raise unittest.SkipTest(error) def tearDown(self): self.flushLoggedErrors() self.database.store().reset() transaction.manager.free(transaction.get()) def load_manager(self): sys.path.append('../mamba/test/dummy_app') self.mgr.load('../mamba/test/dummy_app/application/model/dummy.py') def test_inotifier_provided_by_controller_manager(self): if not GNU_LINUX: raise unittest.SkipTest('File monitoring only available on Linux') self.assertTrue(interfaces.INotifier.providedBy(self.mgr)) def test_get_models_is_ordered_dict(self): self.assertIsInstance(self.mgr.get_models(), OrderedDict) def test_get_models_is_empty(self): self.assertNot(self.mgr.get_models()) def test_is_valid_file_works_on_valid(self): import os currdir = os.getcwd() os.chdir('../mamba/test/dummy_app') self.assertTrue(self.mgr.is_valid_file('dummy.py')) os.chdir(currdir) def test_is_valid_file_works_on_invalid(self): self.assertFalse(self.mgr.is_valid_file('./test.log')) def test_is_valid_file_works_with_filepath(self): import os currdir = os.getcwd() os.chdir('../mamba/test/dummy_app') self.assertTrue(self.mgr.is_valid_file(filepath.FilePath('dummy.py'))) os.chdir(currdir) def test_load_modules_works(self): self.load_manager() self.assertTrue(self.mgr.length() != 0) def test_lookup(self): unknown = self.mgr.lookup('unknown') self.assertEqual(unknown, {}) self.load_manager() dummy = self.mgr.lookup('dummy').get('object') self.assertTrue(dummy.__storm_table__ == 'dummy') self.assertTrue(dummy.loaded) def test_reload(self): self.load_manager() dummy = self.mgr.lookup('dummy').get('object') self.mgr.reload('dummy') dummy2 = self.mgr.lookup('dummy').get('object') self.assertNotEqual(dummy, dummy2)
def test_constructor_overwrites_module_store(self): mgr = ModelManager('overwritten/store') if GNU_LINUX: self.addCleanup(mgr.notifier.loseConnection) self.assertEqual(mgr._module_store, 'overwritten/store')