From 0fbd24fa1157ca929af94998728a40ca456d4293 Mon Sep 17 00:00:00 2001 From: Georg-Stahn Date: Mon, 8 Jan 2024 16:01:54 +0100 Subject: [PATCH 1/2] 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 From 2ac57b76a661ea29d059be220d766df7413654f7 Mon Sep 17 00:00:00 2001 From: Georg-Stahn Date: Mon, 8 Jan 2024 16:21:43 +0100 Subject: [PATCH 2/2] formatted emulate script --- pkgs/clan-cli/tests/emulate_fastapi.py | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) diff --git a/pkgs/clan-cli/tests/emulate_fastapi.py b/pkgs/clan-cli/tests/emulate_fastapi.py index 1ccdab2..27a492f 100644 --- a/pkgs/clan-cli/tests/emulate_fastapi.py +++ b/pkgs/clan-cli/tests/emulate_fastapi.py @@ -6,10 +6,12 @@ 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 = """ @@ -21,9 +23,10 @@ async def consume_service_from_other_entity() -> HTMLResponse: """ 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[[ + html_content = b"""HTTP/1.1 200 OK\r\n\r\n[[ { "uuid": "8e285c0c-4e40-430a-a477-26b3b81e30df", "service_name": "Carlos Printing", @@ -104,12 +107,13 @@ async def ap_list_of_services() -> HTMLResponse: }, "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 + html_content = b"""HTTP/1.1 200 OK\r\n\r\n [ { "did": "did:sov:test:1234", @@ -139,7 +143,8 @@ async def dlg_list_of_did_resolutions() -> HTMLResponse: ] } } -]''' +]""" return HTMLResponse(content=html_content, status_code=200) -uvicorn.run(app, host="localhost", port=8000) \ No newline at end of file + +uvicorn.run(app, host="localhost", port=8000)