diff --git a/mark2confluence/main.py b/mark2confluence/main.py index 1b6b413..3daffaf 100755 --- a/mark2confluence/main.py +++ b/mark2confluence/main.py @@ -109,6 +109,9 @@ def begins_with_mark_headers(path: str, headers: List[str] = ["Space", "Parent", return True return False +def begins_with_mark_space_header(path: str): + return begins_with_mark_headers(path, ["Space"]) + class MultilineCommentIsOpenException(Exception): pass @@ -240,7 +243,7 @@ def get_default_parents(parents_string: str) -> List[ParentCfg]: def inject_default_parents(path: str, default_parents_cfg: List[ParentCfg]): file_dir = f"{os.path.dirname(os.path.abspath(path))}" for parent_cfg in default_parents_cfg: - if parent_cfg.is_directory_included(file_dir): + if parent_cfg.is_directory_included(file_dir) and not begins_with_mark_space_header(path): header = parent_cfg.get_header() with open(path, 'r') as f: file_content = f.read() diff --git a/tests/resources/markdown/test_inject_default_parents/0-input.md b/tests/resources/markdown/test_inject_default_parents/0-input.md index b6ded31..e3665b5 100644 --- a/tests/resources/markdown/test_inject_default_parents/0-input.md +++ b/tests/resources/markdown/test_inject_default_parents/0-input.md @@ -1 +1,2 @@ + diff --git a/tests/resources/markdown/test_inject_default_parents/0-output.md b/tests/resources/markdown/test_inject_default_parents/0-output.md index cab0c27..3881b61 100644 --- a/tests/resources/markdown/test_inject_default_parents/0-output.md +++ b/tests/resources/markdown/test_inject_default_parents/0-output.md @@ -1,3 +1,4 @@ + diff --git a/tests/resources/markdown/test_inject_default_parents/1-input.md b/tests/resources/markdown/test_inject_default_parents/1-input.md new file mode 100644 index 0000000..0882250 --- /dev/null +++ b/tests/resources/markdown/test_inject_default_parents/1-input.md @@ -0,0 +1,3 @@ + + + diff --git a/tests/resources/markdown/test_inject_default_parents/1-output.md b/tests/resources/markdown/test_inject_default_parents/1-output.md new file mode 100644 index 0000000..0882250 --- /dev/null +++ b/tests/resources/markdown/test_inject_default_parents/1-output.md @@ -0,0 +1,3 @@ + + + diff --git a/tests/test_main.py b/tests/test_main.py index 1d1e7fb..74e687b 100644 --- a/tests/test_main.py +++ b/tests/test_main.py @@ -127,14 +127,22 @@ def test_get_default_parents(string, expected_parents_count): def test_ParentCfg_get_header(cfg: main.ParentCfg, expected_header): assert cfg.get_header() == expected_header -def test_inject_default_parents(monkeypatch): +@pytest.mark.parametrize( + ids=("skip file with space mark header", "properly inject default headers"), + argnames="tested_file_name, expected_file_name", + argvalues=[ + ("0-input.md", "0-output.md"), + ("1-input.md", "1-output.md"), + ], +) +def test_inject_default_parents(monkeypatch, tested_file_name, expected_file_name): monkeypatch.setattr('mark2confluence.main.cfg', dot.dotify({"github": {"WORKSPACE": WORKSPACE}})) base_dir = f"{RESOURCE_DIR}/markdown/test_inject_default_parents" - source_file_path = f"{base_dir}/0-input.md" - expected_file_path = f"{base_dir}/0-output.md" - parsed_file_dir = f"{WORKSPACE}/tests/foo" - parsed_file_path = f"{parsed_file_dir}/parsed_file.md" + source_file_path = os.path.join(base_dir, tested_file_name) + expected_file_path = os.path.join(base_dir, expected_file_name) + parsed_file_dir = os.path.join(WORKSPACE, "tests", "foo") + parsed_file_path = os.path.join(parsed_file_dir, "parsed_file.md") cfgs = [ main.ParentCfg(directory="tests/foo/bar", space="FOO", parents=["BAZ"]), main.ParentCfg(directory="tests/foo/*", space="FOO", parents=["BAR"]),