Skip to content
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.

Commit c2d8b71

Browse files
mirrorrimalekseitylindus
mirrorrim
andauthoredDec 11, 2020
Fix reading secret from Vault kv v2 (dynaconf#483) (dynaconf#487)
Co-authored-by: Alexey Tylindus <[email protected]>
1 parent 327f561 commit c2d8b71

File tree

2 files changed

+16
-1
lines changed

2 files changed

+16
-1
lines changed
 

‎dynaconf/loaders/vault_loader.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -78,7 +78,7 @@ def load(obj, env=None, silent=None, key=None):
7878
except InvalidPath:
7979
# The given path is not a directory
8080
dirs = []
81-
env_list = build_env_list(obj, env) + dirs
81+
env_list = dirs + build_env_list(obj, env)
8282
for env in env_list:
8383
path = "/".join([obj.VAULT_PATH_FOR_DYNACONF, env])
8484
try:

‎tests/test_vault.py

+15
Original file line numberDiff line numberDiff line change
@@ -90,3 +90,18 @@ def test_write_and_load_from_vault_without_key(docker_vault):
9090
write(settings, {"SECRET": "vault_works_perfectly"})
9191
load(settings)
9292
assert settings.get("SECRET") == "vault_works_perfectly"
93+
94+
95+
@pytest.mark.integration
96+
def test_read_from_vault_kv2_with_different_environments(docker_vault):
97+
os.environ["VAULT_ENABLED_FOR_DYNACONF"] = "1"
98+
os.environ["VAULT_KV_VERSION_FOR_DYNACONF"] = "2"
99+
os.environ["VAULT_TOKEN_FOR_DYNACONF"] = "myroot"
100+
settings = LazySettings(environments=["dev", "prod"])
101+
for env in ["default", "dev", "prod"]:
102+
with settings.using_env(env):
103+
write(settings, {"SECRET": f"vault_works_in_{env}"})
104+
load(settings)
105+
assert settings.secret == "vault_works_in_default"
106+
assert settings.from_env("dev").secret == "vault_works_in_dev"
107+
assert settings.from_env("prod").secret == "vault_works_in_prod"

0 commit comments

Comments
 (0)
Please sign in to comment.