Skip to content

Commit

Permalink
More context removals
Browse files Browse the repository at this point in the history
  • Loading branch information
yakky committed Feb 13, 2016
1 parent fca3f49 commit d366e65
Show file tree
Hide file tree
Showing 5 changed files with 97 additions and 134 deletions.
13 changes: 9 additions & 4 deletions cms/test_utils/testcases.py
Expand Up @@ -2,6 +2,9 @@
import json
import sys
import warnings

from django.utils.six import string_types

from cms.utils.compat import DJANGO_1_6, DJANGO_1_8

from django.conf import settings
Expand Down Expand Up @@ -401,12 +404,14 @@ def failUnlessWarns(self, category, message, f, *args, **kwargs):
def render_template_obj(self, template, context, request):
try:
from django.template import engines
template_obj = engines['django'].from_string(template)
return template_obj.render(context, request)
if isinstance(template, string_types):
template = engines['django'].from_string(template)
return template.render(context, request)
except ImportError:
from django.template import Template
template_obj = Template(template)
return template_obj.render(RequestContext(request, context))
if isinstance(template, string_types):
template = Template(template)
return template.render(RequestContext(request, context))

def apphook_clear(self):
from cms.apphook_pool import apphook_pool
Expand Down
38 changes: 15 additions & 23 deletions cms/tests/test_cache.py
@@ -1,5 +1,4 @@
# -*- coding: utf-8 -*-
from django.template import Template, RequestContext
from django.conf import settings
from sekizai.context import SekizaiContext

Expand Down Expand Up @@ -28,7 +27,7 @@ def setUp(self):
cache.clear()

def test_cache_placeholder(self):
template = Template("{% load cms_tags %}{% placeholder 'body' %}{% placeholder 'right-column' %}")
template = "{% load cms_tags %}{% placeholder 'body' %}{% placeholder 'right-column' %}"
page1 = create_page('test page 1', 'nav_playground.html', 'en',
published=True)

