31 lines
1.1 KiB
Python
31 lines
1.1 KiB
Python
from pathlib import Path
|
|
|
|
import pytest
|
|
|
|
from halig.settings import Settings, load_from_file
|
|
|
|
|
|
def test_settings_from_env(settings: Settings, notebooks_root_path_envvar):
|
|
from_env_settings = Settings() # type: ignore[call-arg]
|
|
assert from_env_settings.notebooks_root_path == settings.notebooks_root_path
|
|
|
|
|
|
def test_settings_from_non_existing_file_raises_value_error():
|
|
with pytest.raises(ValueError, match="Field required"):
|
|
Settings() # type: ignore[call-arg]
|
|
|
|
|
|
def test_load_from_file(notebooks_path: Path, settings_file_path: Path):
|
|
settings = load_from_file(settings_file_path)
|
|
assert settings.notebooks_root_path == notebooks_path
|
|
|
|
|
|
def test_load_from_empty_file_raises_value_error(empty_file_path: Path):
|
|
with pytest.raises(ValueError, match=f"File {empty_file_path} is empty"):
|
|
load_from_file(empty_file_path)
|
|
|
|
|
|
def test_load_from_non_existing_file_path_raises_file_not_found_error(halig_config_path: Path):
|
|
file = halig_config_path / "some_invalid_file.yml"
|
|
with pytest.raises(FileNotFoundError, match=f"File {file} does not exist"):
|
|
load_from_file(file)
|