Skip to content

Commit

Permalink
fix templatetag for Python 3, and add a test
Browse files Browse the repository at this point in the history
  • Loading branch information
knipknap committed Nov 25, 2018
1 parent 360c81e commit cd2fa81
Show file tree
Hide file tree
Showing 3 changed files with 89 additions and 2 deletions.
4 changes: 2 additions & 2 deletions django_find/templates/django_find/form.html
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
{% load i18n %}
<form class="django-find-form" action="" method="GET">
{% for key, value in getvars.iteritems %}
{% for key, value in getvars.items %}{% if key != 'q' %}
<input type="hidden" name="{{key}}" value="{{value}}"></input>
{% endfor %}
{% endif %}{% endfor %}
<input type="text" class="search-text" name="q" value="{{getvars.q}}"></input>
<input type="submit" class="search-button" value="{% trans 'Find' %}"></input>
</form>
16 changes: 16 additions & 0 deletions runtests.py
Original file line number Diff line number Diff line change
Expand Up @@ -36,6 +36,21 @@
'django.middleware.clickjacking.XFrameOptionsMiddleware',
)

TEMPLATES = [
{
'BACKEND': 'django.template.backends.django.DjangoTemplates',
'DIRS': [
],
'APP_DIRS': True,
'OPTIONS': {
'context_processors': [
'django.contrib.auth.context_processors.auth',
'django.template.context_processors.i18n',
'django.template.context_processors.request',
],
},
},
]

settings.configure(
SECRET_KEY="django_tests_secret_key",
Expand All @@ -44,6 +59,7 @@
ALLOWED_HOSTS=[],
INSTALLED_APPS=ALWAYS_INSTALLED_APPS + CUSTOM_INSTALLED_APPS,
MIDDLEWARE_CLASSES=ALWAYS_MIDDLEWARE_CLASSES,
TEMPLATES=TEMPLATES,
ROOT_URLCONF='tests.urls',
DATABASES={
'default': {
Expand Down
71 changes: 71 additions & 0 deletions tests/test_tags.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,71 @@
from __future__ import absolute_import
from django.test import TestCase
from django.template import Template
from django.template import Context
from django.test.client import RequestFactory
from .models import Author

tmpl = '''
{% load find_tags %}
{% find object_list %}
{% for obj in object_list %}{{ obj.name }},{% endfor %}
'''.strip()

expected_form1 = '''
<form class="django-find-form" action="" method="GET">
<input type="text" class="search-text" name="q" value=""></input>
<input type="submit" class="search-button" value="Find"></input>
</form>
'''.lstrip()

expected_form2 = '''
<form class="django-find-form" action="" method="GET">
<input type="hidden" name="test" value="test-value"></input>
<input type="text" class="search-text" name="q" value=""></input>
<input type="submit" class="search-button" value="Find"></input>
</form>
'''.lstrip()

expected_form3 = '''
<form class="django-find-form" action="" method="GET">
<input type="hidden" name="test" value="test-value"></input>
<input type="text" class="search-text" name="q" value="A1"></input>
<input type="submit" class="search-button" value="Find"></input>
</form>
'''.lstrip()

class TemplateTagTest(TestCase):
def setUp(self):
self.maxDiff = None
self.factory = RequestFactory()
self.template = Template(tmpl)
self.context = Context()
self.context['object_list'] = Author.objects.all
for i in range(11):
Author.objects.create(name='A'+str(i), rating=10)

def testFind1(self):
self.context['request'] = self.factory.get('/')
result = self.template.render(self.context).strip()
expected = expected_form1+'A0,A1,A2,A3,A4,A5,A6,A7,A8,A9,A10,'
self.assertEqual(result, expected, result)

def testFind2(self):
self.context['request'] = self.factory.get('/?test=test-value')
result = self.template.render(self.context).strip()
expected = expected_form2+'A0,A1,A2,A3,A4,A5,A6,A7,A8,A9,A10,'
self.assertEqual(result, expected, result)

def testFind3(self):
self.context['request'] = self.factory.get('/?test=test-value&q=A1')
result = self.template.render(self.context).strip()
expected = expected_form3+'A1,A10,'
self.assertEqual(result, expected, result)

0 comments on commit cd2fa81

Please sign in to comment.