def POST(self): """:returns: JSONized REST object. :http: * 200 (plugins successfully synced) * 404 (plugin not found in db) * 400 (problem with parsing metadata file) """ data = self.checked_data() ids = data.get('ids', None) try: PluginManager.sync_plugins_metadata(plugin_ids=ids) except errors.ParseError as exc: raise self.http(400, msg=six.text_type(exc)) raise self.http(200)
def POST(self): """:returns: JSONized REST object. :http: * 200 (plugins successfully synced) * 404 (plugin not found in db) * 400 (problem with parsing metadata file) """ data = self.checked_data() ids = data.get("ids", None) try: PluginManager.sync_plugins_metadata(plugin_ids=ids) except errors.ParseError as exc: raise self.http(400, msg=six.text_type(exc)) raise self.http(200)
def test_removes_tasks_from_db_if_removed_from_new_plugin(self): plugin = self.env.create_plugin( tasks=self.env.get_default_plugin_tasks()) mocked_metadata = { 'metadata.yaml': {}, 'environment_config.yaml': {}, } self.assertNotEqual(plugin.tasks, []) with mock.patch( 'nailgun.plugins.loaders.files_manager.FilesManager.load' ) as load: def se(key): # Simulate that tasks.yaml was removed if key.endswith('tasks.yaml'): raise errors.NoPluginFileFound() return copy.deepcopy(mocked_metadata.get( os.path.basename(key))) load.side_effect = se PluginManager.sync_plugins_metadata(plugin_ids=[plugin.id]) self.assertEqual(plugin.tasks, [])
def test_removes_tasks_from_db_if_removed_from_new_plugin(self): plugin = self.env.create_plugin( tasks=self.env.get_default_plugin_tasks()) mocked_metadata = { 'metadata.yaml': {}, 'environment_config.yaml': {}, } self.assertNotEqual(plugin.tasks, []) with mock.patch( 'nailgun.plugins.loaders.files_manager.FilesManager.load' ) as load: def se(key): # Simulate that tasks.yaml was removed if key.endswith('tasks.yaml'): raise errors.NoPluginFileFound() return copy.deepcopy( mocked_metadata.get(os.path.basename(key))) load.side_effect = se PluginManager.sync_plugins_metadata(plugin_ids=[plugin.id]) self.assertEqual(plugin.tasks, [])
def test_sync_metadata_for_specific_plugin(self, sync_mock): PluginManager.sync_plugins_metadata([self.env.plugins[0].id]) self.assertEqual(sync_mock.call_count, 1)
def test_sync_metadata_for_all_plugins(self, sync_mock): PluginManager.sync_plugins_metadata() self.assertEqual(sync_mock.call_count, 2)
def test_sync_metadata_for_specific_plugin(self, sync_mock): sync_mock.side_effect = [{'name': self.env.plugins[0].name, 'title': 'T1'}] PluginManager.sync_plugins_metadata([self.env.plugins[0].id]) self.assertEqual(sync_mock.call_count, 1)
def test_sync_metadata_for_all_plugins(self, sync_mock, list_fs_m): list_fs_m.return_value = ['test_plugin_1-0.1', 'test_plugin_2-0.1'] sync_mock.side_effect = [{'name': 'test_plugin_1', 'title': 'T1'}, {'name': 'test_plugin_2', 'title': 'T2'}] PluginManager.sync_plugins_metadata() self.assertEqual(sync_mock.call_count, 2)
def test_sync_metadata_for_all_plugins(self, sync_mock, list_fs_m): list_fs_m.return_value = ['test_plugin_1-0.1', 'test_plugin_2-0.1'] PluginManager.sync_plugins_metadata() self.assertEqual(sync_mock.call_count, 2)