diff --git a/docker-compose.yml b/docker-compose.yml new file mode 100644 index 000000000..ee99712ae --- /dev/null +++ b/docker-compose.yml @@ -0,0 +1,10 @@ +version: '3.8' + +services: + hypha: + build: . + image: amun-ai/hypha + container_name: hypha + command: --port 9520 --host=0.0.0.0 + ports: + - 9520:9520 diff --git a/environment.yml b/environment.yml new file mode 100644 index 000000000..fdcf6205d --- /dev/null +++ b/environment.yml @@ -0,0 +1,11 @@ +channels: + - anaconda + - conda-forge + - defaults +dependencies: + - python=3.10 + - conda-forge::minio + - pip + - pip: + - playwright + - -e .[server-apps] diff --git a/requirements_test.txt b/requirements_test.txt index 7e43be6d8..ecc5ea7b4 100644 --- a/requirements_test.txt +++ b/requirements_test.txt @@ -6,3 +6,4 @@ requests==2.31.0 websocket-client==1.6.1 nvidia-pytriton==0.2.1; python_version == '3.8' simpervisor==1.0.0 +testcontainers diff --git a/tests/test_containers.py b/tests/test_containers.py new file mode 100644 index 000000000..5af2cdc94 --- /dev/null +++ b/tests/test_containers.py @@ -0,0 +1,35 @@ +from testcontainers.compose import DockerCompose +import requests +import time + + +def test_server_response(): + compose = DockerCompose( + "./" + ) # Assuming docker-compose.yml is in the same directory + print(compose) + + with compose: + # Wait a few seconds for the server to be up + time.sleep(5) + + # Docker Compose typically uses the service name as the hostname + host, port = compose.get_service_host_and_port("hypha", 9520) + + # Construct the URL to test + url = f"http://{host}:{port}" + + result_current_dir = compose.exec_in_container(["touch", "test"]) + + # assert result_current_dir.exit_code == 0 + + result_tmp = compose.exec_in_container(["touch", "/tmp/test"]) + + # assert result_tmp.exit_code == 0 + + print("Write tests passed successfully!") + response = requests.get(url) + if response.status_code == 200: + print("Server responded successfully!") + else: + print(f"Server responded with status code: {response.status_code}")