summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRohith PR <praroh2@gmail.com>2021-02-25 13:18:55 +0530
committerMariusz Felisiak <felisiak.mariusz@gmail.com>2021-03-02 12:24:49 +0100
commitd3ecef26b9fda02b88f925a800ae38dd5873c878 (patch)
tree1d065760d3f155452afeabe472859ac8e703c308
parent5fd4f22d196fbe9913884259ddedad10e6156a44 (diff)
Refs #24121 -- Added __repr__() to URLNode.
-rw-r--r--django/template/defaulttags.py9
-rw-r--r--tests/template_tests/syntax_tests/test_url.py21
2 files changed, 30 insertions, 0 deletions
diff --git a/django/template/defaulttags.py b/django/template/defaulttags.py
index cb1f1e91f1..36ad923a5a 100644
--- a/django/template/defaulttags.py
+++ b/django/template/defaulttags.py
@@ -406,6 +406,15 @@ class URLNode(Node):
self.kwargs = kwargs
self.asvar = asvar
+ def __repr__(self):
+ return "<%s view_name='%s' args=%s kwargs=%s as=%s>" % (
+ self.__class__.__qualname__,
+ self.view_name,
+ repr(self.args),
+ repr(self.kwargs),
+ repr(self.asvar),
+ )
+
def render(self, context):
from django.urls import NoReverseMatch, reverse
args = [arg.resolve(context) for arg in self.args]
diff --git a/tests/template_tests/syntax_tests/test_url.py b/tests/template_tests/syntax_tests/test_url.py
index bdbc61454d..831eac5527 100644
--- a/tests/template_tests/syntax_tests/test_url.py
+++ b/tests/template_tests/syntax_tests/test_url.py
@@ -1,4 +1,5 @@
from django.template import RequestContext, TemplateSyntaxError
+from django.template.defaulttags import URLNode
from django.test import RequestFactory, SimpleTestCase, override_settings
from django.urls import NoReverseMatch, resolve
@@ -271,3 +272,23 @@ class UrlTagTests(SimpleTestCase):
context = RequestContext(request)
output = template.render(context)
self.assertEqual(output, '/ns2/named-client/42/')
+
+
+class URLNodeTest(SimpleTestCase):
+ def test_repr(self):
+ url_node = URLNode(view_name='named-view', args=[], kwargs={}, asvar=None)
+ self.assertEqual(
+ repr(url_node),
+ "<URLNode view_name='named-view' args=[] kwargs={} as=None>",
+ )
+ url_node = URLNode(
+ view_name='named-view',
+ args=[1, 2],
+ kwargs={'action': 'update'},
+ asvar='my_url',
+ )
+ self.assertEqual(
+ repr(url_node),
+ "<URLNode view_name='named-view' args=[1, 2] "
+ "kwargs={'action': 'update'} as='my_url'>",
+ )