Exemple #1
0
def test_using_env(tmpdir):
    load(settings, filename=INI)
    assert settings.HOST == "prodserver.com"

    tmpfile = tmpdir.mkdir("sub").join("test_using_env.ini")
    tmpfile.write(INI)
    with settings.using_env("DEVELOPMENT", filename=str(tmpfile)):
        assert settings.HOST == "devserver.com"
    assert settings.HOST == "prodserver.com"
Exemple #2
0
def test_load_dunder():
    """Test load with dunder settings"""
    ini = """
    a = "a,b"
    [foo]
    colors__white__code = '#FFFFFF'
    COLORS__white__name = 'white'
    """
    load(settings, filename=ini, env="FOO")
    assert settings.COLORS.white.code == "#FFFFFF"
    assert settings.COLORS.white.name == "white"
Exemple #3
0
def test_load_single_key():
    """Test loading a single key"""
    ini = """
    [foo]
    bar = "blaz"
    zaz = "naz"
    """
    load(settings, filename=ini, namespace='FOO', key='bar')
    assert settings.BAR == 'blaz'
    assert settings.exists('BAR') is True
    assert settings.exists('ZAZ') is False
Exemple #4
0
def test_envless():
    settings = LazySettings()
    ini = """
    a = "a,b"
    colors__white__code = '#FFFFFF'
    COLORS__white__name = 'white'
    """
    load(settings, filename=ini)
    assert settings.a == "a,b"
    assert settings.COLORS.white.code == "#FFFFFF"
    assert settings.COLORS.white.name == "white"
Exemple #5
0
def test_prefix():
    settings = LazySettings(filter_strategy=PrefixFilter("prefix"))
    ini = """
    prefix_a = "a,b"
    prefix_colors__white__code = '#FFFFFF'
    COLORS__white__name = 'white'
    """
    load(settings, filename=ini)
    assert settings.a == "a,b"
    assert settings.COLORS.white.code == "#FFFFFF"
    with pytest.raises(AttributeError):
        settings.COLORS.white.name
Exemple #6
0
def test_load_from_multiple_ini():
    """Assert loads from INI string"""
    load(settings, filename=INIS)
    assert settings.HOST == 'otherini.com'
    assert settings.PASSWORD == 123456
    assert settings.SECRET == 42.0
    assert settings.PORT == 8080
    assert settings.SERVICE['url'] == 'service.com'
    assert settings.SERVICE.url == 'service.com'
    assert settings.SERVICE.port == 80
    assert settings.SERVICE.auth.password == 'qwerty'
    assert settings.SERVICE.auth.test == 1234
    load(settings, filename=INIS, env='DEVELOPMENT')
    assert settings.PORT == 8080
    assert settings.HOST == 'otherini.com'
    load(settings, filename=INIS)
    assert settings.HOST == 'otherini.com'
    assert settings.PASSWORD == 123456
    load(settings, filename=INI, env='DEVELOPMENT')
    assert settings.PORT == 8080
    assert settings.HOST == 'devserver.com'
    load(settings, filename=INI)
    assert settings.HOST == 'prodserver.com'
    assert settings.PASSWORD == 11111
Exemple #7
0
def test_load_from_multiple_ini():
    """Assert loads from INI string"""
    load(settings, filename=INIS)
    assert settings.HOST == "otherini.com"
    assert settings.PASSWORD == 123456
    assert settings.SECRET == 42.0
    assert settings.PORT == 8080
    assert settings.SERVICE["url"] == "service.com"
    assert settings.SERVICE.url == "service.com"
    assert settings.SERVICE.port == 80
    assert settings.SERVICE.auth.password == "qwerty"
    assert settings.SERVICE.auth.test == 1234
    load(settings, filename=INIS, env="DEVELOPMENT")
    assert settings.PORT == 8080
    assert settings.HOST == "otherini.com"
    load(settings, filename=INIS)
    assert settings.HOST == "otherini.com"
    assert settings.PASSWORD == 123456
    load(settings, filename=INI, env="DEVELOPMENT")
    assert settings.PORT == 8080
    assert settings.HOST == "devserver.com"
    load(settings, filename=INI)
    assert settings.HOST == "prodserver.com"
    assert settings.PASSWORD == 11111
Exemple #8
0
def test_load_single_key():
    """Test loading a single key"""
    ini = """
    a = "a,b"
    [foo]
    bar = "blaz"
    ZAZ = "naz"
    lowerkey = 'hello'
    UPPERKEY = 'world'
    """
    load(settings, filename=ini, env="FOO", key="bar")
    assert settings.BAR == "blaz"
    assert settings.exists("BAR") is True
    assert settings.exists("ZAZ") is False
    load(settings, filename=ini, env="FOO", key="ZAZ")
    assert settings.ZAZ == "naz"
    load(settings, filename=ini, env="FOO", key="LOWERKEY")
    assert settings.LOWERKEY == "hello"
    load(settings, filename=ini, env="FOO", key="upperkey")
    assert settings.UPPERKEY == "world"
