Abhilash Raj pushed to branch master at GNU Mailman / Mailman Core
Commits:
6f3b10c8 by Prateek Nayak at 2019-03-21T21:46:33Z
Check request.content_type for None
- - - - -
fc0c88be by Abhilash Raj at 2019-03-21T21:46:33Z
Merge branch 'master' into 'master'
Check request.content_type for None
Closes #569
See merge request mailman/mailman!479
- - - - -
3 changed files:
- src/mailman/docs/NEWS.rst
- src/mailman/rest/helpers.py
- src/mailman/rest/tests/test_helpers.py
Changes:
=====================================
src/mailman/docs/NEWS.rst
=====================================
@@ -27,6 +27,7 @@ REST
* REST API errors are now always formatted as JSON. (See !451)
* Failed request validations now return more verbose errors, like ``Enum``
types
return all acceptable values. (See !451)
+* REST API accepts request with content type None (See !479)
Command line
=====================================
src/mailman/rest/helpers.py
=====================================
@@ -355,7 +355,8 @@ def get_request_params(request):
# We parse the request based on the content type. Falcon has a default
# JSONHandler handler to parse json media type, so we can just do
# `request.media` to return the request params passed as json body.
- if request.content_type.startswith('application/json'):
+ if (request.content_type and
+ request.content_type.startswith('application/json')):
return request.media or dict()
# request.params returns the parameters passed as URL form encoded.
return request.params or dict()
=====================================
src/mailman/rest/tests/test_helpers.py
=====================================
@@ -27,6 +27,12 @@ from mailman.rest import helpers
from mailman.testing.layers import ConfigLayer, RESTLayer
+class FakeRequest:
+ def __init__(self):
+ self.content_type = None
+ self.params = 'not set'
+
+
class FakeResponse:
def __init__(self):
self.body = 'not set'
@@ -162,6 +168,11 @@ class TestHelpers(unittest.TestCase):
{'title': '403 Forbidden',
'description': 'Conflicting request', })
+ def test_get_request_params_with_none(self):
+ request = FakeRequest()
+ self.assertEqual(helpers.get_request_params(request),
+ 'not set')
+
class TestJSONEncoder(unittest.TestCase):
"""Test the JSON ExtendedEncoder."""
View it on GitLab:
https://gitlab.com/mailman/mailman/compare/de15b8167245a71797d694990d3053472e25e150...fc0c88be08d364c07e73a5a3d3534d2e8037a957
--
View it on GitLab:
https://gitlab.com/mailman/mailman/compare/de15b8167245a71797d694990d3053472e25e150...fc0c88be08d364c07e73a5a3d3534d2e8037a957
You're receiving this email because of your account on gitlab.com.
_______________________________________________
Mailman-checkins mailing list
[email protected]
Unsubscribe:
https://mail.python.org/mailman/options/mailman-checkins/archive%40jab.org