great-ai/great_ai/tests/utilities/test_config_file.py
2022-06-25 10:39:01 +02:00

56 lines
No EOL
1.6 KiB
Python

import unittest
from pathlib import Path
import pytest
from src.great_ai.utilities.config_file import ConfigFile
DATA_PATH = Path(__file__).parent.resolve() / "data"
class TestConfigFile(unittest.TestCase):
def test_simple(self) -> None:
c = ConfigFile(DATA_PATH / "good.conf")
assert c.zeroth_key == 'test'
assert c.first_key == 'test'
assert c.second_key == 'test 2'
assert c.third_key == 'test= 2=='
assert c.fourth_key == '''
this#
is
multiline
'''
assert c.whitespace == 'hardly matters'
def test_string_path(self) -> None:
c = ConfigFile(str(DATA_PATH / "good.conf"))
assert c.zeroth_key == 'test'
assert c.first_key == 'test'
assert c.second_key == 'test 2'
assert c.third_key == 'test= 2=='
assert c.fourth_key == '''
this#
is
multiline
'''
assert c.whitespace == 'hardly matters'
def test_env(self) -> None:
import os
os.environ['alma'] = '12'
c = ConfigFile(DATA_PATH / "env.conf")
del os.environ['alma']
assert c.first_key == 'test'
assert c.second_key == '12'
def test_env_not_exists(self) -> None:
with pytest.raises(KeyError):
ConfigFile(DATA_PATH / "env.conf")
def test_env_not_exists_but_ignored(self) -> None:
with pytest.raises(KeyError):
ConfigFile(DATA_PATH / "env.conf", ignore_missing_environment_variables=True)
def test_duplicate_key(self) -> None:
with pytest.raises(KeyError):
ConfigFile(DATA_PATH / "bad.conf")