34 lines
882 B
Python
34 lines
882 B
Python
from pathlib import Path
|
|
|
|
import pytest
|
|
|
|
from merge_production_dotenvs_in_dotenv import merge
|
|
|
|
|
|
@pytest.mark.parametrize(
|
|
("input_contents", "expected_output"),
|
|
[
|
|
([], ""),
|
|
([""], "\n"),
|
|
(["JANE=doe"], "JANE=doe\n"),
|
|
(["SEP=true", "AR=ator"], "SEP=true\nAR=ator\n"),
|
|
(["A=0", "B=1", "C=2"], "A=0\nB=1\nC=2\n"),
|
|
(["X=x\n", "Y=y", "Z=z\n"], "X=x\n\nY=y\nZ=z\n\n"),
|
|
],
|
|
)
|
|
def test_merge(
|
|
tmp_path: Path,
|
|
input_contents: list[str],
|
|
expected_output: str,
|
|
):
|
|
output_file = tmp_path / ".env"
|
|
|
|
files_to_merge = []
|
|
for num, input_content in enumerate(input_contents, start=1):
|
|
merge_file = tmp_path / f".service{num}"
|
|
merge_file.write_text(input_content)
|
|
files_to_merge.append(merge_file)
|
|
|
|
merge(output_file, files_to_merge)
|
|
|
|
assert output_file.read_text() == expected_output
|