Compare commits
6 commits
158fb1d08b
...
110ddaf3a1
| Author | SHA1 | Date | |
|---|---|---|---|
|
110ddaf3a1 |
|||
|
97e30fa27d |
|||
|
92f307b83a |
|||
|
6bb48f151c |
|||
|
7e76966d5f |
|||
|
776e4a3d8d |
6 changed files with 84 additions and 21 deletions
|
|
@ -1,6 +1,7 @@
|
|||
import os
|
||||
from configparser import ConfigParser
|
||||
from typing import Any
|
||||
from pathlib import Path
|
||||
|
||||
CONFIG_FILENAME = ".corrlib"
|
||||
cached: bool = True
|
||||
|
|
@ -73,7 +74,7 @@ def k2m(k: float) -> float:
|
|||
return (1/(2*k))-4
|
||||
|
||||
|
||||
def set_config(path: str, section: str, option: str, value: Any) -> None:
|
||||
def set_config(path: Path, section: str, option: str, value: Any) -> None:
|
||||
"""
|
||||
Set configuration parameters for the library.
|
||||
|
||||
|
|
@ -88,7 +89,7 @@ def set_config(path: str, section: str, option: str, value: Any) -> None:
|
|||
value: Any
|
||||
The value we set the option to.
|
||||
"""
|
||||
config_path = os.path.join(path, '.corrlib')
|
||||
config_path = os.path.join(path, CONFIG_FILENAME)
|
||||
config = ConfigParser()
|
||||
if os.path.exists(config_path):
|
||||
config.read(config_path)
|
||||
|
|
@ -100,7 +101,7 @@ def set_config(path: str, section: str, option: str, value: Any) -> None:
|
|||
return
|
||||
|
||||
|
||||
def get_db_file(path: str) -> str:
|
||||
def get_db_file(path: Path) -> str:
|
||||
"""
|
||||
Get the database file associated with the library at the given path.
|
||||
|
||||
|
|
@ -118,11 +119,13 @@ def get_db_file(path: str) -> str:
|
|||
config = ConfigParser()
|
||||
if os.path.exists(config_path):
|
||||
config.read(config_path)
|
||||
else:
|
||||
raise FileNotFoundError("Configuration file not found.")
|
||||
db_file = config.get('paths', 'db', fallback='backlogger.db')
|
||||
return db_file
|
||||
|
||||
|
||||
def cache_enabled(path: str) -> bool:
|
||||
def cache_enabled(path: Path) -> bool:
|
||||
"""
|
||||
Check, whether the library is cached.
|
||||
Fallback is true.
|
||||
|
|
@ -141,6 +144,10 @@ def cache_enabled(path: str) -> bool:
|
|||
config = ConfigParser()
|
||||
if os.path.exists(config_path):
|
||||
config.read(config_path)
|
||||
else:
|
||||
raise FileNotFoundError("Configuration file not found.")
|
||||
cached_str = config.get('core', 'cached', fallback='True')
|
||||
if cached_str not in ['True', 'False']:
|
||||
raise ValueError(f"String {cached_str} is not a valid option, only True and False are allowed!")
|
||||
cached_bool = cached_str == ('True')
|
||||
return cached_bool
|
||||
|
|
|
|||
|
|
@ -2,18 +2,19 @@ from typer.testing import CliRunner
|
|||
from corrlib.cli import app
|
||||
import os
|
||||
import sqlite3 as sql
|
||||
from pathlib import Path
|
||||
|
||||
|
||||
runner = CliRunner()
|
||||
|
||||
|
||||
def test_version():
|
||||
def test_version() -> None:
|
||||
result = runner.invoke(app, ["--version"])
|
||||
assert result.exit_code == 0
|
||||
assert "corrlib" in result.output
|
||||
|
||||
|
||||
def test_init_folders(tmp_path):
|
||||
def test_init_folders(tmp_path: Path) -> None:
|
||||
dataset_path = tmp_path / "test_dataset"
|
||||
result = runner.invoke(app, ["init", "--dataset", str(dataset_path)])
|
||||
assert result.exit_code == 0
|
||||
|
|
@ -21,7 +22,7 @@ def test_init_folders(tmp_path):
|
|||
assert os.path.exists(str(dataset_path / "backlogger.db"))
|
||||
|
||||
|
||||
def test_init_db(tmp_path):
|
||||
def test_init_db(tmp_path: Path) -> None:
|
||||
dataset_path = tmp_path / "test_dataset"
|
||||
result = runner.invoke(app, ["init", "--dataset", str(dataset_path)])
|
||||
assert result.exit_code == 0
|
||||
|
|
@ -81,7 +82,7 @@ def test_init_db(tmp_path):
|
|||
assert expected_col in backlog_column_names
|
||||
|
||||
|
||||
def test_list(tmp_path):
|
||||
def test_list(tmp_path: Path) -> None:
|
||||
dataset_path = tmp_path / "test_dataset"
|
||||
result = runner.invoke(app, ["init", "--dataset", str(dataset_path)])
|
||||
assert result.exit_code == 0
|
||||
|
|
|
|||
|
|
@ -1,7 +1,7 @@
|
|||
import corrlib.toml as t
|
||||
|
||||
|
||||
def test_toml_check_measurement_data():
|
||||
def test_toml_check_measurement_data() -> None:
|
||||
measurements = {
|
||||
"a":
|
||||
{
|
||||
|
|
|
|||
|
|
@ -1,7 +1,7 @@
|
|||
import corrlib.input.sfcf as input
|
||||
import json
|
||||
|
||||
def test_get_specs():
|
||||
def test_get_specs() -> None:
|
||||
parameters = {
|
||||
'crr': [
|
||||
'f_P', 'f_A'
|
||||
|
|
|
|||
|
|
@ -1,22 +1,23 @@
|
|||
import corrlib.initialization as init
|
||||
import os
|
||||
import sqlite3 as sql
|
||||
from pathlib import Path
|
||||
|
||||
def test_init_folders(tmp_path):
|
||||
def test_init_folders(tmp_path: Path) -> None:
|
||||
dataset_path = tmp_path / "test_dataset"
|
||||
init.create(str(dataset_path))
|
||||
assert os.path.exists(str(dataset_path))
|
||||
assert os.path.exists(str(dataset_path / "backlogger.db"))
|
||||
|
||||
|
||||
def test_init_folders_no_tracker(tmp_path):
|
||||
def test_init_folders_no_tracker(tmp_path: Path) -> None:
|
||||
dataset_path = tmp_path / "test_dataset"
|
||||
init.create(str(dataset_path), tracker="None")
|
||||
assert os.path.exists(str(dataset_path))
|
||||
assert os.path.exists(str(dataset_path / "backlogger.db"))
|
||||
|
||||
|
||||
def test_init_config(tmp_path):
|
||||
def test_init_config(tmp_path: Path) -> None:
|
||||
dataset_path = tmp_path / "test_dataset"
|
||||
init.create(str(dataset_path), tracker="None")
|
||||
config_path = dataset_path / ".corrlib"
|
||||
|
|
@ -34,7 +35,7 @@ def test_init_config(tmp_path):
|
|||
assert config.get("paths", "import_scripts_path") == "import_scripts"
|
||||
|
||||
|
||||
def test_init_db(tmp_path):
|
||||
def test_init_db(tmp_path: Path) -> None:
|
||||
dataset_path = tmp_path / "test_dataset"
|
||||
init.create(str(dataset_path))
|
||||
assert os.path.exists(str(dataset_path / "backlogger.db"))
|
||||
|
|
|
|||
|
|
@ -1,31 +1,85 @@
|
|||
|
||||
|
||||
from corrlib import tools as tl
|
||||
from configparser import ConfigParser
|
||||
import os
|
||||
from pathlib import Path
|
||||
import pytest
|
||||
|
||||
|
||||
def test_m2k():
|
||||
def test_m2k() -> None:
|
||||
for m in [0.1, 0.5, 1.0]:
|
||||
expected_k = 1 / (2 * m + 8)
|
||||
assert tl.m2k(m) == expected_k
|
||||
|
||||
|
||||
def test_k2m():
|
||||
def test_k2m() -> None:
|
||||
for m in [0.1, 0.5, 1.0]:
|
||||
assert tl.k2m(m) == (1/(2*m))-4
|
||||
|
||||
|
||||
def test_k2m_m2k():
|
||||
def test_k2m_m2k() -> None:
|
||||
for m in [0.1, 0.5, 1.0]:
|
||||
k = tl.m2k(m)
|
||||
m_converted = tl.k2m(k)
|
||||
assert abs(m - m_converted) < 1e-9
|
||||
|
||||
|
||||
def test_str2list():
|
||||
def test_str2list() -> None:
|
||||
assert tl.str2list("a,b,c") == ["a", "b", "c"]
|
||||
assert tl.str2list("1,2,3") == ["1", "2", "3"]
|
||||
|
||||
|
||||
def test_list2str():
|
||||
def test_list2str() -> None:
|
||||
assert tl.list2str(["a", "b", "c"]) == "a,b,c"
|
||||
assert tl.list2str(["1", "2", "3"]) == "1,2,3"
|
||||
|
||||
|
||||
def test_set_config(tmp_path: Path) -> None:
|
||||
section = "core"
|
||||
option = "test_option"
|
||||
value = "test_value"
|
||||
# config is not yet available
|
||||
tl.set_config(tmp_path, section, option, value)
|
||||
config_path = os.path.join(tmp_path, '.corrlib')
|
||||
config = ConfigParser()
|
||||
config.read(config_path)
|
||||
assert config.get('core', 'test_option', fallback="not the value") == "test_value"
|
||||
# now, a config file is already present
|
||||
section = "core"
|
||||
option = "test_option2"
|
||||
value = "test_value2"
|
||||
tl.set_config(tmp_path, section, option, value)
|
||||
config_path = os.path.join(tmp_path, '.corrlib')
|
||||
config = ConfigParser()
|
||||
config.read(config_path)
|
||||
assert config.get('core', 'test_option2', fallback="not the value") == "test_value2"
|
||||
# update option 2
|
||||
section = "core"
|
||||
option = "test_option2"
|
||||
value = "test_value3"
|
||||
tl.set_config(tmp_path, section, option, value)
|
||||
config_path = os.path.join(tmp_path, '.corrlib')
|
||||
config = ConfigParser()
|
||||
config.read(config_path)
|
||||
assert config.get('core', 'test_option2', fallback="not the value") == "test_value3"
|
||||
|
||||
|
||||
def test_get_db_file(tmp_path: Path) -> None:
|
||||
section = "paths"
|
||||
option = "db"
|
||||
value = "test_value"
|
||||
# config is not yet available
|
||||
tl.set_config(tmp_path, section, option, value)
|
||||
assert tl.get_db_file(tmp_path) == "test_value"
|
||||
|
||||
|
||||
def test_cache_enabled(tmp_path: Path) -> None:
|
||||
section = "core"
|
||||
option = "cached"
|
||||
# config is not yet available
|
||||
tl.set_config(tmp_path, section, option, "True")
|
||||
assert tl.cache_enabled(tmp_path)
|
||||
tl.set_config(tmp_path, section, option, "False")
|
||||
assert not tl.cache_enabled(tmp_path)
|
||||
tl.set_config(tmp_path, section, option, "lalala")
|
||||
with pytest.raises(ValueError) as e_info:
|
||||
tl.cache_enabled(tmp_path)
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue