From 4a81bc45dbba6c7697f376d705287608b12aaaf3 Mon Sep 17 00:00:00 2001 From: Marvin Steadfast Date: Mon, 29 Aug 2016 09:30:59 +0200 Subject: [PATCH] added travis testing travis builds and spins up containers for sqlite, mariadb and postgres and runs a simple python test script for accessing the wallabag. --- .gitignore | 3 +++ .travis.yml | 25 +++++++++++++++++++++++++ tests/docker-compose.mariadb.yml | 22 ++++++++++++++++++++++ tests/docker-compose.postgresql.yml | 24 ++++++++++++++++++++++++ tests/docker-compose.sqlite.yml | 17 +++++++++++++++++ tests/test_login.py | 14 ++++++++++++++ 6 files changed, 105 insertions(+) create mode 100644 .gitignore create mode 100644 .travis.yml create mode 100644 tests/docker-compose.mariadb.yml create mode 100644 tests/docker-compose.postgresql.yml create mode 100644 tests/docker-compose.sqlite.yml create mode 100644 tests/test_login.py diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..d418184 --- /dev/null +++ b/.gitignore @@ -0,0 +1,3 @@ +.cache +__pycache__/* +*.pyc diff --git a/.travis.yml b/.travis.yml new file mode 100644 index 0000000..edec687 --- /dev/null +++ b/.travis.yml @@ -0,0 +1,25 @@ +language: python + +python: + - 3.5 + +services: + - docker + +env: + - DB_TYPE=sqlite + - DB_TYPE=mariadb + - DB_TYPE=postgresql + +install: + - docker-compose -f tests/docker-compose.$DB_TYPE.yml build + - docker-compose -f tests/docker-compose.$DB_TYPE.yml up -d + +before_script: + - pip install pytest + - pip install requests + +script: + - docker ps | grep -q wallabag + - sleep 60 + - py.test tests/ diff --git a/tests/docker-compose.mariadb.yml b/tests/docker-compose.mariadb.yml new file mode 100644 index 0000000..df1131f --- /dev/null +++ b/tests/docker-compose.mariadb.yml @@ -0,0 +1,22 @@ +version: '2' +services: + wallabag: + build: + context: ../ + image: wallabag:mariadb + container_name: wallabag + environment: + - MYSQL_ROOT_PASSWORD=wallaroot + - SYMFONY__ENV__SECRET=F00B4R + - SYMFONY__ENV__DATABASE_DRIVER=pdo_mysql + - SYMFONY__ENV__DATABASE_HOST=db + - SYMFONY__ENV__DATABASE_PORT=3306 + - SYMFONY__ENV__DATABASE_NAME=wallabag + - SYMFONY__ENV__DATABASE_USER=wallabag + - SYMFONY__ENV__DATABASE_PASSWORD=wallapass + ports: + - "127.0.0.1:80:80" + db: + image: mariadb + environment: + - MYSQL_ROOT_PASSWORD=wallaroot diff --git a/tests/docker-compose.postgresql.yml b/tests/docker-compose.postgresql.yml new file mode 100644 index 0000000..00fcc43 --- /dev/null +++ b/tests/docker-compose.postgresql.yml @@ -0,0 +1,24 @@ +version: '2' +services: + wallabag: + build: + context: ../ + image: wallabag:postgresql + container_name: wallabag + environment: + - POSTGRES_PASSWORD=my-secret-pw + - POSTGRES_USER=my-super-user + - SYMFONY__ENV__SECRET=F00B4R + - SYMFONY__ENV__DATABASE_DRIVER=pdo_pgsql + - SYMFONY__ENV__DATABASE_HOST=db + - SYMFONY__ENV__DATABASE_PORT=5432 + - SYMFONY__ENV__DATABASE_NAME=wallabag + - SYMFONY__ENV__DATABASE_USER=wallabag + - SYMFONY__ENV__DATABASE_PASSWORD=wallapass + ports: + - "127.0.0.1:80:80" + db: + image: postgres + environment: + - POSTGRES_PASSWORD=my-secret-pw + - POSTGRES_USER=my-super-user diff --git a/tests/docker-compose.sqlite.yml b/tests/docker-compose.sqlite.yml new file mode 100644 index 0000000..74755d3 --- /dev/null +++ b/tests/docker-compose.sqlite.yml @@ -0,0 +1,17 @@ +version: '2' +services: + wallabag: + build: + context: ../ + image: wallabag:sqlite + container_name: wallabag + environment: + - SYMFONY__ENV__DATABASE_DRIVER=pdo_sqlite + - SYMFONY__ENV__DATABASE_HOST=127.0.0.1 + - SYMFONY__ENV__DATABASE_PORT=~ + - SYMFONY__ENV__DATABASE_NAME=symfony + - SYMFONY__ENV__DATABASE_USER=root + - SYMFONY__ENV_DATABASE_PASSWORD=~ + - SYMFONY__ENV__SECRET=F00B4R + ports: + - "127.0.0.1:80:80" diff --git a/tests/test_login.py b/tests/test_login.py new file mode 100644 index 0000000..6ebeb07 --- /dev/null +++ b/tests/test_login.py @@ -0,0 +1,14 @@ +import requests + + +URL = 'http://127.0.0.1:80' + + +def test_login_page(): + r = requests.get(URL, allow_redirects=True) + + assert r.status_code == 200 + assert 'Login' in r.text + assert 'Password' in r.text + assert 'Register' in r.text + assert 'Username' in r.text