1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
|
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
|