10 changed files with 241 additions and 0 deletions
@ -0,0 +1,19 @@ |
|||
# Header 1 { #header-1 } |
|||
|
|||
Some text |
|||
|
|||
## Header 2 { #header-2 } |
|||
|
|||
Some more text |
|||
|
|||
### Header 3 { #header-3 } |
|||
|
|||
Even more text |
|||
|
|||
# Header 4 { #header-4 } |
|||
|
|||
A bit more text |
|||
|
|||
#Not a header |
|||
|
|||
Final portion of text |
|||
@ -0,0 +1,19 @@ |
|||
# Header 1 { #header-1 } |
|||
|
|||
Some text |
|||
|
|||
# Header 2 { #header-2 } |
|||
|
|||
Some more text |
|||
|
|||
### Header 3 { #header-3 } |
|||
|
|||
Even more text |
|||
|
|||
# Header 4 { #header-4 } |
|||
|
|||
A bit more text |
|||
|
|||
#Not a header |
|||
|
|||
Final portion of text |
|||
@ -0,0 +1,19 @@ |
|||
# Header 1 { #header-1 } |
|||
|
|||
Some text |
|||
|
|||
## Header 2 { #header-2 } |
|||
|
|||
Some more text |
|||
|
|||
### Header 3 { #header-3 } |
|||
|
|||
Even more text |
|||
|
|||
## Header 4 { #header-4 } |
|||
|
|||
A bit more text |
|||
|
|||
#Not a header |
|||
|
|||
Final portion of text |
|||
@ -0,0 +1,19 @@ |
|||
# Header 1 { #header-1 } |
|||
|
|||
Some text |
|||
|
|||
## Header 2 { #header-2 } |
|||
|
|||
Some more text |
|||
|
|||
### Header 3 { #header-3 } |
|||
|
|||
Even more text |
|||
|
|||
# Header 4 { #header-4 } |
|||
|
|||
A bit more text |
|||
|
|||
# Extra header |
|||
|
|||
Final portion of text |
|||
@ -0,0 +1,19 @@ |
|||
# Header 1 { #header-1 } |
|||
|
|||
Some text |
|||
|
|||
## Header 2 { #header-2 } |
|||
|
|||
Some more text |
|||
|
|||
### Header 3 { #header-3 } |
|||
|
|||
Even more text |
|||
|
|||
Header 4 is missing |
|||
|
|||
A bit more text |
|||
|
|||
#Not a header |
|||
|
|||
Final portion of text |
|||
@ -0,0 +1,60 @@ |
|||
from pathlib import Path |
|||
|
|||
import pytest |
|||
from typer.testing import CliRunner |
|||
|
|||
from scripts.translation_fixer import cli |
|||
|
|||
data_path = Path( |
|||
"scripts/tests/test_translation_fixer/test_header_permalinks/data" |
|||
).absolute() |
|||
|
|||
|
|||
@pytest.mark.parametrize( |
|||
"copy_test_files", |
|||
[(f"{data_path}/en_doc.md", f"{data_path}/translated_doc_level_mismatch_1.md")], |
|||
indirect=True, |
|||
) |
|||
def test_level_mismatch_1(runner: CliRunner, root_dir: Path, copy_test_files): |
|||
result = runner.invoke( |
|||
cli, |
|||
["fix-pages", "docs/lang/docs/doc.md"], |
|||
) |
|||
assert result.exit_code == 1 |
|||
|
|||
fixed_content = (root_dir / "docs" / "lang" / "docs" / "doc.md").read_text() |
|||
expected_content = Path( |
|||
f"{data_path}/translated_doc_level_mismatch_1.md" |
|||
).read_text() |
|||
|
|||
assert fixed_content == expected_content # Translated doc remains unchanged |
|||
assert "Error processing docs/lang/docs/doc.md" in result.output |
|||
assert ( |
|||
"Header levels do not match between document and original document" |
|||
" (found #, expected ##) for header №2 in line 5" |
|||
) in result.output |
|||
|
|||
|
|||
@pytest.mark.parametrize( |
|||
"copy_test_files", |
|||
[(f"{data_path}/en_doc.md", f"{data_path}/translated_doc_level_mismatch_2.md")], |
|||
indirect=True, |
|||
) |
|||
def test_level_mismatch_2(runner: CliRunner, root_dir: Path, copy_test_files): |
|||
result = runner.invoke( |
|||
cli, |
|||
["fix-pages", "docs/lang/docs/doc.md"], |
|||
) |
|||
assert result.exit_code == 1 |
|||
|
|||
fixed_content = (root_dir / "docs" / "lang" / "docs" / "doc.md").read_text() |
|||
expected_content = Path( |
|||
f"{data_path}/translated_doc_level_mismatch_2.md" |
|||
).read_text() |
|||
|
|||
assert fixed_content == expected_content # Translated doc remains unchanged |
|||
assert "Error processing docs/lang/docs/doc.md" in result.output |
|||
assert ( |
|||
"Header levels do not match between document and original document" |
|||
" (found ##, expected #) for header №4 in line 13" |
|||
) in result.output |
|||
@ -0,0 +1,56 @@ |
|||
from pathlib import Path |
|||
|
|||
import pytest |
|||
from typer.testing import CliRunner |
|||
|
|||
from scripts.translation_fixer import cli |
|||
|
|||
data_path = Path( |
|||
"scripts/tests/test_translation_fixer/test_header_permalinks/data" |
|||
).absolute() |
|||
|
|||
|
|||
@pytest.mark.parametrize( |
|||
"copy_test_files", |
|||
[(f"{data_path}/en_doc.md", f"{data_path}/translated_doc_number_gt.md")], |
|||
indirect=True, |
|||
) |
|||
def test_gt(runner: CliRunner, root_dir: Path, copy_test_files): |
|||
result = runner.invoke( |
|||
cli, |
|||
["fix-pages", "docs/lang/docs/doc.md"], |
|||
) |
|||
assert result.exit_code == 1 |
|||
|
|||
fixed_content = (root_dir / "docs" / "lang" / "docs" / "doc.md").read_text() |
|||
expected_content = Path(f"{data_path}/translated_doc_number_gt.md").read_text() |
|||
|
|||
assert fixed_content == expected_content # Translated doc remains unchanged |
|||
assert "Error processing docs/lang/docs/doc.md" in result.output |
|||
assert ( |
|||
"Number of headers with permalinks does not match the number " |
|||
"in the original document (5 vs 4)" |
|||
) in result.output |
|||
|
|||
|
|||
@pytest.mark.parametrize( |
|||
"copy_test_files", |
|||
[(f"{data_path}/en_doc.md", f"{data_path}/translated_doc_number_lt.md")], |
|||
indirect=True, |
|||
) |
|||
def test_lt(runner: CliRunner, root_dir: Path, copy_test_files): |
|||
result = runner.invoke( |
|||
cli, |
|||
["fix-pages", "docs/lang/docs/doc.md"], |
|||
) |
|||
assert result.exit_code == 1 |
|||
|
|||
fixed_content = (root_dir / "docs" / "lang" / "docs" / "doc.md").read_text() |
|||
expected_content = Path(f"{data_path}/translated_doc_number_lt.md").read_text() |
|||
|
|||
assert fixed_content == expected_content # Translated doc remains unchanged |
|||
assert "Error processing docs/lang/docs/doc.md" in result.output |
|||
assert ( |
|||
"Number of headers with permalinks does not match the number " |
|||
"in the original document (3 vs 4)" |
|||
) in result.output |
|||
Loading…
Reference in new issue