예제 #1
0
    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()
예제 #2
0
    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", "", "", "", "", "")
예제 #4
0
    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()
예제 #8
0
    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", "", "", "", "", ""))
예제 #9
0
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)
예제 #10
0
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)