def test_hooks_call_history_retrival(self, return_value=True): i = Hook() i.load('/foo/bar.yml') import_module_mock = patch('facio.hooks.Hook.import_module') mock_import = import_module_mock.start() mocked_modules = self._module_factory(10) for path, module in mocked_modules: mock_import.return_value = module i.run_module(path) import_module_mock.stop() self.assertFalse(i.has_run('not.in.facked.modules')) self.assertEqual(i.has_run('foo.bar.baz2'), mocked_modules[1][1].run())
def test_store_hooks_states(self, return_value=True): i = Hook() i.load('/foo/bar.yml') import_module_mock = patch('facio.hooks.Hook.import_module') mock_import = import_module_mock.start() mocked_modules = self._module_factory(3) for path, module in mocked_modules: mock_import.return_value = module i.run_module(path) self.assertTrue(module.run.called) self.assertEqual(i.calls[-1:][0].get(path), module.run.return_value) mock_import = import_module_mock.stop() self.assertEquals(len(i.calls), 3)
def test_module_exception_caught(self, mockload): import_module_mock = patch('facio.hooks.Hook.import_module') mock = import_module_mock.start() module = MagicMock() module.foo.side_effect = KeyError('Failed lookup') mock.return_value = module def fake_run(): module.foo() module.run = fake_run i = Hook() i.load('/foo/bar.yml') i.run_module('foo.bar.baz') mock = import_module_mock.stop() self.assertTrue(module.foo.called) self.mocked_facio_hooks_Hook_warning.assert_called_with( 'Exeption caught in module: \'Failed lookup\' line: 117')
def test_run_module_failure(self, mockload): i = Hook() i.load('/foo/bar.yml') import_module_mock = patch('facio.hooks.Hook.import_module') mock = import_module_mock.start() module = MagicMock() module.run.side_effect = AttributeError mock.return_value = module rtn = i.run_module('foo.bar.baz') mock = import_module_mock.stop() self.assertTrue(module.run.called) self.assertFalse(rtn)
def test_run_module_success(self, mockload): i = Hook() i.load('/foo/bar.yml') import_module_mock = patch('facio.hooks.Hook.import_module') mock = import_module_mock.start() module = MagicMock() module.run.return_value = True mock.return_value = module rtn = i.run_module('foo.bar.baz') mock = import_module_mock.stop() self.assertTrue(module.run.called) self.assertTrue(rtn)