コード例 #1
0
def test_iter_cast(os_env):
    env = EnvWrapper(
        NUMBERS=EnvVar(postprocessor=EnvVar.tokenize(sep=','), sub_cast=float))
    os_env['NUMBERS'] = '0.1, 0.2, 0.3, 0.4'
    assert env.NUMBERS == [0.1, 0.2, 0.3, 0.4]
    d = env.collect()
    assert d['NUMBERS'] == os_env['NUMBERS']
コード例 #2
0
def test_json(os_env):
    env = EnvWrapper(JSON=EnvVar(postprocessor=json.loads))
    expected = {'foo': 1, 'bar': 0.23}
    os_env['JSON'] = json.dumps(expected)
    actual = env.JSON
    assert actual == expected
    d = env.collect()
    assert d['JSON'] == os_env['JSON']
コード例 #3
0
def test_alt_bundle(os_env):
    env = EnvWrapper(SETTINGS=EnvVar(convert=dict))
    d = {'foo': 0, 'bar': False, 'spam': "yada"}
    val = str(d)
    os_env['SETTINGS'] = val
    v = env.SETTINGS
    assert v == d
    assert env.collect()['SETTINGS'] == os_env['SETTINGS']
コード例 #4
0
def test_to_source_file(os_env):
    env = EnvWrapper(VAR=EnvVar(default='foo'),
                     VAR1=EnvVar(bundle='SETTINGS', default='bar'),
                     VAR2=EnvVar(bundle='SETTINGS', convert=bool, default='1'),
                     FLAG=EnvVar(convert=bool, default='no'),
                     FAKE=EnvVar(proxy='YADA', default='yada'))
    os_env.update(env.collect())
    f = io.StringIO()
    env.to_source_file(f)
    assert f.getvalue() == """VAR=foo
コード例 #5
0
def test_collect():
    env = EnvWrapper(VAR=EnvVar(),
                     PREFIXED=EnvVar(prefix='FOO_'),
                     BUNDLED=EnvVar(bundle='GROUP'),
                     PROXIED=EnvVar(proxy='YADA'))
    d = env.collect()
    expected_os_env = {'VAR', 'FOO_PREFIXED', 'BUNDLED', 'YADA'}
    assert set(d.keys()) == expected_os_env
    expected_app_schema = {'VAR', 'PREFIXED', 'GROUP', 'BUNDLED', 'PROXIED'}
    assert set(env.keys()) == expected_app_schema
コード例 #6
0
def test_to_config(os_env):
    env = EnvWrapper(VAR=EnvVar(default='foo'),
                     VAR1=EnvVar(bundle='SETTINGS', default='bar'),
                     VAR2=EnvVar(bundle='SETTINGS', default='baz'),
                     FLAG=EnvVar(convert=bool, default='no'))
    os_env.update(env.collect())
    f = io.StringIO()
    env.to_config(f,
                  bool_values=('off', 'on'),
                  preserve_case=False,
                  default_section='general')
    assert f.getvalue() == """[general]
コード例 #7
0
def test_to_json(os_env):
    env = EnvWrapper(VAR=EnvVar(default='foo'),
                     VAR1=EnvVar(bundle='SETTINGS', default='bar'),
                     VAR2=EnvVar(bundle='SETTINGS', convert=bool, default='1'),
                     FLAG=EnvVar(convert=bool, default='no'))
    os_env.update(env.collect())
    f = io.StringIO()
    env.to_json(f)
    assert f.getvalue() == '{"var": "foo", "flag": "false", ' \
                           '"settings": {"var1": "bar", "var2": "true"}}'

    f = io.StringIO()
    env.to_json(f, preserve_case=True)
    assert f.getvalue() == '{"VAR": "foo", "FLAG": "false", ' \
                           '"SETTINGS": {"VAR1": "bar", "VAR2": "true"}}'

    f = io.StringIO()
    env.to_json(f, sort_keys=True)
    assert f.getvalue() == '{"flag": "false", ' \
                           '"settings": {"var1": "bar", "var2": "true"}, ' \
                           '"var": "foo"}'