From 0fbd24fa1157ca929af94998728a40ca456d4293 Mon Sep 17 00:00:00 2001 From: Georg-Stahn Date: Mon, 8 Jan 2024 16:01:54 +0100 Subject: [PATCH] add emulate with fastapi --- pkgs/clan-cli/tests/emulate_fastapi.py | 145 +++++++++++++++++++++++++ 1 file changed, 145 insertions(+) create mode 100644 pkgs/clan-cli/tests/emulate_fastapi.py diff --git a/pkgs/clan-cli/tests/emulate_fastapi.py b/pkgs/clan-cli/tests/emulate_fastapi.py new file mode 100644 index 0000000..1ccdab2 --- /dev/null +++ b/pkgs/clan-cli/tests/emulate_fastapi.py @@ -0,0 +1,145 @@ +import uvicorn +from fastapi import FastAPI +from fastapi.responses import HTMLResponse + +app = FastAPI() + +# bash tests: curl localhost:8000/ap_list_of_services + +@app.get("/health") +async def healthcheck() -> str: + return "200 OK" + +@app.get("/consume_service_from_other_entity", response_class=HTMLResponse) +async def consume_service_from_other_entity() -> HTMLResponse: + html_content = """ + + +
+ + + """ + return HTMLResponse(content=html_content, status_code=200) + +@app.get("/ap_list_of_services", response_class=HTMLResponse) +async def ap_list_of_services() -> HTMLResponse: + html_content = b'''HTTP/1.1 200 OK\r\n\r\n[[ + { + "uuid": "8e285c0c-4e40-430a-a477-26b3b81e30df", + "service_name": "Carlos Printing", + "service_type": "3D Printing", + "endpoint_url": "http://127.0.0.1:8000", + "status": "unknown", + "other": { + "action": [ + "register", + "deregister", + "delete", + "create" + ] + }, + "entity_did": "did:sov:test:1234" + }, + { + "uuid": "8e285c0c-4e40-430a-a477-26b3b81e30d1", + "service_name": "Luiss Fax", + "service_type": "Fax", + "endpoint_url": "http://127.0.0.1:8000", + "status": "unknown", + "other": { + "action": [ + "register", + "deregister", + "delete", + "create" + ] + }, + "entity_did": "did:sov:test:1235" + }, + { + "uuid": "8e285c0c-4e40-430a-a477-26b3b81e30d2", + "service_name": "Erdems VR-Stream", + "service_type": "VR-Stream", + "endpoint_url": "http://127.0.0.1:8000", + "status": "unknown", + "other": { + "action": [ + "register", + "deregister", + "delete", + "create" + ] + }, + "entity_did": "did:sov:test:1236" + }, + { + "uuid": "8e285c0c-4e40-430a-a477-26b3b81e30d3", + "service_name": "Onurs gallary", + "service_type": "gallary", + "endpoint_url": "http://127.0.0.1:8000", + "status": "unknown", + "other": { + "action": [ + "register", + "deregister", + "delete", + "create" + ] + }, + "entity_did": "did:sov:test:1237" + }, + { + "uuid": "8e285c0c-4e40-430a-a477-26b3b81e30d4", + "service_name": "Saras Game-Shop", + "service_type": "Game-Shop", + "endpoint_url": "http://127.0.0.1:8000", + "status": "unknown", + "other": { + "action": [ + "register", + "deregister", + "delete", + "create" + ] + }, + "entity_did": "did:sov:test:1238" + } +]]''' + return HTMLResponse(content=html_content, status_code=200) + +@app.get("/dlg_list_of_did_resolutions", response_class=HTMLResponse) +async def dlg_list_of_did_resolutions() -> HTMLResponse: + html_content = b'''HTTP/1.1 200 OK\r\n\r\n +[ + { + "did": "did:sov:test:1234", + "name": "C1", + "ip": "127.0.0.1:5100", + "attached": false, + "visible": true, + "other": { + "network": "Carlo1's Home Network", + "roles": [ + "service repository", + "service consumer" + ] + } + }, + { + "did": "did:sov:test:1235", + "name": "C2", + "ip": "127.0.0.1:5100", + "attached": false, + "visible": true, + "other": { + "network": "Carlo2's Home Network", + "roles": [ + "service repository", + "service prosumer" + ] + } + } +]''' + return HTMLResponse(content=html_content, status_code=200) + +uvicorn.run(app, host="localhost", port=8000) \ No newline at end of file