Skip to content
Snippets Groups Projects
Commit 6ed3df14 authored by Florian Spreckelsen's avatar Florian Spreckelsen
Browse files

Merge branch 'f-test-ini' into 'dev'

FIX: do not raise error if configuration file is missing

See merge request !115
parents 99d59ccd cf504913
No related branches found
No related tags found
2 merge requests!116REL: begin new release cycle,!115FIX: do not raise error if configuration file is missing
Pipeline #42004 passed
...@@ -16,6 +16,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ...@@ -16,6 +16,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
### Removed ### ### Removed ###
### Fixed ### ### Fixed ###
- no Error when no configuration file is used [Issue](https://gitlab.com/linkahead/linkahead-pylib/-/issues/107)
### Security ### ### Security ###
......
This diff is collapsed.
...@@ -49,9 +49,7 @@ def configure(inifile): ...@@ -49,9 +49,7 @@ def configure(inifile):
Return a list of files which have successfully been parsed. Return a list of files which have successfully been parsed.
""" """
global _pycaosdbconf global _pycaosdbconf
if "_pycaosdbconf" not in globals(): if ("_pycaosdbconf" not in globals() or _pycaosdbconf is None):
_pycaosdbconf = None
if _pycaosdbconf is None:
_reset_config() _reset_config()
read_config = _pycaosdbconf.read(inifile) read_config = _pycaosdbconf.read(inifile)
validate_yaml_schema(config_to_yaml(_pycaosdbconf)) validate_yaml_schema(config_to_yaml(_pycaosdbconf))
...@@ -65,6 +63,8 @@ def configure(inifile): ...@@ -65,6 +63,8 @@ def configure(inifile):
def get_config(): def get_config():
global _pycaosdbconf global _pycaosdbconf
if ("_pycaosdbconf" not in globals() or _pycaosdbconf is None):
_reset_config()
return _pycaosdbconf return _pycaosdbconf
...@@ -130,6 +130,11 @@ def _read_config_files(): ...@@ -130,6 +130,11 @@ def _read_config_files():
# End: LinkAhead rename block ################################################## # End: LinkAhead rename block ##################################################
if "PYCAOSDBINI" in environ: if "PYCAOSDBINI" in environ:
if not isfile(expanduser(environ["PYCAOSDBINI"])):
raise RuntimeError(
f"No configuration file found at\n{expanduser(environ['PYCAOSDBINI'])}"
"\nwhich was given via the environment variable PYCAOSDBINI"
)
return_var.extend(configure(expanduser(environ["PYCAOSDBINI"]))) return_var.extend(configure(expanduser(environ["PYCAOSDBINI"])))
else: else:
if isfile(ini_user_caosdb): if isfile(ini_user_caosdb):
......
...@@ -22,10 +22,11 @@ ...@@ -22,10 +22,11 @@
# ** end header # ** end header
# #
import pytest
import linkahead as db
from os import environ, getcwd, remove from os import environ, getcwd, remove
from os.path import expanduser, isfile, join from os.path import expanduser, isfile, join
import linkahead as db
import pytest
from pytest import raises from pytest import raises
...@@ -55,7 +56,8 @@ def test_config_ini_via_envvar(temp_ini_files): ...@@ -55,7 +56,8 @@ def test_config_ini_via_envvar(temp_ini_files):
environ["PYCAOSDBINI"] = "bla bla" environ["PYCAOSDBINI"] = "bla bla"
assert environ["PYCAOSDBINI"] == "bla bla" assert environ["PYCAOSDBINI"] == "bla bla"
# test wrong configuration file in envvar # test wrong configuration file in envvar
assert not expanduser(environ["PYCAOSDBINI"]) in db.configuration._read_config_files() with pytest.raises(RuntimeError):
db.configuration._read_config_files()
# test good configuration file in envvar # test good configuration file in envvar
environ["PYCAOSDBINI"] = "~/.pylinkahead.ini" environ["PYCAOSDBINI"] = "~/.pylinkahead.ini"
assert expanduser("~/.pylinkahead.ini") in db.configuration._read_config_files() assert expanduser("~/.pylinkahead.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