From 5d876bcded743be7ffc8f4e02ed520be98e25ca5 Mon Sep 17 00:00:00 2001 From: Daniel <daniel@harvey> Date: Thu, 13 Aug 2020 07:57:28 +0200 Subject: [PATCH] ENH: Added MariaDB Docker option to test targets in makefile. --- CHANGELOG.md | 3 +++ makefile | 18 ++++++++++++++++++ tests/docker_env/.config | 11 +++++++++++ tests/docker_env/config.defaults | 1 + 4 files changed, 33 insertions(+) create mode 100644 tests/docker_env/.config create mode 120000 tests/docker_env/config.defaults diff --git a/CHANGELOG.md b/CHANGELOG.md index 823a7d3..4dedd48 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -39,6 +39,9 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 `get_head_version`, `get_head_relative`, `get_version_history`. The versions are tracked internally by the `_iversion` field which is an integer and which should not be used outside of the backend. +* New makefile targets for testing with MariaDB instance from Docker image: call + `make test-docker` to temporarily start a Docker container with MariaDB which + will be used for the unit tests. ### Changed ### diff --git a/makefile b/makefile index 0c9ddab..ddac9ed 100644 --- a/makefile +++ b/makefile @@ -51,3 +51,21 @@ drop-%: .PHONY: test test: ./utils/make_db test --fresh + +# Run tests with a database which is started in a Docker container +.PHONY: test-docker +test-docker: + @docker kill caosdb-mysqlserver-test || true + @docker container rm caosdb-mysqlserver-test || true + @docker run --name caosdb-mysqlserver-test -p "3306:3306" \ + -e MYSQL_ROOT_PASSWORD="pass-for-test" -d mariadb + @sleep 10 + MAINPATH=$(realpath tests/docker_env) utils/make_db test --fresh + @docker kill caosdb-mysqlserver-test + @docker container rm caosdb-mysqlserver-test + +# if automatic stopping failed +.PHONY: test-docker-stop +test-docker-stop: + docker kill caosdb-mysqlserver-test + docker container rm caosdb-mysqlserver-test diff --git a/tests/docker_env/.config b/tests/docker_env/.config new file mode 100644 index 0000000..393b835 --- /dev/null +++ b/tests/docker_env/.config @@ -0,0 +1,11 @@ +# Config for tests with a Docker SQL server + +# The host of the MySQL server. +MYSQL_HOST=127.0.0.1 +# The port number of the MySQL server. +MYSQL_PORT=3306 +# The user for the installation. Note: This is not the user +# which will then be used by the CaosDB Server. +MYSQL_USER=root +MYSQL_USER_PASSWORD=pass-for-test +DATABASE_USER_HOST_LIST=127.0.0.1,%, \ No newline at end of file diff --git a/tests/docker_env/config.defaults b/tests/docker_env/config.defaults new file mode 120000 index 0000000..149ebfc --- /dev/null +++ b/tests/docker_env/config.defaults @@ -0,0 +1 @@ +../../config.defaults \ No newline at end of file -- GitLab