cov: Add tests for request logging

This commit is contained in:
Wolfgang Walther
2022-01-05 11:01:54 +01:00
committed by Wolfgang Walther
parent 4a9ca9bdae
commit b0a0c4768d
+44
View File
@@ -7,6 +7,7 @@ from itertools import repeat
from operator import attrgetter from operator import attrgetter
import os import os
import pathlib import pathlib
import re
import shutil import shutil
import signal import signal
import socket import socket
@@ -801,3 +802,46 @@ def test_admin_live_dependent_on_main_app(defaultenv):
os.remove(defaultenv["PGRST_SERVER_UNIX_SOCKET"]) os.remove(defaultenv["PGRST_SERVER_UNIX_SOCKET"])
response = postgrest.admin.get("/live") response = postgrest.admin.get("/live")
assert response.status_code == 503 assert response.status_code == 503
@pytest.mark.parametrize(
"level, has_output",
[
("info", [True, True, True]),
("warn", [False, True, True]),
("error", [False, False, True]),
("crit", [False, False, False]),
],
)
def test_log_level(level, has_output, defaultenv):
"log_level should filter request logging"
env = {
**defaultenv,
"PGRST_LOG_LEVEL": level
}
with run(env=env) as postgrest:
response = postgrest.session.get("/")
assert response.status_code == 200
if has_output[0]:
assert re.match(
r'unknownSocket - - \[.+\] "GET / HTTP/1.1" 200 - "" "python-requests/.+"',
postgrest.process.stdout.readline().decode(),
)
response = postgrest.session.get("/unknown")
assert response.status_code == 404
if has_output[1]:
assert re.match(
r'unknownSocket - - \[.+\] "GET /unknown HTTP/1.1" 404 - "" "python-requests/.+"',
postgrest.process.stdout.readline().decode(),
)
response = postgrest.session.get("/rpc/raise_bad_pt")
assert response.status_code == 500
if has_output[2]:
assert re.match(
r'unknownSocket - - \[.+\] "GET /rpc/raise_bad_pt HTTP/1.1" 500 - "" "python-requests/.+"',
postgrest.process.stdout.readline().decode(),
)