summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTiago Honorato <tiagohonorato1@gmail.com>2021-03-12 19:37:47 -0300
committerMariusz Felisiak <felisiak.mariusz@gmail.com>2021-03-17 07:49:55 +0100
commit4f4f770f77c5d720484c0a71f6a19b9affcc7e28 (patch)
treeb07f5dba5ec648d7db29040e5604fa9693b7d5dd
parent065832eaec167a45008aa125887ce1215a1f257d (diff)
Refs #24121 -- Added __repr__() to Origin and Template.
-rw-r--r--django/template/base.py9
-rw-r--r--tests/template_tests/test_base.py11
-rw-r--r--tests/template_tests/test_origin.py6
3 files changed, 26 insertions, 0 deletions
diff --git a/django/template/base.py b/django/template/base.py
index b1eec99655..ed1bae3022 100644
--- a/django/template/base.py
+++ b/django/template/base.py
@@ -122,6 +122,9 @@ class Origin:
def __str__(self):
return self.name
+ def __repr__(self):
+ return '<%s name=%r>' % (self.__class__.__qualname__, self.name)
+
def __eq__(self, other):
return (
isinstance(other, Origin) and
@@ -158,6 +161,12 @@ class Template:
for node in self.nodelist:
yield from node
+ def __repr__(self):
+ return '<%s template_string="%s...">' % (
+ self.__class__.__qualname__,
+ self.source[:20].replace('\n', ''),
+ )
+
def _render(self, context):
return self.nodelist.render(context)
diff --git a/tests/template_tests/test_base.py b/tests/template_tests/test_base.py
index 475a647dd2..2b206a8968 100644
--- a/tests/template_tests/test_base.py
+++ b/tests/template_tests/test_base.py
@@ -8,6 +8,17 @@ class TemplateTests(SimpleTestCase):
template_string = gettext_lazy('lazy string')
self.assertEqual(Template(template_string).render(Context()), template_string)
+ def test_repr(self):
+ template = Template(
+ '<html><body>\n'
+ '{% if test %}<h1>{{ varvalue }}</h1>{% endif %}'
+ '</body></html>'
+ )
+ self.assertEqual(
+ repr(template),
+ '<Template template_string="<html><body>{% if t...">',
+ )
+
class VariableDoesNotExistTests(SimpleTestCase):
def test_str(self):
diff --git a/tests/template_tests/test_origin.py b/tests/template_tests/test_origin.py
index 03738a80bd..f71178e955 100644
--- a/tests/template_tests/test_origin.py
+++ b/tests/template_tests/test_origin.py
@@ -1,3 +1,4 @@
+import os
from unittest import TestCase
from django.template import Engine
@@ -24,3 +25,8 @@ class OriginTestCase(TestCase):
# Use assertIs() to test __eq__/__ne__.
self.assertIs(a.origin == b.origin, False)
self.assertIs(a.origin != b.origin, True)
+
+ def test_repr(self):
+ a = self.engine.get_template('index.html')
+ name = os.path.join(TEMPLATE_DIR, 'index.html')
+ self.assertEqual(repr(a.origin), '<Origin name=%r>' % name)