Example #1
0
    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)
Example #2
0
    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)
Example #3
0
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)
Example #4
0
 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')