Support for A.pdf, A.tex and Ac.tex for initial files
This commit is contained in:
1 parent
42a5b9778e
commit
e4e25eca55
12 files changed
+104
-32
No files matched your search
+35
-6
@@ -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:
|
||||
|
||||
Reference in new issue
Block a user