Exemplo n.º 1
0
def test_default(os_env):
    os_env.setdefault('ENV', 'production')
    env = EnvWrapper(ENV=EnvVar(default='testing'))
    assert env.ENV == 'production'
    os_env.clear()
    assert env.ENV == 'testing'
    os_env['ENV'] = 'integration'
    assert env.ENV == 'integration'
    assert env.get('YADA') is None
    assert env.get('YADA', 'some_value') == 'some_value'
Exemplo n.º 2
0
def test_inc_exc_bundle(os_env):
    env = EnvWrapper(FLAG=EnvVar(convert=bool, bundle='SETTINGS'),
                     VAR_1=EnvVar(include_if='FLAG',
                                  bundle='SETTINGS',
                                  default='foo'),
                     VAR_2=EnvVar(exclude_if='FLAG',
                                  bundle='SETTINGS',
                                  default='bar'))
    os_env['FLAG'] = 'on'
    assert 'SETTINGS' in dir(env)
    assert 'FLAG' in dir(env)
    assert 'VAR_1' in dir(env)
    assert 'VAR_2' not in dir(env)
    assert 'flag' in env.get('SETTINGS')
    assert 'var_1' in env.get('SETTINGS')
    assert 'var_2' not in env.get('SETTINGS')

    os_env['FLAG'] = 'off'
    assert 'SETTINGS' in dir(env)
    assert 'FLAG' in dir(env)
    assert 'VAR_1' not in dir(env)
    assert 'VAR_2' in dir(env)
    assert 'flag' in env.get('SETTINGS')
    assert 'var_1' not in env.get('SETTINGS')
    assert 'var_2' in env.get('SETTINGS')
Exemplo n.º 3
0
def test_var_nocast(os_env):
    os_env['VAR1'] = 'some_value'
    env = EnvWrapper(VAR1=EnvVar())
    assert env.VAR1 == 'some_value'
    assert env['VAR1'] == 'some_value'
    assert env.get('VAR1') == 'some_value'
Exemplo n.º 4
0
def test_cast_to_bytes(os_env):
    env = EnvWrapper(DATA=EnvVar(convert=EnvVar.to_bytes, default='foo'))
    data = env.get('DATA')
    assert isinstance(data, bytes)
    assert data == bytes('foo', encoding='utf-8')
Exemplo n.º 5
0
def test_import_error_no_class(os_env):
    os_env['FACTORY'] = str(__name__) + '.SomeClass'
    env = EnvWrapper(FACTORY=EnvVar(postprocessor=EnvVar.import_class))
    with pytest.raises(ImportError) as e:
        _ = env.get('FACTORY')
    assert str(e.value) == f"No class named 'SomeClass' in module '{__name__}'"
Exemplo n.º 6
0
def test_import_error_module_not_found(os_env):
    os_env['FACTORY'] = 'tests.yada.SomeClass'
    env = EnvWrapper(FACTORY=EnvVar(postprocessor=EnvVar.import_class))
    with pytest.raises(ImportError) as e:
        _ = env.get('FACTORY')
    assert str(e.value) == "No module named 'tests.yada'"
Exemplo n.º 7
0
def test_import_class(os_env):
    os_env['FACTORY'] = __name__ + '.Factory'
    env = EnvWrapper(FACTORY=EnvVar(postprocessor=EnvVar.import_class))
    cls = env.get('FACTORY')
    assert cls
    assert isinstance(cls, type)