Skip to content
Snippets Groups Projects
Commit d68b1243 authored by Alexander Kreft's avatar Alexander Kreft
Browse files

resolve threads from merge request

parent 922a6d14
No related branches found
No related tags found
2 merge requests!7MAINT: remove code from __init__,!4TST: refactor configuration test
Pipeline #6052 passed with warnings
......@@ -9,25 +9,9 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
### Added ###
* function `_read_config_files` to read `pycaosdb.ini` files from different paths.
### Changed ###
### Deprecated ###
### Removed ###
### Fixed ###
- #45 test_config_ini_via_envvar
### Security ###
## [Unreleased] ##
### Added ###
* `etag` property for the `caosdb.Query` class. The etag allows to debug the
caching and to decide whether the server has changed between queries.
* function `_read_config_files` to read `pycaosdb.ini` files from different paths.
### Changed ###
......@@ -36,6 +20,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
### Removed ###
### Fixed ###
* #45 - test_config_ini_via_envvar
### Security ###
......
......@@ -50,4 +50,4 @@ from caosdb.connection.connection import configure_connection, get_connection
from caosdb.version import version as __version__
from caosdb.exceptions import *
_read_config_files("PYCAOSDBINI")
\ No newline at end of file
_read_config_files()
\ No newline at end of file
......@@ -29,7 +29,7 @@ except ImportError:
from configparser import ConfigParser
from os import environ, getcwd
from os.path import expanduser, join,isfile
from os.path import expanduser, join, isfile
def _reset_config():
......@@ -53,21 +53,19 @@ def configure(inifile):
def get_config():
return _pycaosdbconf
def _read_config_files(env = "PYCAOSDBINI"):
"""Function to read config files from different paths
Args:
env (string): environment string
def _read_config_files():
"""Function to read config files from different paths. Checks for path in $PYCAOSDBINI or home directory (.pycaosdb.ini) and in the current working directory (pycaosdb.ini).
Returns:
[list]: list with successfully parsed ini-files
"""
[list]: list with successfully parsed ini-files. Order: env_var or home directory, cwd. Used for testing the function.
"""
return_var = []
if env in environ:
return_var.extend(configure(expanduser(environ[env])))
if "PYCAOSDBINI" in environ:
return_var.extend(configure(expanduser(environ["PYCAOSDBINI"])))
else:
return_var.extend(configure(expanduser('~/.pycaosdb.ini')))
return_var.extend(configure(expanduser('~/.pycaosdb.ini')))
if isfile(join(getcwd(), "pycaosdb.ini")):
return_var.extend(configure(join(getcwd(), "pycaosdb.ini")))
return return_var
......@@ -22,27 +22,45 @@
# ** end header
#
import pytest
import caosdb as db
from os import environ, getcwd, remove
from os.path import expanduser, isfile, join
from pytest import raises
def test_config_ini_via_envvar():
from os import environ,getcwd,remove
from os.path import expanduser, isfile,join
@pytest.fixture
def temp_ini_files():
created_temp_ini_cwd = False
created_temp_ini_home = False
if not isfile(join(getcwd(), "pycaosdb.ini")):
open("pycaosdb.ini", 'a').close() # create temporary ini file
created_temp_ini_cwd = True
if not isfile(expanduser("~/.pycaosdb.ini")):
open(expanduser("~/.pycaosdb.ini"), 'a').close() # create temporary ini file in home directory
created_temp_ini_home = True
yield 0
if created_temp_ini_cwd:
remove("pycaosdb.ini")
if created_temp_ini_home:
remove(expanduser("~/.pycaosdb.ini"))
environ["PYCAOSDBINI"] = "~/.pycaosdb.ini"
def test_config_ini_via_envvar(temp_ini_files):
with raises(KeyError):
environ["PYCAOSDBINI"]
environ["PYCAOSDBINI"] = "bla bla"
assert environ["PYCAOSDBINI"] == "bla bla"
assert not expanduser(environ["PYCAOSDBINI"]) in db.configuration._read_config_files("PYCAOSDBINI")
# test wrong configuration file in envvar
assert not expanduser(environ["PYCAOSDBINI"]) in db.configuration._read_config_files()
# test good configuration file in envvar
environ["PYCAOSDBINI"] = "~/.pycaosdb.ini"
if isfile(expanduser(environ["PYCAOSDBINI"])):
assert expanduser("~/.pycaosdb.ini") in db.configuration._read_config_files("PYCAOSDBINI")
if isfile(join(getcwd(), )):
assert join(getcwd(), "pycaosdb.ini") in db.configuration._read_config_files("PYCAOSDBINI")
else:
open("pycaosdb.ini", 'a').close() #create temporary ini file
assert join(getcwd(), "pycaosdb.ini") in db.configuration._read_config_files("PYCAOSDBINI")
remove("pycaosdb.ini")
assert expanduser("~/.pycaosdb.ini") in db.configuration._read_config_files()
# test without envvar
environ.pop("PYCAOSDBINI")
assert expanduser("~/.pycaosdb.ini") in db.configuration._read_config_files()
# test configuration file in cwd
assert join(getcwd(), "pycaosdb.ini") in db.configuration._read_config_files()
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment