mirror of
https://github.com/cookiecutter/cookiecutter-django.git
synced 2024-11-14 05:36:58 +03:00
b312d516a4
## Description Replace Caddy with Traefik ## Rationale There is some trouble with the Caddy license (https://github.com/pydanny/cookiecutter-django/pull/1282#issuecomment-329617536) @drdaeman suggested using Traefik (https://github.com/pydanny/cookiecutter-django/pull/1282#issuecomment-353655273) which supports ACME and also plays very nice with Docker. ## Comments I am currently using the proposed setup on a live site and it working great so far. If this PR is of interest to the maintainers, then I could commit more changes and take care of the documentation. Of course, any suggestions by the more experienced people around here, are welcome!
67 lines
2.1 KiB
Python
67 lines
2.1 KiB
Python
import os
|
|
from typing import Sequence
|
|
|
|
import pytest
|
|
|
|
ROOT_DIR_PATH = os.path.dirname(os.path.realpath(__file__))
|
|
PRODUCTION_DOTENVS_DIR_PATH = os.path.join(ROOT_DIR_PATH, ".envs", ".production")
|
|
PRODUCTION_DOTENV_FILE_PATHS = [
|
|
os.path.join(PRODUCTION_DOTENVS_DIR_PATH, ".django"),
|
|
os.path.join(PRODUCTION_DOTENVS_DIR_PATH, ".postgres"),
|
|
]
|
|
DOTENV_FILE_PATH = os.path.join(ROOT_DIR_PATH, ".env")
|
|
|
|
|
|
def merge(
|
|
output_file_path: str, merged_file_paths: Sequence[str], append_linesep: bool = True
|
|
) -> None:
|
|
with open(output_file_path, "w") as output_file:
|
|
for merged_file_path in merged_file_paths:
|
|
with open(merged_file_path, "r") as merged_file:
|
|
merged_file_content = merged_file.read()
|
|
output_file.write(merged_file_content)
|
|
if append_linesep:
|
|
output_file.write(os.linesep)
|
|
|
|
|
|
def main():
|
|
merge(DOTENV_FILE_PATH, PRODUCTION_DOTENV_FILE_PATHS)
|
|
|
|
|
|
@pytest.mark.parametrize("merged_file_count", range(3))
|
|
@pytest.mark.parametrize("append_linesep", [True, False])
|
|
def test_merge(tmpdir_factory, merged_file_count: int, append_linesep: bool):
|
|
tmp_dir_path = str(tmpdir_factory.getbasetemp())
|
|
|
|
output_file_path = os.path.join(tmp_dir_path, ".env")
|
|
|
|
expected_output_file_content = ""
|
|
merged_file_paths = []
|
|
for i in range(merged_file_count):
|
|
merged_file_ord = i + 1
|
|
|
|
merged_filename = ".service{}".format(merged_file_ord)
|
|
merged_file_path = os.path.join(tmp_dir_path, merged_filename)
|
|
|
|
merged_file_content = merged_filename * merged_file_ord
|
|
|
|
with open(merged_file_path, "w+") as file:
|
|
file.write(merged_file_content)
|
|
|
|
expected_output_file_content += merged_file_content
|
|
if append_linesep:
|
|
expected_output_file_content += os.linesep
|
|
|
|
merged_file_paths.append(merged_file_path)
|
|
|
|
merge(output_file_path, merged_file_paths, append_linesep)
|
|
|
|
with open(output_file_path, "r") as output_file:
|
|
actual_output_file_content = output_file.read()
|
|
|
|
assert actual_output_file_content == expected_output_file_content
|
|
|
|
|
|
if __name__ == "__main__":
|
|
main()
|