diff --git a/e2e_tests/conftest.py b/e2e_tests/conftest.py new file mode 100644 index 000000000..c554433da --- /dev/null +++ b/e2e_tests/conftest.py @@ -0,0 +1,19 @@ +import pytest +import subprocess +import time +import os + +@pytest.fixture(scope="session", autouse=True) +def docker_compose_setup(): + """Spin up Docker containers for OPAL services using docker-compose.""" + compose_file = os.path.abspath("../app-tests/docker-compose-app-tests.yml") + + subprocess.run(["docker-compose", "-f", compose_file, "up", "-d"]) + + # Wait for services to be up and running + time.sleep(10) + + yield + + # Tear down the Docker services after tests + subprocess.run(["docker-compose", "-f", compose_file, "down"]) diff --git a/e2e_tests/requirements.txt b/e2e_tests/requirements.txt new file mode 100644 index 000000000..35b47dcaf --- /dev/null +++ b/e2e_tests/requirements.txt @@ -0,0 +1,3 @@ +pytest +requests +docker \ No newline at end of file diff --git a/e2e_tests/tests/test_e2e.py b/e2e_tests/tests/test_e2e.py new file mode 100644 index 000000000..564b440f0 --- /dev/null +++ b/e2e_tests/tests/test_e2e.py @@ -0,0 +1,24 @@ +import requests +import time +import subprocess + +def check_logs(container_name): + result = subprocess.run(["docker", "logs", container_name], capture_output=True, text=True) + assert "ERROR" not in result.stdout and "CRITICAL" not in result.stdout, f"Critical errors found in {container_name}" + +def test_opal_server_health(): + """Test OPAL Server health endpoint.""" + response = requests.get("http://opal_server:7002/healthcheck") + assert response.status_code == 200 + +def test_opal_client_health(): + """Test OPAL Client endpoint.""" + response = requests.get("http://opal_client:7000/healthcheck") + assert response.status_code == 200 + print(response.json()) + +def test_opal_server_logs(): + check_logs("app-tests-opal_server-1") + +def test_opal_client_logs(): + check_logs("app-tests-opal_client-1")