From 34f1fa461bb269362aadd3dd39521767cb4efaca Mon Sep 17 00:00:00 2001 From: Henrik tom Woerden <henrik.tom-woerden@ds.mpg.de> Date: Tue, 23 Jul 2019 19:57:34 +0200 Subject: [PATCH] Start Server with a different user than root --- .docker/docker-compose.yml | 1 + .docker/wait-for-it.sh | 7 ++++--- .gitlab-ci.yml | 4 ++-- tests/test_authentication.py | 4 +--- tests/test_boolean.py | 6 ++++-- tests/test_file.py | 2 +- tests/test_query_template.py | 16 +++++++++------- tests/test_tenpoints.py | 8 +++----- tox.ini | 2 +- 9 files changed, 26 insertions(+), 24 deletions(-) diff --git a/.docker/docker-compose.yml b/.docker/docker-compose.yml index afc291f..e55f171 100644 --- a/.docker/docker-compose.yml +++ b/.docker/docker-compose.yml @@ -8,6 +8,7 @@ services: - caosnet caosdb-server: image: "$CI_REGISTRY/caosdb:$CAOSDB_TAG" + user: 999:999 depends_on: - sqldb networks: diff --git a/.docker/wait-for-it.sh b/.docker/wait-for-it.sh index dd6947c..d69e99f 100755 --- a/.docker/wait-for-it.sh +++ b/.docker/wait-for-it.sh @@ -1,7 +1,8 @@ #!/usr/bin/env bash -# TODO add proper license -# from githu: -# Use this script to test if a given TCP host/port are available +# License: +# From https://github.com/vishnubob/wait-for-it +# The MIT License (MIT) +# Use this script to test if a given TCP host/port are available WAITFORIT_cmdname=${0##*/} diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 30c1b64..7cd6307 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -72,10 +72,11 @@ test: #image: $CI_REGISTRY_IMAGE:latest script: - if [[ "$CAOSDB_TAG" == "" ]]; then - CAOSDB_TAG=latest; + CAOSDB_TAG=dev-latest; fi - echo $CAOSDB_TAG - docker login -u testuser -p $CI_REGISTRY_PASSWORD $CI_REGISTRY + - docker pull $CI_REGISTRY_IMAGE:latest - cd .docker - DIR=`pwd` - CERTPATH=$DIR"/cert" CAOSDB_TAG=$CAOSDB_TAG docker-compose up -d @@ -83,7 +84,6 @@ test: - rc=$? - docker-compose down - exit $rc - - cd .. build-testenv: tags: [docker] diff --git a/tests/test_authentication.py b/tests/test_authentication.py index 884decc..530e1b8 100644 --- a/tests/test_authentication.py +++ b/tests/test_authentication.py @@ -36,7 +36,7 @@ def test_https_support(): from sys import hexversion if hexversion < 0x02070900: raise Exception("version " + str(hex(hexversion))) - elif 0x02999999 <hexversion < 0x03020000: + elif 0x02999999 < hexversion < 0x03020000: raise Exception("version " + str(hex(hexversion))) try: # python2 @@ -72,5 +72,3 @@ def test_login_via_post_form_data_failure(): "username": h.get_config().get("Connection", "username"), "password": "wrongpassphrase" }) - - diff --git a/tests/test_boolean.py b/tests/test_boolean.py index bc6a9fa..dde287a 100644 --- a/tests/test_boolean.py +++ b/tests/test_boolean.py @@ -130,8 +130,10 @@ def test_record(): assert_false(rec3.is_valid()) assert_equals( - rec3.get_property("SimpleBooleanProperty").get_errors()[0].description, - "Cannot parse value to boolean (either 'true' or 'false, ignoring case).") + rec3.get_property( + "SimpleBooleanProperty").get_errors()[0].description, + "Cannot parse value to boolean (either 'true' or 'false, " + "ignoring case).") finally: try: diff --git a/tests/test_file.py b/tests/test_file.py index d978b12..015d311 100644 --- a/tests/test_file.py +++ b/tests/test_file.py @@ -60,7 +60,7 @@ def setup(): def teardown(): try: - execute_query("FIND ENTITY WHICH HAS AN ID > 100").delete() + execute_query("FIND ENTITY WHICH HAS AN ID >= 100").delete() except Exception as e: print(e) try: diff --git a/tests/test_query_template.py b/tests/test_query_template.py index 544b8aa..cab6237 100644 --- a/tests/test_query_template.py +++ b/tests/test_query_template.py @@ -321,25 +321,27 @@ def test_query_select_from_with_wildcard(): assert_equals(len(r.get_entity_by_name("TestRecord").get_properties()), 1) assert_equals(len(r.get_entity_by_name("TestAnimal").get_properties()), 0) + @with_setup(setup, teardown) def test_query_without_permission(): query_def = "FIND TestExperiment WHICH HAS A TestAnimal = Pig" - qt = db.QueryTemplate(name="TestPigExperiment",query=query_def).insert() + qt = db.QueryTemplate(name="TestPigExperiment", query=query_def).insert() - db.administration._insert_user(name="test_user", password="secret_1q!Q", status="ACTIVE", email=None, entity=None) + db.administration._insert_user( + name="test_user", password="secret_1q!Q", status="ACTIVE", email=None, entity=None) db.configure_connection(username="test_user", password="secret_1q!Q") r = db.execute_query(query_def, unique=True) - assert_equals(r.name,"TestRecord") + assert_equals(r.name, "TestRecord") r = db.execute_query("FIND TestPigExperiment", unique=True) - assert_equals(r.name,"TestRecord") + assert_equals(r.name, "TestRecord") db.get_connection()._logout() db.configure_connection() db.get_connection()._login() - e = db.Entity(id = qt.id) + e = db.Entity(id=qt.id) e.retrieve_acl() assert_is_not_none(e.acl) e.deny(username="test_user", permission="RETRIEVE:ENTITY") @@ -348,9 +350,9 @@ def test_query_without_permission(): db.configure_connection(username="test_user", password="secret_1q!Q") r = db.execute_query(query_def, unique=True) - assert_equals(r.name,"TestRecord") + assert_equals(r.name, "TestRecord") r = db.execute_query("FIND TestPigExperiment") - assert_equals(len(r),0) + assert_equals(len(r), 0) @with_setup(setup, teardown) diff --git a/tests/test_tenpoints.py b/tests/test_tenpoints.py index 0499f93..a2156bf 100644 --- a/tests/test_tenpoints.py +++ b/tests/test_tenpoints.py @@ -25,6 +25,9 @@ @author: fitschen """ +from nose.tools import assert_equals, assert_is_not_none, assert_true # @UnresolvedImport +import caosdb as h +import os from caosdb.exceptions import CaosDBException @@ -49,11 +52,6 @@ Datensätzen Description oder einer Zahl''' -import os -import caosdb as h -from nose.tools import assert_equals, assert_is_not_none, assert_true # @UnresolvedImport - - def setup_module(): try: h.execute_query("FIND Complex*").delete() diff --git a/tox.ini b/tox.ini index b3a93ea..b35f949 100644 --- a/tox.ini +++ b/tox.ini @@ -1,5 +1,5 @@ [tox] -envlist= py27, py34, py35, py36, py37 +envlist= py37 skip_missing_interpreters = true [testenv] sitepackages=true -- GitLab