import json

from django.template.loader import render_to_string
from django.test import SimpleTestCase


class TestTemplates(SimpleTestCase):
    def test_javascript_escaping(self):
        context = {
            'inline_admin_formset': {
                'inline_formset_data': json.dumps({
                    'formset': {'prefix': 'my-prefix'},
                    'opts': {'verbose_name': 'verbose name\\'},
                }),
            },
        }
        output = render_to_string('admin/edit_inline/stacked.html', context)
        self.assertIn('"prefix": "my-prefix"', output)
        self.assertIn('"verbose_name": "verbose name\\\\"', output)

        output = render_to_string('admin/edit_inline/tabular.html', context)
        self.assertIn('"prefix": "my-prefix"', output)
        self.assertIn('"verbose_name": "verbose name\\\\"', output)