aboutsummaryrefslogtreecommitdiff
path: root/tests/test_something.py
blob: 7bb979a06b06efb210f29f06cd3358641754d8a3 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
import json
import os
from unittest import TestCase

from configlib.model_impl import BaseConfig


class Yeeah(object):
    a: int


class SomeConfig(BaseConfig):
    something: str
    ye: Yeeah


test_dict = {
    'something': 'hmm',
    'ye': {
        'a': 1
    }
}
env_dict = {
    'something': '$env:ENVVAR',
    'ye': {
        'a': 1
    }
}


def verify_test_dict(conf):
    assert conf.something == 'hmm'
    assert isinstance(conf, SomeConfig)
    assert conf.ye.a == 1
    assert isinstance(conf.ye, Yeeah)


class TestSomething(TestCase):

    def test_yeah(self):
        conf: SomeConfig = SomeConfig.parse_dict(test_dict)
        verify_test_dict(conf)

    def test_text(self):
        conf: SomeConfig = SomeConfig.loads(json.dumps(test_dict))
        verify_test_dict(conf)

    def test_environ(self):
        os.environ['ENVVAR'] = 'hmm'
        conf: SomeConfig = SomeConfig.parse_dict(env_dict)
        verify_test_dict(conf)