Ticket #16042: 16042.diff

File 16042.diff, 2.5 KB (added by thejaswi_puthraya, 4 years ago)

git patch against the latest checkout

  • django/contrib/comments/templatetags/comments.py

    diff --git a/django/contrib/comments/templatetags/comments.py b/django/contrib/comments/templatetags/comments.py
    index 7962a40..52c731c 100644
    a b class BaseCommentNode(template.Node): 
    4747    def lookup_content_type(token, tagname):
    4848        try:
    4949            app, model = token.split('.')
    50             return ContentType.objects.get(app_label=app, model=model)
     50            return ContentType.objects.get_by_natural_key(app, model)
    5151        except ValueError:
    5252            raise template.TemplateSyntaxError("Third argument in %r must be in the format 'app.model'" % tagname)
    5353        except ContentType.DoesNotExist:
  • tests/regressiontests/comment_tests/tests/templatetag_tests.py

    diff --git a/tests/regressiontests/comment_tests/tests/templatetag_tests.py b/tests/regressiontests/comment_tests/tests/templatetag_tests.py
    index 0ead6c2..2ab3273 100644
    a b from django.contrib.contenttypes.models import ContentType 
    44from django.template import Template, Context
    55from regressiontests.comment_tests.models import Article, Author
    66from regressiontests.comment_tests.tests import CommentTestCase
     7from django.db import connection
     8from django.conf import settings
    79
    810class CommentTemplateTagTests(CommentTestCase):
    911
    class CommentTemplateTagTests(CommentTestCase): 
    100102    def testRenderCommentListFromObject(self):
    101103        self.testRenderCommentList("{% render_comment_list for a %}")
    102104
     105class CommentTemplateTagNumQueries(CommentTemplateTagTests):
     106    def setUp(self):
     107        super(CommentTemplateTagNumQueries, self).setUp()
     108        settings.DEBUG = True
     109
     110    def tearDown(self):
     111        settings.DEBUG = False
     112        super(CommentTemplateTagNumQueries, self).tearDown()
     113
     114    def renderCommentList(self, tag=None):
     115        connection.queries = []
     116        t = "{% load comments %}" + (tag or "{% render_comment_list for comment_tests.article a.id %}")
     117        ctx, out = self.render(t, a=Article.objects.get(pk=1))
     118        return len(connection.queries)
     119
     120    def testNumberQueries(self):
     121        self.createSomeComments()
     122
     123        num_queries = self.renderCommentList()
     124        num_queries_2 = self.renderCommentList()
     125        self.assertEquals(num_queries, num_queries_2)
     126        ContentType.objects.__class__._cache = {}
     127        num_queries_3 = self.renderCommentList()
     128        self.assertLess(num_queries_2, num_queries_3)
Back to Top