-
Notifications
You must be signed in to change notification settings - Fork 3
/
Copy pathtest_template.py
105 lines (87 loc) · 3.64 KB
/
test_template.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
from django.test import TestCase, RequestFactory
from django.template import Template, RequestContext
class TemplateTagTest(TestCase):
def setUp(self):
self.factory = RequestFactory()
request = self.factory.get('/teste')
context = RequestContext(request=request)
template_to_render = Template(
'{% load flags %}'
'{% languages %}'
)
self.rendered_template = template_to_render.render(context)
def test_has_tags(self):
"""Must contains the tags in HTML"""
tags = (
'<li',
'<a href="#pt-br"',
'<a href="#en"',
'<span class="flag-icon flag-icon-pt-br',
'<span class="flag-icon flag-icon-en'
)
for text in tags:
with self.subTest():
self.assertIn(text, self.rendered_template)
def test_has_link_css(self):
"""Must have the link tag with css registration"""
contents = [
'<link rel="stylesheet" type="text/css" href="/static/css/django-translation-flags.min.css">'
]
for expected in contents:
with self.subTest():
self.assertIn(expected, self.rendered_template)
def test_has_jquery_function(self):
"""Must have the script tag with jQuery registration"""
contents = [
'<script type="text/javascript">',
'function set_language(language) {',
'$(\'input[name="language"]\').val(language);',
'$(\'form#setlang\').submit();',
'}',
'</script>',
]
for expected in contents:
with self.subTest():
self.assertIn(expected, self.rendered_template)
def test_has_no_class_square(self):
"""Don't Must contains the class 'flag-icon-square' in HTML"""
self.assertNotIn('flag-icon-square', self.rendered_template)
class TemplatetagWithSquareTest(TestCase):
def setUp(self):
self.factory = RequestFactory()
request = self.factory.get('/teste')
context = RequestContext(request=request)
template_to_render = Template(
'{% load flags %}'
"{% languages 'square' %}"
)
self.rendered_template = template_to_render.render(context)
def test_has_class(self):
"""Must contains the class 'flag-icon-square' in HTML"""
icon_class = 'flag-icon-square'
self.assertIn(icon_class, self.rendered_template)
def test_count_class(self):
"""Must count the class 'flag-icon-square' in HTML"""
self.assertEqual(2, self.rendered_template.count('flag-icon-square'))
class TemplatetagWithKwargsTest(TestCase):
def setUp(self):
self.factory = RequestFactory()
request = self.factory.get('/teste')
context = RequestContext(request=request)
template_to_render = Template(
'{% load flags %}'
"{% languages 'square' li_class='your-li-class' a_class='your-a-class' %}"
)
self.rendered_template = template_to_render.render(context)
def test_has_class(self):
"""Must contains the classes in HTML"""
kw_classes = ['your-li-class', 'your-a-class']
for expected in kw_classes:
with self.subTest():
self.assertIn(expected, self.rendered_template)
def test_count_li_class(self):
"""Must count the class 'your-li-class' in HTML"""
self.assertEqual(2, self.rendered_template.count('your-li-class'))
def test_count_a_class(self):
"""Must count the class 'flag-icon-square' in HTML"""
self.assertEqual(2, self.rendered_template.count('your-a-class'))