code styling

This commit is contained in:
Oscar Krause 2024-11-20 09:10:43 +01:00
parent 55446f7d9c
commit 317699ff58
2 changed files with 10 additions and 10 deletions

View File

@ -27,15 +27,17 @@ class PatchMalformedJsonMiddleware(BaseHTTPMiddleware):
json.loads(body) json.loads(body)
except json.decoder.JSONDecodeError: except json.decoder.JSONDecodeError:
logger.warning(f'Malformed json received! Try to fix it, "PatchMalformedJsonMiddleware" is enabled.') logger.warning(f'Malformed json received! Try to fix it, "PatchMalformedJsonMiddleware" is enabled.')
body = body.replace('\t', '') s = PatchMalformedJsonMiddleware.fix_json(body)
body = body.replace('\n', '')
s = re.sub(PatchMalformedJsonMiddleware.REGEX, r'\1"\2', body)
logger.debug(f'Fixed JSON: "{s}"') logger.debug(f'Fixed JSON: "{s}"')
s = json.loads(s) # ensure json is now valid s = json.loads(s) # ensure json is now valid
# set new body # set new body
request._body = json.dumps(s).encode('utf-8') request._body = json.dumps(s).encode('utf-8')
response = await call_next(request) response = await call_next(request)
return response return response
@staticmethod
def fix_json(s: str) -> str:
s = s.replace('\t', '')
s = s.replace('\n', '')
return re.sub(PatchMalformedJsonMiddleware.REGEX, r'\1"\2', s)

View File

@ -17,9 +17,8 @@ sys.path.append('../app')
from app import main from app import main
from app.util import load_key from app.util import load_key
from middleware import PatchMalformedJsonMiddleware
main.app.add_middleware(PatchMalformedJsonMiddleware, enabled=True) # main.app.add_middleware(PatchMalformedJsonMiddleware, enabled=True)
client = TestClient(main.app) client = TestClient(main.app)
ORIGIN_REF, ALLOTMENT_REF, SECRET = str(uuid4()), '20000000-0000-0000-0000-000000000001', 'HelloWorld' ORIGIN_REF, ALLOTMENT_REF, SECRET = str(uuid4()), '20000000-0000-0000-0000-000000000001', 'HelloWorld'
@ -109,12 +108,11 @@ def test_auth_v1_origin():
def test_auth_v1_origin_malformed_json(): # see oscar.krause/fastapi-dls#1 def test_auth_v1_origin_malformed_json(): # see oscar.krause/fastapi-dls#1
import re
from middleware import PatchMalformedJsonMiddleware from middleware import PatchMalformedJsonMiddleware
# test regex (temporary, until this section is merged into main.py # test regex (temporary, until this section is merged into main.py
body = '{"environment": {"fingerprint": {"mac_address_list": [ff:ff:ff:ff:ff:ff"]}}' s = '{"environment": {"fingerprint": {"mac_address_list": [ff:ff:ff:ff:ff:ff"]}}'
replaced = re.sub(PatchMalformedJsonMiddleware.REGEX, r'\1"\2', body) replaced = PatchMalformedJsonMiddleware.fix_json(s)
assert replaced == '{"environment": {"fingerprint": {"mac_address_list": ["ff:ff:ff:ff:ff:ff"]}}' assert replaced == '{"environment": {"fingerprint": {"mac_address_list": ["ff:ff:ff:ff:ff:ff"]}}'