From 9dd801a20b233c236152fdff7dc673f874a2290c Mon Sep 17 00:00:00 2001 From: Iain Sproat <68657+iainsproat@users.noreply.github.com> Date: Wed, 17 Jul 2024 13:52:11 +0100 Subject: [PATCH 1/3] chore(tests): add toxiproxy for integration testing network issues --- docker-compose.yml | 67 +++++++++++------------------------ tests/integration/conftest.py | 2 +- 2 files changed, 21 insertions(+), 48 deletions(-) diff --git a/docker-compose.yml b/docker-compose.yml index 01f7e199..53f13037 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -52,14 +52,6 @@ services: #### # Speckle Server ####### - speckle-frontend: - image: speckle/speckle-frontend:latest - restart: always - ports: - - "0.0.0.0:8080:8080" - environment: - FILE_SIZE_LIMIT_MB: 100 - speckle-server: image: speckle/speckle-server:latest restart: always @@ -111,46 +103,27 @@ services: POSTGRES_DB: "speckle" ENABLE_MP: "false" - preview-service: - image: speckle/speckle-preview-service:latest - restart: always - depends_on: - speckle-server: - condition: service_healthy - mem_limit: "1000m" - memswap_limit: "1000m" - environment: - DEBUG: "preview-service:*" - PG_CONNECTION_STRING: "postgres://speckle:speckle@postgres/speckle" - - webhook-service: - image: speckle/speckle-webhook-service:latest - restart: always - depends_on: - speckle-server: - condition: service_healthy - environment: - DEBUG: "webhook-service:*" - PG_CONNECTION_STRING: "postgres://speckle:speckle@postgres/speckle" - WAIT_HOSTS: postgres:5432 - - fileimport-service: - image: speckle/speckle-fileimport-service:latest - restart: always - depends_on: - speckle-server: - condition: service_healthy - environment: - DEBUG: "fileimport-service:*" - PG_CONNECTION_STRING: "postgres://speckle:speckle@postgres/speckle" - WAIT_HOSTS: postgres:5432 - - S3_ENDPOINT: "http://minio:9000" - S3_ACCESS_KEY: "minioadmin" - S3_SECRET_KEY: "minioadmin" - S3_BUCKET: "speckle-server" + #### + # Testing and development tools + ####### - SPECKLE_SERVER_URL: "http://speckle-server:3000" + toxiproxy: + ### + # Toxiproxy is a tool to simulate network conditions https://github.com/Shopify/toxiproxy + # Instead of connecting to speckle-server on port 3000, connect to ToxiProxy on port 3001 + # Toxiproxy will forward the connection to speckle-server + # Use the ToxiProxy API to simulate network conditions as necessary + ### + image: ghcr.io/shopify/toxiproxy:2.9.0 + volumes: + # This mounts the toxiproxy.json file into the container at /config/toxiproxy.json + - ./toxiproxy.json:/config/toxiproxy.json + # This command starts toxiproxy with the configuration file + entrypoint: /toxiproxy -config /config/toxiproxy.json + ports: + # open ports to match the 'listen' ports in the toxiproxy.json file + - 8474:8474 # Toxiproxy API + - 3001:3001 # Speckle server networks: default: diff --git a/tests/integration/conftest.py b/tests/integration/conftest.py index cd576b47..122a3368 100644 --- a/tests/integration/conftest.py +++ b/tests/integration/conftest.py @@ -17,7 +17,7 @@ @pytest.fixture(scope="session") def host(): - return "localhost:3000" + return "localhost:3001" def seed_user(host): From a85e3baaec20dc955e7697cf17baa36fabc845e0 Mon Sep 17 00:00:00 2001 From: Iain Sproat <68657+iainsproat@users.noreply.github.com> Date: Wed, 17 Jul 2024 14:09:07 +0100 Subject: [PATCH 2/3] Include toxiproxy.json file --- toxiproxy.json | 8 ++++++++ 1 file changed, 8 insertions(+) create mode 100644 toxiproxy.json diff --git a/toxiproxy.json b/toxiproxy.json new file mode 100644 index 00000000..7d00f76e --- /dev/null +++ b/toxiproxy.json @@ -0,0 +1,8 @@ +[ + { + "name": "speckle_test_speckle-server", + "listen": "0.0.0.0:3001", + "upstream": "speckle-server:3000", + "enabled": true + } +] From 9a2651bec14c8511618caa0c4dcda6852a7412fa Mon Sep 17 00:00:00 2001 From: Iain Sproat <68657+iainsproat@users.noreply.github.com> Date: Thu, 18 Jul 2024 08:39:19 +0100 Subject: [PATCH 3/3] Specklepy relies on the frontend being available --- docker-compose.yml | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/docker-compose.yml b/docker-compose.yml index 53f13037..e56ae1bb 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -52,6 +52,14 @@ services: #### # Speckle Server ####### + speckle-frontend: + image: speckle/speckle-frontend:latest + restart: always + ports: + - "0.0.0.0:8080:8080" + environment: + FILE_SIZE_LIMIT_MB: 100 + speckle-server: image: speckle/speckle-server:latest restart: always