Personal tex compilation fixes

This commit is contained in:
sebastien committed 2026-10-10 10:01:16 +02:00
1 parent ec6ac9580b
commit 705db1068f
8 files changed
+217 -21

No files matched your search

+27
View File
@@ -151,6 +151,33 @@ class FullStatementResumeTests(unittest.TestCase):
response(contexts=[]),
response(rubrics=[{'label': 'Ex 1', 'rubric_content': '4 points : correct'}])]
def test_compile_only_never_enters_analysis_and_preserves_sources(self):
directory = self.root / 'Sol2'
directory.mkdir()
tex = directory / '1.tex'
tex.write_text('manually edited solution')
with patch.object(gemini, 'process_exam') as analysis, patch.object(
gemini, 'compile_to_pdf', self.compiler):
self.assertEqual(gemini.main([str(self.root), '--compile-only']), 0)
analysis.assert_not_called()
self.assertEqual(tex.read_text(), 'manually edited solution')
self.assertEqual((directory / '1.pdf').read_bytes(), b'PDF')
self.assertEqual(self.compiler.call_args.kwargs['source_path'], self.root / 'correction.tex')
def test_preamble_change_recompiles_previously_successful_pdfs(self):
self.client.models.generate_content.side_effect = self.responses()
self.assertEqual(self.run_exam(), ExitCode.SUCCESS)
self.compiler.reset_mock()
self.assertEqual(self.run_exam(), ExitCode.SUCCESS)
self.compiler.assert_not_called()
(self.root / 'correction.tex').write_text(
r'\documentclass{article}\newcommand{\custom}{new}\begin{document}')
self.client.models.generate_content.reset_mock()
self.assertEqual(self.run_exam(), ExitCode.SUCCESS)
self.client.models.generate_content.assert_not_called()
self.assertEqual(self.compiler.call_count, 1)
self.assertEqual(self.compiler.call_args.args[1], self.root / 'Sol2/Ex 1.pdf')
def test_rubric_failure_retry_keeps_grouping_edits_and_sources(self):
self.client.models.generate_content.side_effect = [*self.responses()[:3], RuntimeError('offline')]
self.assertEqual(self.run_exam(), ExitCode.PARTIAL)