56 lines
No EOL
1.6 KiB
Python
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")
|
|
|