def test_write_and_load_from_vault_without_key(docker_vault): os.environ["VAULT_ENABLED_FOR_DYNACONF"] = "1" os.environ["VAULT_TOKEN_FOR_DYNACONF"] = "myroot" settings = LazySettings(environments=True) write(settings, {"SECRET": "vault_works_perfectly"}) load(settings) assert settings.get("SECRET") == "vault_works_perfectly"
def test_write_to_vault(docker_vault): os.environ["VAULT_ENABLED_FOR_DYNACONF"] = "1" os.environ["VAULT_TOKEN_FOR_DYNACONF"] = "myroot" settings = LazySettings(environments=True) write(settings, {"SECRET": "vault_works_with_docker"}) load(settings, key="SECRET") assert settings.get("SECRET") == "vault_works_with_docker"
def test_write_vault_without_data(docker_vault): os.environ["VAULT_ENABLED_FOR_DYNACONF"] = "1" os.environ["VAULT_TOKEN_FOR_DYNACONF"] = "myroot" settings = LazySettings(environments=True) with pytest.raises(AttributeError) as excinfo: write(settings) assert "Data must be provided" in str(excinfo.value)
def test_read_from_vault_kv2_with_different_environments(docker_vault): os.environ["VAULT_ENABLED_FOR_DYNACONF"] = "1" os.environ["VAULT_KV_VERSION_FOR_DYNACONF"] = "2" os.environ["VAULT_TOKEN_FOR_DYNACONF"] = "myroot" settings = LazySettings(environments=["dev", "prod"]) for env in ["default", "dev", "prod"]: with settings.using_env(env): write(settings, {"SECRET": f"vault_works_in_{env}"}) load(settings) assert settings.secret == "vault_works_in_default" assert settings.from_env("dev").secret == "vault_works_in_dev" assert settings.from_env("prod").secret == "vault_works_in_prod"
from dynaconf import settings from dynaconf.loaders import vault_loader vault_loader.write(settings, {'SECRET': 'vault_works'}) with settings.using_namespace('dev'): vault_loader.write(settings, {'SECRET': 'vault_works_in_dev'})
from dynaconf import settings from dynaconf.loaders import vault_loader vault_loader.write(settings, {"SECRET": "vault_works"}) with settings.using_env("dev"): vault_loader.write(settings, {"SECRET": "vault_works_in_dev"})
def test_write_vault_not_configured(): with pytest.raises(RuntimeError) as excinfo: settings = LazySettings(environments=True) write(settings, {"OTHER_SECRET": "vault_works"}) assert "export VAULT_ENABLED_FOR_DYNACONF" in str(excinfo.value)