refactor: extract json_required view decorator (#18170)

* refactor: extract json_required view decorator

* chore: rename json_required to requires_json

* refactor: add requires_form_data decorator and use it

* fix: fix lint issue, raise InvalidPayloadFormatError for invalid payload
This commit is contained in:
Adam Dobrawy
2022-01-31 12:53:48 +01:00
committed by GitHub
parent c40b337978
commit dad6f78419
13 changed files with 106 additions and 56 deletions

View File

@@ -29,7 +29,7 @@ import tests.integration_tests.test_app
from superset import db, security_manager
from superset.extensions import appbuilder
from superset.models.dashboard import Dashboard
from superset.views.base_api import BaseSupersetModelRestApi
from superset.views.base_api import BaseSupersetModelRestApi, requires_json
from .base_tests import SupersetTestCase
@@ -154,6 +154,19 @@ class TestBaseModelRestApi(SupersetTestCase):
}
self.assertEqual(response, expected_response)
def test_refuse_invalid_format_request(self):
"""
API: Test invalid format of request
We want to make sure that non-JSON request are refused
"""
self.login(username="admin")
uri = "api/v1/report/" # endpoint decorated with @requires_json
rv = self.client.post(
uri, data="a: value\nb: 1\n", content_type="application/yaml"
)
self.assertEqual(rv.status_code, 400)
@pytest.mark.usefixtures("load_world_bank_dashboard_with_slices")
def test_default_missing_declaration_put(self):
"""