def test_update_plugin_db_data_fail(self, MockPluginFile, mock_os, mock_db_data, mock_save_sql, mock_save_plg_data_func_update): mock_plugin = MockPluginFile.return_value mock_plugin.read.return_value = None mock_plugin.check.return_value = { "error_count": 0, "need_overwrite": True, "rules": [] } mock_os.path.exists.return_value = True mock_db_data.return_value = "not_empty_string" mock_save_sql.return_value = (True, "test_msg") mock_save_plg_data_func_update.return_value = (False, "update_plugin") with mock.patch('apimethods.plugin.plugin.open', mock.mock_open(read_data='')) as m: with self.assertRaisesRegexp(APICannotSavePlugin, "update_plugin"): apimethod_upload_plugin('plugin_path', "", "", "", "", overwrite=True) mock_os.path.exists.assert_called_once()
def test_plugin_save_on_disk_fail(self, MockPluginFile, mock_os, mock_db_data, mock_save_sql, mock_save_plg_data_func_update, mock_remove_plg): """ Save plugin with the appropriate headers (vendor:model:version) """ mock_plugin = MockPluginFile.return_value mock_plugin.read.return_value = None mock_plugin.check.return_value = { "error_count": 0, "need_overwrite": True, "rules": [] } mock_os.path.exists.return_value = True mock_db_data.return_value = "not_empty_string" mock_save_sql.return_value = (True, "") mock_save_plg_data_func_update.return_value = (True, "") mock_plugin.save.return_value = False mock_remove_plg.return_value = None mock_plugin.get_latest_error_msg.return_value = "some_error_msg" with mock.patch('apimethods.plugin.plugin.open', mock.mock_open(read_data='')) as m: with self.assertRaisesRegexp(APICannotSavePlugin, "some_error_msg"): apimethod_upload_plugin('plugin_path', "", "", "", "", overwrite=True) mock_os.path.exists.assert_called_once()
def test_plugin_with_incorrect_syntax(self, MockPluginFile): mock_plugin = MockPluginFile.return_value mock_plugin.read.return_value = None mock_plugin.check.return_value = { "error_count": 1, "error_summary": "test_msg" } mock_plugin.get_latest_error_msg.return_value = "test_msg" with self.assertRaisesRegexp(APIInvalidPlugin, "test_msg"): apimethod_upload_plugin("fake_plugin", "", "", "", "", "")
def test_save_plugin_to_db(self, MockPluginFile, mock_os, mock_db_data, mock_save_sql): mock_plugin = MockPluginFile.return_value mock_plugin.read.return_value = None mock_plugin.check.return_value = {"error_count": 0, "need_overwrite": True} mock_os.path.exists.return_value = True mock_db_data.return_value = "not_empty_string" mock_save_sql.return_value = (False, "test_msg") with mock.patch('apimethods.plugin.plugin.open', mock.mock_open(read_data='')) as m: with self.assertRaisesRegexp(APICannotSavePlugin, "test_msg"): apimethod_upload_plugin('plugin_path', "", "", "", "", overwrite=True) mock_os.path.exists.assert_called_once()
def test_plugin_need_to_override(self, MockPluginFile, mock_os): mock_plugin = MockPluginFile.return_value mock_plugin.read.return_value = None mock_plugin.check.return_value = {"error_count": 0, } mock_os.path.exists.return_value = True self.assertEquals({"error_count": 0, "need_overwrite": True}, apimethod_upload_plugin("fake_plugin", "", "", "", "", ""))
def test_plugin_save_on_disk_fail(self, MockPluginFile, mock_os, mock_db_data, mock_save_sql, mock_save_plg_data_func_update, mock_remove_plg): """ Save plugin with the appropriate headers (vendor:model:version) """ mock_plugin = MockPluginFile.return_value mock_plugin.read.return_value = None mock_plugin.check.return_value = {"error_count": 0, "need_overwrite": True, "rules": []} mock_os.path.exists.return_value = True mock_db_data.return_value = "not_empty_string" mock_save_sql.return_value = (True, "") mock_save_plg_data_func_update.return_value = (True, "") mock_plugin.save.return_value = False mock_remove_plg.return_value = None mock_plugin.get_latest_error_msg.return_value = "some_error_msg" with mock.patch('apimethods.plugin.plugin.open', mock.mock_open(read_data='')) as m: with self.assertRaisesRegexp(APICannotSavePlugin, "some_error_msg"): apimethod_upload_plugin('plugin_path', "", "", "", "", overwrite=True) mock_os.path.exists.assert_called_once()
def test_plugin_need_to_override(self, MockPluginFile, mock_os): mock_plugin = MockPluginFile.return_value mock_plugin.read.return_value = None mock_plugin.check.return_value = { "error_count": 0, } mock_os.path.exists.return_value = True self.assertEquals({ "error_count": 0, "need_overwrite": True }, apimethod_upload_plugin("fake_plugin", "", "", "", "", ""))
def upload(): try: plugin_file = request.form['plugin_file'] vendor = request.form.get('vendor', '') model = request.form.get('model', '') if not model: return make_bad_request("Model cannot be null") if not vendor: return make_bad_request("Vendor cannot be null") version = request.form.get('version', '-') overwrite = request.form.get('overwrite', False) product_type = request.form.get('product_type', '') data = apimethod_upload_plugin(plugin_file=plugin_file, model=model, vendor=vendor, version=version, overwrite=overwrite, product_type=product_type) except APIException as e: return make_error_from_exception(e) return make_ok(**data)