From e0f8e7c2eed3c9786af27c76fbfe6e0f9988d5b5 Mon Sep 17 00:00:00 2001 From: Timm Fitschen <timm.fitschen@ds.mpg.de> Date: Thu, 29 Nov 2018 01:11:08 +0100 Subject: [PATCH] BUG: check sections before configParser.get --- pytest.ini | 4 ++-- setup.cfg | 2 ++ setup.py | 1 + src/caosdb/common/administration.py | 2 ++ src/caosdb/common/models.py | 4 +++- src/caosdb/configuration.py | 1 + src/caosdb/connection/connection.py | 5 +++-- unittests/test_connection.py | 2 ++ 8 files changed, 16 insertions(+), 5 deletions(-) diff --git a/pytest.ini b/pytest.ini index abdd410e..ca6aad82 100644 --- a/pytest.ini +++ b/pytest.ini @@ -1,3 +1,3 @@ [pytest] -testpaths = unittests -addopts = -vv --cov=caosdb +testpaths=unittests +addopts=-x -vv --cov=caosdb diff --git a/setup.cfg b/setup.cfg index 74c5620b..c46089e4 100644 --- a/setup.cfg +++ b/setup.cfg @@ -1,2 +1,4 @@ +[aliases] +test=pytest [pycodestyle] ignore=E501,E121,E123,E126,E226,E24,E704,W503,W504 diff --git a/setup.py b/setup.py index c0ca6bbb..bf55edfe 100755 --- a/setup.py +++ b/setup.py @@ -35,5 +35,6 @@ setup(name='PyCaosDB', install_requires=['lxml>=3.6.4', 'PyYaml>=3.12', 'future'], extras_require={'keyring': ['keyring>=13.0.0']}, + setup_requires=["pytest-runner>=2.0,<3dev"], tests_require=["pytest", "pytest-cov", "coverage>=4.4.2"], ) diff --git a/src/caosdb/common/administration.py b/src/caosdb/common/administration.py index eff03f8d..e5a817b7 100644 --- a/src/caosdb/common/administration.py +++ b/src/caosdb/common/administration.py @@ -53,6 +53,7 @@ def set_server_property(key, value): con._form_data_request(method="POST", path="_server_properties", params={key: value}).read() + def get_server_properties(): """get_server_properties @@ -71,6 +72,7 @@ def get_server_properties(): props[elem.tag] = elem.text return props + def get_server_property(key): """get_server_property diff --git a/src/caosdb/common/models.py b/src/caosdb/common/models.py index e07f9713..71c5c2b6 100644 --- a/src/caosdb/common/models.py +++ b/src/caosdb/common/models.py @@ -1822,11 +1822,13 @@ class Container(list): insertion, update, and deletion which are a applied to all entities in the container or the whole container respectively. """ + _debug = staticmethod( lambda: ( get_config().getint( "Container", - "debug") if get_config().get( + "debug") if get_config().has_section("Container") and + get_config().get( "Container", "debug") is not None else 0)) diff --git a/src/caosdb/configuration.py b/src/caosdb/configuration.py index c8895f90..3933845c 100644 --- a/src/caosdb/configuration.py +++ b/src/caosdb/configuration.py @@ -28,6 +28,7 @@ except ImportError: # python3 from configparser import ConfigParser + def _reset_config(): global _pycaosdbconf _pycaosdbconf = ConfigParser(allow_no_value=False) diff --git a/src/caosdb/connection/connection.py b/src/caosdb/connection/connection.py index eceaff0b..90e6f401 100644 --- a/src/caosdb/connection/connection.py +++ b/src/caosdb/connection/connection.py @@ -79,6 +79,7 @@ class _DefaultCaosDBServerConnection(CaosDBServerConnection): configure request """ + def __init__(self): self._useragent = ("PyCaosDB - " "DefaultCaosDBServerConnection") @@ -233,8 +234,8 @@ def _get_authenticator(**config): except ImportError: raise ConfigurationException("Password method \"{}\" not implemented. " - "Valid methods: plain, pass, or keyring." - .format(config["password_method"])) + "Valid methods: plain, pass, or keyring." + .format(config["password_method"])) def configure_connection(**kwargs): diff --git a/unittests/test_connection.py b/unittests/test_connection.py index 06838d1c..26e3388d 100644 --- a/unittests/test_connection.py +++ b/unittests/test_connection.py @@ -92,6 +92,8 @@ def test_make_uri_path(): def test_configure_connection(): + if not get_config().has_section("Connection"): + get_config().add_section("Connection") get_config().set("Connection", "url", "https://host.de") get_config().set("Connection", "username", "test_username") get_config().set("Connection", "password", "test_password") -- GitLab