From a1cb3732bab1750cae30d302607ca389ecf2b502 Mon Sep 17 00:00:00 2001 From: leehk Date: Thu, 17 Apr 2025 12:31:27 +0800 Subject: [PATCH] test --- .../workflows/{build_new.yml => build.yml} | 2 +- app/docker-compose.yml | 8 +++-- app/tests/Pipfile | 3 ++ .../backend/test_frontend_backend.py | 29 +++++++++++++++++++ 4 files changed, 39 insertions(+), 3 deletions(-) rename .github/workflows/{build_new.yml => build.yml} (98%) create mode 100644 app/tests/tests/integration/backend/test_frontend_backend.py diff --git a/.github/workflows/build_new.yml b/.github/workflows/build.yml similarity index 98% rename from .github/workflows/build_new.yml rename to .github/workflows/build.yml index 701c3db..33eea3f 100644 --- a/.github/workflows/build_new.yml +++ b/.github/workflows/build.yml @@ -36,7 +36,7 @@ jobs: image_config: - IMAGE_NAME: backend-aimingmedai BUILD_CONTEXT: ./app/backend - DOCKERFILE: ./app/backend/Dockerfile + DOCKERFILE: ./app/backend/Dockerfile.prod - IMAGE_NAME: frontend-aimingmedai BUILD_CONTEXT: ./app/frontend DOCKERFILE: ./app/frontend/Dockerfile.test diff --git a/app/docker-compose.yml b/app/docker-compose.yml index b2d2e85..6e9ab35 100644 --- a/app/docker-compose.yml +++ b/app/docker-compose.yml @@ -11,7 +11,7 @@ services: build: context: ./backend dockerfile: Dockerfile - container_name: backend + container_name: backend-aimingmedai platform: linux/amd64 # command: pipenv run uvicorn main:app --reload --workers 1 --host 0.0.0.0 --port 8765 volumes: @@ -26,7 +26,7 @@ services: build: context: ./frontend dockerfile: Dockerfile.test - container_name: frontend + container_name: frontend-aimingmedai volumes: - ./frontend:/usr/src/app - /usr/src/app/node_modules @@ -40,6 +40,10 @@ services: tests: build: context: ./tests + container_name: tests-aimingmedai + # depends_on: + # - backend + # - frontend environment: FRONTEND_URL: http://frontend:80 BACKEND_URL: http://backend:80 diff --git a/app/tests/Pipfile b/app/tests/Pipfile index 9049d17..8a74a73 100644 --- a/app/tests/Pipfile +++ b/app/tests/Pipfile @@ -11,6 +11,9 @@ evonik-dummy = "*" pyrsistent = "*" pyjwt = "*" pydantic = "*" +websockets = "*" +pytest-asyncio = "*" +pytest-cov = "*" [dev-packages] autopep8 = "*" diff --git a/app/tests/tests/integration/backend/test_frontend_backend.py b/app/tests/tests/integration/backend/test_frontend_backend.py new file mode 100644 index 0000000..42563b8 --- /dev/null +++ b/app/tests/tests/integration/backend/test_frontend_backend.py @@ -0,0 +1,29 @@ +import pytest +import subprocess +import requests +import json +import time +import os +import asyncio +import websockets + + +@pytest.mark.asyncio +async def test_chatbot_integration(): + # Send a request to the chatbot endpoint + url = "ws://backend-aimingmedai:80/ws" + data = [{"content": "Hello"}] + try: + async with websockets.connect(url) as websocket: + await websocket.send(json.dumps(data)) + response = await websocket.recv() + assert response is not None + try: + response_json = json.loads(response) + assert "type" in response_json + assert "payload" in response_json + assert response_json["payload"] == "" + except json.JSONDecodeError: + assert False, "Invalid JSON response" + except Exception as e: + pytest.fail(f"Request failed: {e}") \ No newline at end of file