8000 new: `post /_admin/echo` (#310) · arangodb/python-arango@6653c1b · GitHub
[go: up one dir, main page]

Skip to content

Commit 6653c1b

Browse files
authored
new: post /_admin/echo (#310)
* new: `Database. echo_request()` * remove: `echo_request`
1 parent cb338b6 commit 6653c1b

File tree

3 files changed

+22
-4
lines changed

3 files changed

+22
-4
lines changed

arango/database.py

Lines changed: 13 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -570,14 +570,23 @@ def response_handler(resp: Response) -> datetime:
570570

571571
return self._execute(request, response_handler)
572572

573-
def echo(self) -> Result[Json]:
574-
"""Return details of the last request (e.g. headers, payload).
575-
573+
def echo(self, body: Optional[Any] = None) -> Result[Json]:
574+
"""Return details of the last request (e.g. headers, payload),
575+
or echo the given request body.
576+
577+
:param body: The body of the request. Can be of any type
578+
and is simply forwarded. If not set, the details of the last
579+
request are returned.
580+
:type body: dict | list | str | int | float | None
576581
:return: Details of the last request.
577582
:rtype: dict
578583
:raise arango.exceptions.ServerEchoError: If retrieval fails.
579584
"""
580-
request = Request(method="get", endpoint="/_admin/echo")
585+
request = (
586+
Request(method="get", endpoint="/_admin/echo")
587+
if body is None
588+
else Request(method="post", endpoint="/_admin/echo", data=body)
589+
)
581590

582591
def response_handler(resp: Response) -> Json:
583592
if not resp.is_success:

docs/admin.rst

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -54,6 +54,9 @@ database.
5454
# Echo the last request.
5555
sys_db.echo()
5656

57+
# Echo a request
58+
sys_db.echo('request goes here')
59+
5760
# Reload the routing collection.
5861
sys_db.reload_routing()
5962

tests/test_database.py

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -172,6 +172,12 @@ def test_database_misc_methods(client, sys_db, db, bad_db, cluster, secret):
172172
bad_db.echo()
173173
assert err.value.error_code in {11, 1228}
174174

175+
# Test echo (forward request)
176+
body = "request goes here"
177+
echo = db.echo(body)
178+
assert isinstance(echo, dict)
179+
assert echo["requestBody"] == body
180+
175181
# Test read_log with default parameters
176182
# Deprecated in 3.8.0
177183
# TODO: Remove in future release

0 commit comments

Comments
 (0)
0