adds tests for templatetag
This commit is contained in:
committed by
Michael van Tellingen
parent
6587d0fd56
commit
82f2dd460e
@@ -16,7 +16,7 @@ def do_segment(parser, token):
|
||||
|
||||
# If no segment is provided this block will raise an error
|
||||
if set(kwargs.keys()) != {'name'}:
|
||||
usage = '{% {tag_name} name="segmentname" %} ... {% end{tag_name} %}'.format(tag_name=tag_name)
|
||||
usage = '{% segment name="segmentname" %} ... {% endsegment %}'
|
||||
raise TemplateSyntaxError("Usage: %s" % usage)
|
||||
|
||||
nodelist = parser.parse(('endsegment',))
|
||||
|
48
tests/unit/test_templatetags.py
Normal file
48
tests/unit/test_templatetags.py
Normal file
@@ -0,0 +1,48 @@
|
||||
from __future__ import absolute_import, unicode_literals
|
||||
|
||||
import time
|
||||
|
||||
import pytest
|
||||
from django.template import TemplateSyntaxError
|
||||
from wagtail_factories import SiteFactory
|
||||
|
||||
from tests.factories.segment import SegmentFactory
|
||||
from tests.factories.rule import TimeRuleFactory
|
||||
from tests.utils import render_template, add_session_to_request
|
||||
|
||||
|
||||
@pytest.mark.django_db
|
||||
def test_segment_template_block(rf):
|
||||
site = SiteFactory(is_default_site=True)
|
||||
segment = SegmentFactory(name='test')
|
||||
|
||||
request = rf.get('/')
|
||||
|
||||
add_session_to_request(request)
|
||||
|
||||
request.session['segments'] = [{
|
||||
"encoded_name": 'test',
|
||||
"id": 1,
|
||||
"timestamp": int(time.time()),
|
||||
"persistent": False
|
||||
}]
|
||||
|
||||
content = render_template("""
|
||||
{% load wagtail_personalisation_tags %}
|
||||
{% segment name='test' %}Test{% endsegment %}
|
||||
""", request=request).strip()
|
||||
|
||||
assert content == "Test"
|
||||
|
||||
content = render_template("""
|
||||
{% load wagtail_personalisation_tags %}
|
||||
{% segment name='test2' %}Test{% endsegment %}
|
||||
""", request=request).strip()
|
||||
|
||||
assert content == ""
|
||||
|
||||
with pytest.raises(TemplateSyntaxError):
|
||||
content = render_template("""
|
||||
{% load wagtail_personalisation_tags %}
|
||||
{% segment wrongname='test2' %}Test{% endsegment %}
|
||||
""", request=request).strip()
|
14
tests/utils.py
Normal file
14
tests/utils.py
Normal file
@@ -0,0 +1,14 @@
|
||||
from django.template import engines
|
||||
from django.contrib.sessions.middleware import SessionMiddleware
|
||||
|
||||
|
||||
def render_template(value, **context):
|
||||
template = engines['django'].from_string(value)
|
||||
request = context.pop('request', None)
|
||||
return template.render(context, request)
|
||||
|
||||
|
||||
def add_session_to_request(request):
|
||||
middleware = SessionMiddleware()
|
||||
middleware.process_request(request)
|
||||
request.session.save()
|
Reference in New Issue
Block a user