From b4f9c1006d8856e1820f78bc6792f0cdc9f62d65 Mon Sep 17 00:00:00 2001
From: Benjamin Bertrand <benjamin.bertrand@esss.se>
Date: Fri, 13 Dec 2019 11:11:47 +0100
Subject: [PATCH] Speed up local tests on OSX

Using a volume for postgres data makes the tests very slow on OSX.
When running the tests, there is no need to persist the data (db is
recreated before each session).

`make db_test` should be used to start postgres without mounting the data
volume (skip the docker-compose.override.yml).
---
 .gitignore                  | 1 +
 Makefile                    | 6 +++---
 docker-compose.override.yml | 2 --
 docker-compose.yml          | 2 ++
 4 files changed, 6 insertions(+), 5 deletions(-)

diff --git a/.gitignore b/.gitignore
index 58d5bab..a2a9259 100644
--- a/.gitignore
+++ b/.gitignore
@@ -15,3 +15,4 @@ junit.xml
 /app/static/files/*
 !/app/static/files/.empty
 .vscode
+.mypy_cache
diff --git a/Makefile b/Makefile
index 3daf9a4..9ed6d66 100644
--- a/Makefile
+++ b/Makefile
@@ -50,9 +50,9 @@ upgrade_db: ## upgrade the dev database
 test:  ## run the tests (on current directory)
 	docker-compose run --rm web pytest --cov=app -v
 
-db_image: ## start postgres and redis to test the latest image
-# Pass docker-compose.yml to skip docker-compose.override.yml
-	docker-compose -f docker-compose.yml up -d postgres redis
+db_test: ## start required containers for test
+# Pass docker-compose.yml to skip docker-compose.override.yml (db not mounted as volume for speed)
+	docker-compose -f docker-compose.yml up -d postgres redis elasticsearch worker
 
 test_image:  ## run the tests (on the latest image)
 # Pass docker-compose.yml to skip docker-compose.override.yml
diff --git a/docker-compose.override.yml b/docker-compose.override.yml
index 7e98c78..477c1c3 100644
--- a/docker-compose.override.yml
+++ b/docker-compose.override.yml
@@ -12,8 +12,6 @@ services:
     command: flask run --host 0.0.0.0 --port 8000
     ports:
       - "8000:8000"
-    volumes:
-      - .:/app
   worker:
     environment:
       LOCAL_SETTINGS: /app/settings.cfg
diff --git a/docker-compose.yml b/docker-compose.yml
index c0fe71f..302c81a 100644
--- a/docker-compose.yml
+++ b/docker-compose.yml
@@ -8,6 +8,8 @@ services:
       - postgres
       - redis
       - elasticsearch
+    volumes:
+      - .:/app
   worker:
     image: registry.esss.lu.se/ics-infrastructure/csentry:master
     container_name: csentry_worker
-- 
GitLab