def test_settings(self): self.assertEqual(settings.ISSUE, 596) self.assertEqual(settings.SERVER, "prodserver.com") # self.assertEqual( # settings.STATIC_URL, "/changed/in/settings.toml/by/dynaconf/" # ) self.assertEqual(settings.USERNAME, "admin_user_from_env") self.assertEqual(settings.PASSWORD, "My5up3r53c4et") self.assertEqual(settings.get("PASSWORD"), "My5up3r53c4et") self.assertEqual(settings.FOO, "It overrides every other env") with settings.using_env("development"): self.assertEqual(settings.SERVER, "devserver.com") self.assertEqual(settings.PASSWORD, False) self.assertEqual(settings.USERNAME, "admin_user_from_env") self.assertEqual(settings.FOO, "It overrides every other env") self.assertEqual(settings.SERVER, "prodserver.com") self.assertEqual(settings.PASSWORD, "My5up3r53c4et") self.assertEqual(settings.USERNAME, "admin_user_from_env") self.assertEqual(settings.FOO, "It overrides every other env") with settings.using_env("staging"): self.assertEqual(settings.SERVER, "stagingserver.com") self.assertEqual(settings.PASSWORD, False) self.assertEqual(settings.USERNAME, "admin_user_from_env") self.assertEqual(settings.FOO, "It overrides every other env") self.assertEqual(settings.SERVER, "prodserver.com") self.assertEqual(settings.PASSWORD, "My5up3r53c4et") self.assertEqual(settings.USERNAME, "admin_user_from_env") self.assertEqual(settings.FOO, "It overrides every other env") with settings.using_env("customenv"): self.assertEqual(settings.SERVER, "customserver.com") self.assertEqual(settings.PASSWORD, False) self.assertEqual(settings.USERNAME, "admin_user_from_env") self.assertEqual(settings.FOO, "It overrides every other env") self.assertEqual(settings.SERVER, "prodserver.com") self.assertEqual(settings.PASSWORD, "My5up3r53c4et") self.assertEqual(settings.USERNAME, "admin_user_from_env") self.assertEqual(settings.FOO, "It overrides every other env")
def test_settings(self): self.assertEqual(settings.SERVER, 'prodserver.com') self.assertEqual(settings.STATIC_URL, '/changed/in/settings.toml/by/dynaconf/') self.assertEqual(settings.USERNAME, 'admin_user_from_env') self.assertEqual(settings.PASSWORD, 'My5up3r53c4et') self.assertEqual(settings.FOO, 'It overrides every other env') with settings.using_env('development'): self.assertEqual(settings.SERVER, 'devserver.com') self.assertEqual(settings.PASSWORD, False) self.assertEqual(settings.USERNAME, 'admin_user_from_env') self.assertEqual(settings.FOO, 'It overrides every other env') self.assertEqual(settings.SERVER, 'prodserver.com') self.assertEqual(settings.PASSWORD, 'My5up3r53c4et') self.assertEqual(settings.USERNAME, 'admin_user_from_env') self.assertEqual(settings.FOO, 'It overrides every other env') with settings.using_env('staging'): self.assertEqual(settings.SERVER, 'stagingserver.com') self.assertEqual(settings.PASSWORD, False) self.assertEqual(settings.USERNAME, 'admin_user_from_env') self.assertEqual(settings.FOO, 'It overrides every other env') self.assertEqual(settings.SERVER, 'prodserver.com') self.assertEqual(settings.PASSWORD, 'My5up3r53c4et') self.assertEqual(settings.USERNAME, 'admin_user_from_env') self.assertEqual(settings.FOO, 'It overrides every other env') with settings.using_env('customenv'): self.assertEqual(settings.SERVER, 'customserver.com') self.assertEqual(settings.PASSWORD, False) self.assertEqual(settings.USERNAME, 'admin_user_from_env') self.assertEqual(settings.FOO, 'It overrides every other env') self.assertEqual(settings.SERVER, 'prodserver.com') self.assertEqual(settings.PASSWORD, 'My5up3r53c4et') self.assertEqual(settings.USERNAME, 'admin_user_from_env') self.assertEqual(settings.FOO, 'It overrides every other env')
def index(request): tests = [] tests.append("<b>.env</b>") tests.append( """<pre>DYNACONF_SERVER='prod_server_fromenv.com' DEV_SERVER='dev_server_fromenv.com' # switch envs or omit to default to DYNACONF ENV_FOR_DYNACONF=dev </pre> """ ) tests.append("<b>settings.toml</b>") tests.append( """<pre>[dynaconf] server = 'foo.com' username = '******' password = false # in prod this value must come from .secrets.toml or vault STATIC_URL = '/changed/in/settings.toml/by/dynaconf/' [dev] username = '******'</pre> """ ) tests.append("<b>.secrets.toml</b>") tests.append( """<pre>[dev] password = '******'</pre> """ ) tests.append( '<b>INSTALLED_APPS = ["dynaconf.contrib.django_dynaconf"...] </b>' ) tests.append("<b> from django.conf import settings</b>") tests.append(f"settings.STATIC_URL: {settings.STATIC_URL}") tests.append(f"settings.SERVER: {settings.SERVER}") tests.append(f"settings.USERNAME: {settings.USERNAME}") tests.append(f"settings.PASSWORD: {settings.PASSWORD}") with settings.using_env("dev"): tests.append("<b>$ In dev env</b>") tests.append(f"settings.STATIC_URL: {settings.STATIC_URL}") tests.append(f"settings.SERVER: {settings.SERVER}") tests.append(f"settings.USERNAME: {settings.USERNAME}") tests.append(f"settings.PASSWORD: {settings.PASSWORD}") # settings.setenv('dev') return HttpResponse("<br>".join(tests))
def write(to, _vars, _secrets, path, env, y): """Writes data to specific source""" _vars = split_vars(_vars) _secrets = split_vars(_secrets) loader = importlib.import_module("dynaconf.loaders.{}_loader".format(to)) if to in EXTS: # Lets write to a file path = Path(path) if str(path).endswith(constants.ALL_EXTENSIONS + ("py", )): settings_path = path secrets_path = path.parent / ".secrets.{}".format(to) else: if to == "env": if str(path) in (".env", "./.env"): # pragma: no cover settings_path = path elif str(path).endswith("/.env"): settings_path = path elif str(path).endswith(".env"): settings_path = path.parent / ".env" else: settings_path = path / ".env" Path.touch(settings_path) secrets_path = None _vars.update(_secrets) else: settings_path = path / "settings.{}".format(to) secrets_path = path / ".secrets.{}".format(to) if (_vars and not y and settings_path and settings_path.exists()): # pragma: no cover # noqa click.confirm( "{} exists do you want to overwrite it?".format(settings_path), abort=True, ) if (_secrets and not y and secrets_path and secrets_path.exists()): # pragma: no cover # noqa click.confirm( "{} exists do you want to overwrite it?".format(secrets_path), abort=True, ) if to not in ["py", "env"]: if _vars: _vars = {env: _vars} if _secrets: _secrets = {env: _secrets} if _vars and settings_path: loader.write(settings_path, _vars, merge=True) click.echo("Data successful written to {}".format(settings_path)) if _secrets and secrets_path: loader.write(secrets_path, _secrets, merge=True) click.echo("Data successful written to {}".format(secrets_path)) else: # pragma: no cover # lets write to external source with settings.using_env(env): # make sure we're in the correct environment loader.write(settings, _vars, **_secrets) click.echo("Data successful written to {}".format(to))