Exemple #1
0
def test_write(writer, env, onlydir, tmpdir):
    if onlydir is True:
        tmpfile = tmpdir
    else:
        tmpfile = tmpdir.join(f"settings.{writer}")

    settingspath = tmpdir.join(f"settings.{writer}")
    secretfile = tmpdir.join(f".secrets.{writer}")
    env_file = tmpdir.join(".env")

    result = run([
        "write",
        writer,
        "-v",
        "TESTVALUE=1",
        "-s",
        "SECRETVALUE=2",
        "-e",
        env,
        "-y",
        "-p",
        str(tmpfile),
    ])
    if writer != "env":
        assert f"Data successful written to {settingspath}" in result
        assert "TESTVALUE" in read_file(
            str(settingspath), encoding=default_settings.ENCODING_FOR_DYNACONF)
        assert "SECRETVALUE" in read_file(
            str(secretfile), encoding=default_settings.ENCODING_FOR_DYNACONF)
    else:
        assert f"Data successful written to {env_file}" in result
        assert "TESTVALUE" in read_file(
            str(env_file), encoding=default_settings.ENCODING_FOR_DYNACONF)
        assert "SECRETVALUE" in read_file(
            str(env_file), encoding=default_settings.ENCODING_FOR_DYNACONF)
Exemple #2
0
def test_list_with_key_export_json(tmpdir):
    result = run(["list", "-k", "DOTENV_STR", "-o", "sets.json"])
    assert "DOTENV_STR: 'hello'" in result
    assert "DOTENV_STR" in read_file("sets.json")
    assert (json.loads(
        read_file("sets.json"))["development"]["DOTENV_STR"] == "hello")
    with pytest.raises(KeyError):
        json.loads(read_file("sets.json"))["development"]["DOTENV_FLOAT"]
Exemple #3
0
def test_list_export_json(testdir):
    result = run(["list", "-o", "sets.json"],
                 env={"ROOT_PATH_FOR_DYNACONF": testdir})
    assert "DOTENV_STR: 'hello'" in result
    assert "DOTENV_STR" in read_file("sets.json")
    assert (json.loads(
        read_file("sets.json"))["development"]["DOTENV_STR"] == "hello")
    assert (json.loads(
        read_file("sets.json"))["development"]["DOTENV_FLOAT"] == 4.2)
Exemple #4
0
def test_list_export_json(testdir):
    result = run(
        ["-i", "tests.config.settings", "list", "-o", "sets.json"],
        env={"ROOT_PATH_FOR_DYNACONF": testdir},
    )
    # breakpoint()
    assert "DOTENV_STR<str> 'hello'" in result
    assert "DOTENV_STR" in read_file("sets.json")
    assert json.loads(read_file("sets.json"))["DOTENV_STR"] == "hello"
    assert json.loads(read_file("sets.json"))["DOTENV_FLOAT"] == 4.2
Exemple #5
0
def test_list_with_key_export_json(tmpdir):
    result = run([
        "-i",
        "tests.config.settings",
        "list",
        "-k",
        "DOTENV_STR",
        "-o",
        "sets.json",
    ])
    assert "DOTENV_STR<str> 'hello'" in result
    assert "DOTENV_STR" in read_file("sets.json")
    assert json.loads(read_file("sets.json"))["DOTENV_STR"] == "hello"
    with pytest.raises(KeyError):
        json.loads(read_file("sets.json"))["DOTENV_FLOAT"]
Exemple #6
0
def test_list_export_json(testdir):
    result = run(
        ["-i", "tests.config.settings", "list", "-o", "sets.json"],
        env={"ROOT_PATH_FOR_DYNACONF": testdir},
    )
    assert "TEST_KEY<str> 'test_value'" in result
    assert json.loads(read_file("sets.json"))["TEST_KEY"] == "test_value"
Exemple #7
0
def test_list_with_key_export_json(tmpdir):
    result = run([
        "-i",
        "tests.config.settings",
        "list",
        "-k",
        "TEST_KEY",
        "-o",
        "sets.json",
    ])

    assert "TEST_KEY<str> 'test_value'" in result

    assert "TEST_KEY" in read_file("sets.json")
    assert json.loads(read_file("sets.json"))["TEST_KEY"] == "test_value"
    with pytest.raises(KeyError):
        json.loads(read_file("sets.json"))["ANOTHER_KEY"]
Exemple #8
0
def test_init_with_path(fileformat, tmpdir):
    # run twice to force load of existing files
    if fileformat == "env":
        path = tmpdir.join(".env")
        secs_path = None
    else:
        path = tmpdir.join("settings.{}".format(fileformat))
        secs_path = tmpdir.join("/.secrets.{}".format(fileformat))

    for _ in (1, 2):
        run(
            [
                "init",
                "--format={}".format(fileformat),
                "-v",
                "name=bruno",
                "-s",
                "token=secret for",
                "--path={}".format(str(tmpdir)),
                "-y",
            ]
        )

    sets = Path(str(path))
    assert sets.exists() is True
    assert "bruno" in read_file(
        str(sets), encoding=default_settings.ENCODING_FOR_DYNACONF
    )

    if secs_path:
        secs = Path(str(secs_path))
        assert secs.exists() is True
        assert "secret for" in read_file(
            str(secs), encoding=default_settings.ENCODING_FOR_DYNACONF
        )

    if fileformat != "env":
        gign = Path(str(tmpdir.join(".gitignore")))
        assert gign.exists() is True
        assert ".secrets.*" in read_file(
            str(gign), encoding=default_settings.ENCODING_FOR_DYNACONF
        )
Exemple #9
0
def test_write_dotenv(path, tmpdir):
    env_file = tmpdir.join(path)

    result = run([
        "write",
        "env",
        "-v",
        "TESTVALUE=1",
        "-s",
        "SECRETVALUE=2",
        "-y",
        "-p",
        str(env_file),
    ])

    assert f"Data successful written to {env_file}" in result
    assert "TESTVALUE" in read_file(
        str(env_file), encoding=default_settings.ENCODING_FOR_DYNACONF)
    assert "SECRETVALUE" in read_file(
        str(env_file), encoding=default_settings.ENCODING_FOR_DYNACONF)
Exemple #10
0
 def __init__(self, config: DynaBox):
     """
     Инициализация класса приложения
     @param config: данные конфигурации приложения
     """
     self._config = config
     self._config.VERSION = read_file(config.VERSION_PATH)
     self._db = Database(self._config.POSTGRES)
     self._auth = AuthService(self._config.SERVICES.auth)
     self._app = web.Application(
         middlewares=[self._auth.login_required, self._db.db_session])
Exemple #11
0
def read_file_in_root_directory(*names, **kwargs):
    """Read a file on root dir."""
    return read_file(
        os.path.join(os.path.dirname(__file__), *names),
        encoding=kwargs.get("encoding", "utf-8"),
    )