示例#1
0
文件: plugin.py 项目: nebril/fuel-web
    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)
示例#2
0
文件: plugin.py 项目: nebril/fuel-web
    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)
示例#3
0
    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, [])
示例#4
0
    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, [])
示例#5
0
 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)
示例#6
0
 def test_sync_metadata_for_all_plugins(self, sync_mock):
     PluginManager.sync_plugins_metadata()
     self.assertEqual(sync_mock.call_count, 2)
示例#7
0
 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)
示例#8
0
 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)
示例#11
0
 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)
示例#12
0
 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)