Support for A.pdf, A.tex and Ac.tex for initial files

This commit is contained in:
sebastien committed 2026-09-26 11:22:09 +02:00
1 parent 42a5b9778e
commit e4e25eca55
12 files changed
+104 -32

No files matched your search

+35 -6
View File
@@ -108,6 +108,33 @@ class WorkspaceTests(unittest.TestCase):
workspace = EvaluationWorkspace.discover(artifact)
self.assertEqual(workspace.root, root)
def test_folder_named_statement_inputs_are_logical_canonical_files(self) -> None:
with tempfile.TemporaryDirectory() as directory:
root = Path(directory) / "A"
root.mkdir()
for name in ("A.pdf", "A.tex", "Ac.tex"):
(root / name).touch()
workspace = EvaluationWorkspace.discover(root)
workspace.require_files("enonce.pdf", "enonce.tex", "correction.tex")
self.assertEqual(workspace.statement_pdf_file, root / "A.pdf")
self.assertEqual(workspace.statement_source_file, root / "A.tex")
self.assertEqual(workspace.correction_source_file, root / "Ac.tex")
def test_canonical_statement_inputs_take_precedence_over_folder_aliases(self) -> None:
with tempfile.TemporaryDirectory() as directory:
root = Path(directory) / "A"
root.mkdir()
for name in ("enonce.pdf", "A.pdf", "enonce.tex", "A.tex",
"correction.tex", "Ac.tex"):
(root / name).touch()
workspace = EvaluationWorkspace(root)
self.assertEqual(workspace.statement_pdf_file, root / "enonce.pdf")
self.assertEqual(workspace.statement_source_file, root / "enonce.tex")
self.assertEqual(workspace.correction_source_file, root / "correction.tex")
def test_discover_and_require_report_clear_errors(self) -> None:
with tempfile.TemporaryDirectory() as directory:
root = Path(directory)
@@ -2574,8 +2601,9 @@ class WorkflowTests(unittest.TestCase):
class CrossPlatformFileTests(unittest.TestCase):
def test_rotate_all_skips_statement(self) -> None:
with tempfile.TemporaryDirectory() as directory:
root = Path(directory)
for filename in ("Copie.pdf", "enonce.pdf"):
root = Path(directory) / "A"
root.mkdir()
for filename in ("Copie.pdf", "A.pdf"):
writer = PdfWriter()
writer.add_blank_page(width=100, height=200)
with (root / filename).open("wb") as output:
@@ -2583,22 +2611,23 @@ class CrossPlatformFileTests(unittest.TestCase):
self.assertEqual(rotate_all(root), 1)
self.assertEqual(PdfReader(root / "Copie.pdf").pages[0].rotation, 180)
self.assertEqual(PdfReader(root / "enonce.pdf").pages[0].rotation, 0)
self.assertEqual(PdfReader(root / "A.pdf").pages[0].rotation, 0)
def test_rename_all_is_collision_safe(self) -> None:
with tempfile.TemporaryDirectory() as directory:
root = Path(directory)
root = Path(directory) / "A"
root.mkdir()
(root / "z.pdf").write_bytes(b"z")
(root / "a.pdf").write_bytes(b"a")
(root / "Copie01.pdf").write_bytes(b"existing")
(root / "enonce.pdf").write_bytes(b"statement")
(root / "A.pdf").write_bytes(b"statement")
rename_all(root)
self.assertEqual((root / "Copie01.pdf").read_bytes(), b"a")
self.assertEqual((root / "Copie02.pdf").read_bytes(), b"existing")
self.assertEqual((root / "Copie03.pdf").read_bytes(), b"z")
self.assertEqual((root / "enonce.pdf").read_bytes(), b"statement")
self.assertEqual((root / "A.pdf").read_bytes(), b"statement")
def test_link_falls_back_to_copy(self) -> None:
with tempfile.TemporaryDirectory() as directory: