コード例 #1
0
    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")
コード例 #2
0
ファイル: tests.py プロジェクト: yoyonel/dynaconf
    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')
コード例 #3
0
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))
コード例 #4
0
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))