♻️ Simplify tests, run in same backend service (#152)

remove backend-tests
This commit is contained in:
Sebastián Ramírez
2020-04-19 12:34:03 +02:00
committed by GitHub
parent 8f9c2bac42
commit 283bc7c95b
10 changed files with 8 additions and 69 deletions

View File

@@ -1,5 +1,5 @@
COMPOSE_PATH_SEPARATOR=:
COMPOSE_FILE=docker-compose.test.yml:docker-compose.shared.admin.yml:docker-compose.shared.base-images.yml:docker-compose.shared.depends.yml:docker-compose.shared.env.yml:docker-compose.dev.build.yml:docker-compose.dev.command.yml:docker-compose.dev.env.yml:docker-compose.dev.labels.yml:docker-compose.dev.networks.yml:docker-compose.dev.ports.yml:docker-compose.dev.volumes.yml
COMPOSE_FILE=docker-compose.shared.admin.yml:docker-compose.shared.base-images.yml:docker-compose.shared.depends.yml:docker-compose.shared.env.yml:docker-compose.dev.build.yml:docker-compose.dev.command.yml:docker-compose.dev.env.yml:docker-compose.dev.labels.yml:docker-compose.dev.networks.yml:docker-compose.dev.ports.yml:docker-compose.dev.volumes.yml
DOMAIN=localhost
# DOMAIN=local.dockertoolbox.tiangolo.com

View File

@@ -3,4 +3,4 @@ set -e
python /app/app/tests_pre_start.py
pytest $* /app/app/tests/
pytest "$@" /app/app/tests/

View File

@@ -1,34 +0,0 @@
FROM python:3.7
WORKDIR /app/
# Install Poetry
RUN curl -sSL https://raw.githubusercontent.com/python-poetry/poetry/master/get-poetry.py | POETRY_HOME=/opt/poetry python && \
cd /usr/local/bin && \
ln -s /opt/poetry/bin/poetry && \
poetry config virtualenvs.create false
# Copy poetry.lock* in case it doesn't exist in the repo
COPY ./app/pyproject.toml ./app/poetry.lock* /app/
RUN poetry install --no-dev --no-root
# For development, Jupyter remote kernel, Hydrogen
# Using inside the container:
# jupyter lab --ip=0.0.0.0 --allow-root --NotebookApp.custom_display_url=http://127.0.0.1:8888
ARG env=prod
RUN bash -c "if [ $env == 'dev' ] ; then pip install jupyterlab ; fi"
EXPOSE 8888
COPY ./app /app
ENV PYTHONPATH=/app
COPY ./app/tests-start.sh /tests-start.sh
RUN chmod +x /tests-start.sh
# This will make the container wait, doing nothing, but alive
CMD ["bash", "-c", "while true; do sleep 1; done"]
# Afterwards you can exec a command /tests-start.sh in the live container, like:
# docker exec -it backend-tests /tests-start.sh

View File

@@ -12,12 +12,6 @@ services:
dockerfile: celeryworker.dockerfile
args:
env: dev
backend-tests:
build:
context: ./backend
dockerfile: tests.dockerfile
args:
env: dev
frontend:
build:
context: ./frontend

View File

@@ -9,7 +9,3 @@ services:
- RUN=celery worker -A app.worker -l info -Q main-queue -c 1
- JUPYTER=jupyter lab --ip=0.0.0.0 --allow-root --NotebookApp.custom_display_url=http://127.0.0.1:8888
- SERVER_HOST=http://${DOMAIN}
backend-tests:
environment:
- JUPYTER=jupyter lab --ip=0.0.0.0 --allow-root --NotebookApp.custom_display_url=http://127.0.0.1:8888
- SERVER_HOST=http://${DOMAIN}

View File

@@ -6,6 +6,3 @@ services:
celeryworker:
volumes:
- ./backend/app:/app
backend-tests:
volumes:
- ./backend/app:/app

View File

@@ -11,9 +11,13 @@ services:
environment:
- SERVER_NAME=${DOMAIN}
- SERVER_HOST=https://${DOMAIN}
# Allow explicit env var override for tests
- SMTP_HOST=${SMTP_HOST}
celeryworker:
env_file:
- .env
environment:
- SERVER_NAME=${DOMAIN}
- SERVER_HOST=https://${DOMAIN}
# Allow explicit env var override for tests
- SMTP_HOST=${SMTP_HOST}

View File

@@ -1,16 +0,0 @@
version: '3.3'
services:
backend-tests:
build:
context: ./backend
dockerfile: tests.dockerfile
command: bash -c "while true; do sleep 1; done"
env_file:
- .env
environment:
- SERVER_NAME=backend
- SERVER_HOST=http://${DOMAIN}
backend:
environment:
# Don't send emails during testing
- SMTP_HOST=

View File

@@ -9,7 +9,6 @@ if [ $(uname -s) = "Linux" ]; then
fi
docker-compose \
-f docker-compose.test.yml \
-f docker-compose.shared.admin.yml \
-f docker-compose.shared.base-images.yml \
-f docker-compose.shared.depends.yml \

View File

@@ -3,17 +3,16 @@
# Exit in case of error
set -e
DOMAIN=backend \
DOMAIN=backend SMTP_HOST="" \
docker-compose \
-f docker-compose.shared.base-images.yml \
-f docker-compose.shared.env.yml \
-f docker-compose.shared.depends.yml \
-f docker-compose.deploy.build.yml \
-f docker-compose.test.yml \
config > docker-stack.yml
docker-compose -f docker-stack.yml build
docker-compose -f docker-stack.yml down -v --remove-orphans # Remove possibly previous broken stacks left hanging after an error
docker-compose -f docker-stack.yml up -d
docker-compose -f docker-stack.yml exec -T backend-tests /tests-start.sh "$@"
docker-compose -f docker-stack.yml exec -T backend bash /app/tests-start.sh "$@"
docker-compose -f docker-stack.yml down -v --remove-orphans