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
Branches
Tags
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