Web: add support for the POST HTTP method. (#1097)
* Web: add support for the POST HTTP method. This patch adds support for POST in addition to the already supported GET. This is needed for implementing more complex web modules that also support configuration modifications and advanced queries. * Base web: return METHOD_NOT_ALLOWED when method isn't implemenetd. Co-authored-by: Unrud <Unrud@users.noreply.github.com>
This commit is contained in:
@@ -104,6 +104,11 @@ class BaseTest:
|
||||
self._check_status(status, 200, check)
|
||||
return status, answer
|
||||
|
||||
def post(self, path, check=True, **args):
|
||||
status, _, answer = self.request("POST", path, **args)
|
||||
self._check_status(status, 200, check)
|
||||
return status, answer
|
||||
|
||||
def put(self, path, data, check=True, **args):
|
||||
status, _, answer = self.request("PUT", path, data, **args)
|
||||
self._check_status(status, 201, check)
|
||||
|
||||
@@ -27,3 +27,6 @@ from radicale import web
|
||||
class Web(web.BaseWeb):
|
||||
def get(self, environ, base_prefix, path, user):
|
||||
return client.OK, {"Content-Type": "text/plain"}, "custom"
|
||||
|
||||
def post(self, environ, base_prefix, path, user):
|
||||
return client.OK, {"Content-Type": "text/plain"}, "custom post"
|
||||
|
||||
@@ -63,3 +63,6 @@ class TestBaseWebRequests(BaseTest):
|
||||
self.application = Application(self.configuration)
|
||||
_, answer = self.get("/.web")
|
||||
assert answer == "custom"
|
||||
|
||||
_, answer = self.post("/.web")
|
||||
assert answer == "custom post"
|
||||
|
||||
Reference in New Issue
Block a user