Exemple #9
0
def test_load_from_ini():
    """Assert loads from INI string"""
    load(settings, filename=INI)
    assert settings.HOST == 'server.com'
    assert settings.PORT == 8080
    assert settings.ALIST == ['item1', 'item2', 23]
    assert settings.SERVICE['url'] == 'service.com'
    assert settings.SERVICE.url == 'service.com'
    assert settings.SERVICE.port == 80
    assert settings.SERVICE.auth.password == 'qwerty'
    assert settings.SERVICE.auth.test == 1234
    load(settings, filename=INI, namespace='DEVELOPMENT')
    assert settings.HOST == 'dev_server.com'
    load(settings, filename=INI)
    assert settings.HOST == 'server.com'
Exemple #10
0
def test_load_from_ini():
    """Assert loads from INI string"""
    load(settings, filename=INI)
    assert settings.HOST == "prodserver.com"
    assert settings.PORT == 8080
    assert settings.ALIST == ["item1", "item2", 23]
    assert settings.SERVICE["url"] == "service.com"
    assert settings.SERVICE.url == "service.com"
    assert settings.SERVICE.port == 80
    assert settings.SERVICE.auth.password == "qwerty"
    assert settings.SERVICE.auth.test == 1234
    load(settings, filename=INI, env="DEVELOPMENT")
    assert settings.HOST == "devserver.com"
    load(settings, filename=INI)
    assert settings.HOST == "prodserver.com"
    assert settings.PORT == 8080
Exemple #11
0
def test_cleaner():
    load(settings, filename=INI)
    assert settings.HOST == 'server.com'
    assert settings.PORT == 8080
    assert settings.ALIST == ['item1', 'item2', 23]
    assert settings.SERVICE['url'] == 'service.com'
    assert settings.SERVICE.url == 'service.com'
    assert settings.SERVICE.port == 80
    assert settings.SERVICE.auth.password == 'qwerty'
    assert settings.SERVICE.auth.test == 1234
    load(settings, filename=INI, namespace='DEVELOPMENT')
    assert settings.HOST == 'dev_server.com'
    load(settings, filename=INI)
    assert settings.HOST == 'server.com'

    clean(settings, settings.namespace)
Exemple #12
0
def test_cleaner():
    load(settings, filename=INI)
    assert settings.HOST == 'prodserver.com'
    assert settings.PORT == 8080
    assert settings.ALIST == ['item1', 'item2', 23]
    assert settings.SERVICE['url'] == 'service.com'
    assert settings.SERVICE.url == 'service.com'
    assert settings.SERVICE.port == 80
    assert settings.SERVICE.auth.password == 'qwerty'
    assert settings.SERVICE.auth.test == 1234
    load(settings, filename=INI, env='DEVELOPMENT')
    assert settings.HOST == 'devserver.com'
    load(settings, filename=INI)
    assert settings.HOST == 'prodserver.com'

    settings.clean()
    with pytest.raises(AttributeError):
        assert settings.HOST == 'prodserver.com'
Exemple #13
0
def test_cleaner():
    load(settings, filename=INI)
    assert settings.HOST == "prodserver.com"
    assert settings.PORT == 8080
    assert settings.ALIST == ["item1", "item2", 23]
    assert settings.SERVICE["url"] == "service.com"
    assert settings.SERVICE.url == "service.com"
    assert settings.SERVICE.port == 80
    assert settings.SERVICE.auth.password == "qwerty"
    assert settings.SERVICE.auth.test == 1234
    load(settings, filename=INI, env="DEVELOPMENT")
    assert settings.HOST == "devserver.com"
    load(settings, filename=INI)
    assert settings.HOST == "prodserver.com"

    settings.clean()
    with pytest.raises(AttributeError):
        assert settings.HOST == "prodserver.com"
Exemple #14
0
port = '@int 8080'
alist = item1, item2, '@int 23'
  [[service]]
  url = "service.com"
  port = '@int 80'
    [[[auth]]]
    password = "******"
    test = '@int 1234'
[development]
password = '******'
host = "devserver.com"
[production]
password = '******'
host = "prodserver.com"
[global]
global_value = 'global'
"""

INI2 = """
[global]
secret = "@float 42"
password = '******'
host = "otherini.com"
"""

INIS = [INI, INI2]
settings = LazySettings(ENV_FOR_DYNACONF="PRODUCTION")

load(settings, filename='config.ini')
assert settings.test_rail_url == "https://greghicks.testrail.io"
Exemple #15
0
def test_key_error_on_invalid_namespace():
    """Assert error raised if namespace is not found in INI"""
    with pytest.raises(KeyError):
        load(settings, filename=INI, namespace='FOOBAR', silent=False)
Exemple #16
0
def test_no_key_error_on_invalid_namespace():
    """Assert error raised if namespace is not found in INI"""
    load(settings, filename=INI, namespace='FOOBAR', silent=True)
Exemple #17
0
def test_no_filename_is_none():
    """Assert if passed no filename return is None"""
    assert load(settings) is None
Exemple #18
0
def test_multiple_filenames():
    load(settings, filename="a.ini,b.ini,c.conf,d.properties")
Exemple #19
0
def test_empty_value():
    load(settings, filename="")
Exemple #20
0
def test_key_error_on_invalid_env():
    """Assert error raised if env is not found in INI"""
    with pytest.raises(KeyError):
        load(settings, filename=INI, env="FOOBAR", silent=False)
Exemple #21
0
def test_no_key_error_on_invalid_env():
    """Assert error raised if env is not found in INI"""
    load(settings, filename=INI, env="FOOBAR", silent=True)