Expand All @@ -38,26 +37,23 @@ def test_cache_placeholder(self):
request = self.get_request('/en/')
request.current_page = Page.objects.get(pk=page1.pk)
request.toolbar = CMSToolbar(request)
rctx = RequestContext(request)
with self.assertNumQueries(5):
template.render(rctx)
self.render_template_obj(template, {}, request)
request = self.get_request('/en/')
request.current_page = Page.objects.get(pk=page1.pk)
request.toolbar = CMSToolbar(request)
request.toolbar.edit_mode = False
rctx = RequestContext(request)
template = Template("{% load cms_tags %}{% placeholder 'body' %}{% placeholder 'right-column' %}")
template = "{% load cms_tags %}{% placeholder 'body' %}{% placeholder 'right-column' %}"
with self.assertNumQueries(1):
template.render(rctx)
self.render_template_obj(template, {}, request)
# toolbar
request = self.get_request('/en/')
request.current_page = Page.objects.get(pk=page1.pk)
request.toolbar = CMSToolbar(request)
request.toolbar.edit_mode = True
template = Template("{% load cms_tags %}{% placeholder 'body' %}{% placeholder 'right-column' %}")
rctx = RequestContext(request)
template = "{% load cms_tags %}{% placeholder 'body' %}{% placeholder 'right-column' %}"
with self.assertNumQueries(3):
template.render(rctx)
self.render_template_obj(template, {}, request)
page1.publish('en')
exclude = [
'django.middleware.cache.UpdateCacheMiddleware',
Expand Down Expand Up @@ -86,43 +82,39 @@ def test_no_cache_plugin(self):
request = self.get_request('/en/')
request.current_page = Page.objects.get(pk=page1.pk)
request.toolbar = CMSToolbar(request)
template = Template("{% load cms_tags %}{% placeholder 'body' %}{% placeholder 'right-column' %}")
rctx = RequestContext(request)
template = "{% load cms_tags %}{% placeholder 'body' %}{% placeholder 'right-column' %}"
with self.assertNumQueries(3):
template.render(rctx)
self.render_template_obj(template, {}, request)

request = self.get_request('/en/')
request.current_page = Page.objects.get(pk=page1.pk)
request.toolbar = CMSToolbar(request)
template = Template("{% load cms_tags %}{% placeholder 'body' %}{% placeholder 'right-column' %}")
rctx = RequestContext(request)
template = "{% load cms_tags %}{% placeholder 'body' %}{% placeholder 'right-column' %}"
with self.assertNumQueries(1):
template.render(rctx)
self.render_template_obj(template, {}, request)
add_plugin(placeholder1, "NoCachePlugin", 'en')
page1.publish('en')
request = self.get_request('/en/')
request.current_page = Page.objects.get(pk=page1.pk)
request.toolbar = CMSToolbar(request)
template = Template("{% load cms_tags %}{% placeholder 'body' %}{% placeholder 'right-column' %}")
rctx = RequestContext(request)
template = "{% load cms_tags %}{% placeholder 'body' %}{% placeholder 'right-column' %}"
with self.assertNumQueries(4):
render = template.render(rctx)
output = self.render_template_obj(template, {}, request)
with self.assertNumQueries(FuzzyInt(14, 19)):
response = self.client.get('/en/')
resp1 = response.content.decode('utf8').split("$$$")[1]

request = self.get_request('/en/')
request.current_page = Page.objects.get(pk=page1.pk)
request.toolbar = CMSToolbar(request)
template = Template("{% load cms_tags %}{% placeholder 'body' %}{% placeholder 'right-column' %}")
rctx = RequestContext(request)
template = "{% load cms_tags %}{% placeholder 'body' %}{% placeholder 'right-column' %}"
with self.assertNumQueries(4):
render2 = template.render(rctx)
output2 = self.render_template_obj(template, {}, request)
with self.settings(CMS_PAGE_CACHE=False):
with self.assertNumQueries(FuzzyInt(8, 13)):
response = self.client.get('/en/')
resp2 = response.content.decode('utf8').split("$$$")[1]
self.assertNotEqual(render, render2)
self.assertNotEqual(output, output2)
self.assertNotEqual(resp1, resp2)

plugin_pool.unregister_plugin(NoCachePlugin)
Expand Down
58 changes: 28 additions & 30 deletions cms/tests/test_placeholder.py
Expand Up @@ -10,8 +10,7 @@
from django.core.cache import cache
from django.core.exceptions import ImproperlyConfigured
from django.db import models
from django.template import TemplateSyntaxError, Template
from django.template.context import Context, RequestContext
from django.template import TemplateSyntaxError, Template, Context
from django.template.loader import get_template
from django.test import TestCase, RequestFactory
from django.test.utils import override_settings
Expand Down Expand Up @@ -43,7 +42,7 @@
from cms.test_utils.util.context_managers import UserLoginContext
from cms.test_utils.util.mock import AttributeObject
from cms.toolbar.toolbar import CMSToolbar
from cms.utils.compat import DJANGO_1_8
from cms.utils.compat import DJANGO_1_7, DJANGO_1_8
from cms.utils.compat.tests import UnittestCompatMixin
from cms.utils.conf import get_cms_setting
from cms.utils.placeholder import (PlaceholderNoAction, MLNGPlaceholderActions,
Expand Down Expand Up @@ -219,41 +218,37 @@ def test_placeholder_scanning_fail(self):
self.assertRaises(TemplateSyntaxError, get_placeholders, 'placeholder_tests/test_eleven.html')

def test_placeholder_tag(self):
template = Template("{% load cms_tags %}{% render_placeholder placeholder %}")
ctx = Context()
self.assertEqual(template.render(ctx), "")
request = self.get_request('/', language=settings.LANGUAGES[0][0])
rctx = RequestContext(request)
self.assertEqual(template.render(rctx), "")

template = "{% load cms_tags %}{% render_placeholder placeholder %}"
output = self.render_template_obj(template, {}, request)
self.assertEqual(output, "")

placeholder = Placeholder.objects.create(slot="test")
rctx['placeholder'] = placeholder
self.assertEqual(template.render(rctx), "")
output = self.render_template_obj(template, {'placeholder': placeholder}, request)
self.assertEqual(output, "")
self.assertEqual(placeholder.cmsplugin_set.count(), 0)

add_plugin(placeholder, "TextPlugin", settings.LANGUAGES[0][0], body="test")
self.assertEqual(placeholder.cmsplugin_set.count(), 1)
rctx = RequestContext(request)
placeholder = self.reload(placeholder)
rctx.update({'placeholder': placeholder})
self.assertEqual(template.render(rctx).strip(), "test")
output = self.render_template_obj(template, {'placeholder': placeholder}, request)
self.assertEqual(output, "test")

def test_placeholder_tag_language(self):
template = Template("{% load cms_tags %}{% render_placeholder placeholder language language %}")
template = "{% load cms_tags %}{% render_placeholder placeholder language language %}"
placeholder = Placeholder.objects.create(slot="test")
add_plugin(placeholder, "TextPlugin", 'en', body="English")
add_plugin(placeholder, "TextPlugin", 'de', body="Deutsch")
request = self.get_request('/')
rctx = RequestContext(request)
rctx.update({
'placeholder': placeholder,
'language': 'en'
})
self.assertEqual(template.render(rctx).strip(), "English")

output = self.render_template_obj(template, {'placeholder': placeholder, 'language': 'en'}, request)
self.assertEqual(output.strip(), "English")

del placeholder._plugins_cache
rctx.update({
'placeholder': placeholder,
'language': 'de'
})
self.assertEqual(template.render(rctx).strip(), "Deutsch")

output = self.render_template_obj(template, {'placeholder': placeholder, 'language': 'de'}, request)
self.assertEqual(output.strip(), "Deutsch")

def test_get_placeholder_conf(self):
TEST_CONF = {
Expand Down Expand Up @@ -565,7 +560,6 @@ def test_plugins_prepopulate(self):
content = render_placeholder(placeholder, context)
self.assertRegexpMatches(content, "^<p>en default body 1</p>\s*<p>en default body 2</p>$")


def test_plugins_children_prepopulate(self):
"""
Validate a default textplugin with a nested default link plugin
Expand Down Expand Up @@ -613,7 +607,6 @@ def test_plugins_children_prepopulate(self):
self.assertEqual(plugins[2].plugin_type, 'LinkPlugin')
self.assertTrue(plugins[1].parent == plugins[2].parent and plugins[1].parent == plugins[0])


def test_placeholder_pk_thousands_format(self):
page = create_page("page", "nav_playground.html", "en", published=True)
for placeholder in page.placeholders.all():
Expand Down Expand Up @@ -731,16 +724,21 @@ def test_super_extends_not_corrupted_by_placeholder_scan(self):
will be executed twice, and if it adds content to {{block.super}},
that content will be added twice.
"""

template = get_template("placeholder_tests/test_super_extends_2.html")
output = template.render(Context({}))
if DJANGO_1_7:
output = template.render(Context({}))
else:
output = template.render({})
self.assertEqual(['Whee'], [o for o in output.split('\n')
if 'Whee' in o])

get_placeholders("placeholder_tests/test_super_extends_2.html")

template = get_template("placeholder_tests/test_super_extends_2.html")
output = template.render(Context({}))
if DJANGO_1_7:
output = template.render(Context({}))
else:
output = template.render({})
self.assertEqual(['Whee'], [o for o in output.split('\n')
if 'Whee' in o])

Expand Down
13 changes: 4 additions & 9 deletions cms/tests/test_rendering.py
Expand Up @@ -2,7 +2,7 @@
from __future__ import with_statement

from django.core.cache import cache
from django.template import Template, RequestContext
from django.template import Template
from django.test.utils import override_settings
from sekizai.context import SekizaiContext

Expand Down Expand Up @@ -168,10 +168,6 @@ def insert_test_content(self):
self.test_page5 = self.reload(p5.publisher_public)
self.test_page6 = self.reload(p6.publisher_public)

def get_context(self, page, context_vars={}):
request = self.get_request(page)
return RequestContext(request, context_vars)

def get_request(self, page, *args, **kwargs):
request = super(RenderingTestCase, self).get_request(*args, **kwargs)
request.current_page = page
Expand All @@ -182,10 +178,9 @@ def strip_rendered(self, content):

@override_settings(CMS_TEMPLATES=[(TEMPLATE_NAME, '')])
def render(self, template, page, context_vars={}):
c = self.get_context(page, context_vars)
t = Template(template)
r = t.render(c)
return self.strip_rendered(r)
request = self.get_request(page)
output = self.render_template_obj(template, context_vars, request)
return self.strip_rendered(output)

@override_settings(CMS_TEMPLATES=[(TEMPLATE_NAME, '')])
def test_details_view(self):
Expand Down

0 comments on commit d366e65

Please sign in to comment.