コード例 #1
0
ファイル: test_base.py プロジェクト: zejr/dynaconf
def test_local_set_merge_dict():
    settings = Dynaconf()
    settings.set("DATABASE", {"host": "localhost", "port": 666})
    # calling twice  does not change anything
    settings.set("DATABASE", {"host": "localhost", "port": 666})
    assert settings.DATABASE == {"host": "localhost", "port": 666}

    settings.set("DATABASE", {
        "host": "new",
        "user": "******",
        "dynaconf_merge": True
    })
    assert settings.DATABASE == {"host": "new", "port": 666, "user": "******"}
    assert settings.DATABASE.HOST == "new"
    assert settings.DATABASE.user == "admin"

    settings.set("DATABASE.attrs", {"a": ["b", "c"]})
    settings.set("DATABASE.attrs", {"dynaconf_merge": {"foo": "bar"}})
    assert settings.DATABASE.attrs == {"a": ["b", "c"], "foo": "bar"}

    settings.set("DATABASE.attrs", {"yeah": "baby", "dynaconf_merge": True})
    assert settings.DATABASE.attrs == {
        "a": ["b", "c"],
        "foo": "bar",
        "yeah": "baby",
    }

    settings.set(
        "DATABASE.attrs",
        {
            "a": ["d", "e", "dynaconf_merge"],
            "dynaconf_merge": True
        },
    )

    assert settings.DATABASE.attrs == {
        "a": ["b", "c", "d", "e"],
        "foo": "bar",
        "yeah": "baby",
    }

    settings.set("DATABASE.attrs.a", ["d", "e", "f", "dynaconf_merge_unique"])
    assert settings.DATABASE.attrs.a == ["b", "c", "d", "e", "f"]
コード例 #2
0
ファイル: app.py プロジェクト: whg517/dynaconf
from dynaconf import Dynaconf

settings = Dynaconf(
    settings_files=["settings.toml", "settings.yaml"], environments=True
)


assert settings.SOME_DICT.value == "formatted: foo", settings.SOME_DICT.value

assert settings.INNER1.value == "inner1 str foo"
assert settings.INNER1.VALUE_LIST[0] == "list 0 foo"
assert settings.INNER1.INNER2.value == "inner2 str inner1 str foo"

assert settings.TOP_LEVEL_LIST[0] == "top list foo"
assert settings.TOP_LEVEL_LIST[3] == "a jinja formatted FOO"

assert settings.get("TOP_LEVEL_LIST")[0] == "top list foo"
assert settings.get("TOP_LEVEL_LIST")[3] == "a jinja formatted FOO"

settings.set("INITIAL", "@merge [9, 8, 7]")


settings.set("DATABASES.default.PARAMS", '@merge ["e", "f", "g"]')
コード例 #3
0
ファイル: app.py プロジェクト: zejr/dynaconf
from dynaconf import Dynaconf

settings = Dynaconf()

settings.set("a.b", 1)
settings.set("a.c", 2)
settings.set("a.c.k", 22)

assert settings.a == {"c": {"k": 22}, "b": 1}

settings.set("a.c.b", 3)

assert settings.a == {"c": {"b": 3, "k": 22}, "b": 1}
コード例 #4
0
settings.get("FOO")  # this is just to fire the loaders

os.environ["DYNACONF_SOMETHING"] = "changed to other thing"

# then we load it freshly
assert settings.get_fresh("SOMETHING") == "changed to other thing"

# then we remove it from environment
del os.environ["DYNACONF_SOMETHING"]

assert "DYNACONF_SOMETHING" not in os.environ

# then we read it freshly again
assert settings.get_fresh("SOMETHING") is None, settings.get_fresh("SOMETHING")

settings.set("wm", "i3")

assert settings.WM == "i3"

settings.EDITOR = "vim"

assert settings.get("editor") == "vim"

assert settings.editor == "vim"

settings.terminal_emulator = "alacritty"

assert settings.get("TERMINAL_emulator") == "alacritty"

settings.set("a.b.c.d.e", "f")