No LaTeX/markdown anywhere students read (seed, import, DB migration 0021, tutor history, frontend guard); quiz of an island is fixed per user again
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
This commit is contained in:
@@ -18,8 +18,8 @@ class ConvertTests(SimpleTestCase):
|
||||
self.assertEqual(convert('(−۱)^{۲+۲}'), '(−۱)²⁺²')
|
||||
|
||||
def test_unmappable_script_is_kept_readable_not_dropped(self):
|
||||
self.assertEqual(convert('D_{g}'), 'D_(g)')
|
||||
self.assertEqual(convert('a^b'), 'a^b')
|
||||
self.assertEqual(convert('D_{g}'), 'Dg')
|
||||
self.assertEqual(convert('a^b'), 'aᵇ')
|
||||
|
||||
def test_blank_placeholder_untouched(self):
|
||||
self.assertEqual(convert('3، 6، ___، 12'), '3، 6، ___، 12')
|
||||
@@ -35,6 +35,15 @@ class ConvertTests(SimpleTestCase):
|
||||
self.assertEqual(out['label'], 'f(x)=x²')
|
||||
|
||||
|
||||
class MarkupTests(SimpleTestCase):
|
||||
def test_caret_markdown_and_integral(self):
|
||||
self.assertEqual(convert('(۲/۳)^(−۴)'), '(۲/۳)⁻⁴')
|
||||
self.assertEqual(convert('**تمرین:** حل کنید'), 'تمرین: حل کنید')
|
||||
self.assertEqual(convert(r'\int_0^1 x\,dx'), '∫₀¹ x dx')
|
||||
self.assertEqual(convert(r'$\vec{a}\cdot\vec{b}$'), 'a·b')
|
||||
self.assertEqual(leftover(convert('x^2y^3 و log_a b')), [])
|
||||
|
||||
|
||||
class SeedHasNoLatexTests(SimpleTestCase):
|
||||
"""گزارشِ مالک ۲۰۲۶-۱۰-۱۲: LaTeX خام در درسهای بردار. فرانت LaTeX رندر نمیکند."""
|
||||
|
||||
@@ -50,3 +59,10 @@ class SeedHasNoLatexTests(SimpleTestCase):
|
||||
if leftover(t):
|
||||
bad.append((l['title'], leftover(t)))
|
||||
self.assertEqual(bad, [])
|
||||
|
||||
|
||||
class SeedQuestionsHaveNoMarkupTests(SimpleTestCase):
|
||||
def test_no_markup_in_questions(self):
|
||||
rows = json.loads((SEED.parent / 'questions.json').read_text(encoding='utf-8'))['questions']
|
||||
bad = [t for r in rows for t in [r['prompt'], *r['choices']] if leftover(t)]
|
||||
self.assertEqual(bad[:5], [])
|
||||
|
||||
Reference in New Issue
Block a user