Add ConfigFile

This commit is contained in:
Andras Schmelczer 2022-06-25 10:38:39 +02:00
parent e01db3ead5
commit 9b8b288ba6
No known key found for this signature in database
GPG key ID: 0EA1BC97D0AB076E
9 changed files with 153 additions and 0 deletions

View file

@ -0,0 +1,56 @@
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")