templatetags: Convert tests to pytest style

Signed-off-by: Sunil Mohan Adapa <sunil@medhas.org>
Reviewed-by: Joseph Nuthalapati <njoseph@thoughtworks.com>
This commit is contained in:
Sunil Mohan Adapa 2019-05-01 16:12:14 -07:00 committed by Joseph Nuthalapati
parent 67539e05fc
commit 7bfa3aa3b9
No known key found for this signature in database
GPG Key ID: 5398F00A2FA43C35

View File

@ -18,49 +18,45 @@
Test module for custom Django template tags.
"""
import unittest
from plinth.templatetags import plinth_extras
class TestShowSubSubMenu(unittest.TestCase):
"""Verify that the highlighting of the subsubmenu is working correctly"""
def _assert_active_url(menu, url):
"""Verify that only the given url is set as 'active' in the menu"""
for item in menu:
if item['url'] == url:
assert item['active']
else:
assert not item['active']
def assert_active_url(self, menu, url):
"""Verify that only the given url is set as 'active' in the menu"""
for item in menu:
if item['url'] == url:
self.assertTrue(item['active'])
else:
self.assertFalse(item['active'])
@staticmethod
def _verify_active_menuitems(menu):
"""Verify that one and only one menuitem is marked as active"""
return sum([item['active'] for item in menu]) == 1
def _verify_active_menuitems(menu):
"""Verify that one and only one menuitem is marked as active"""
return sum([item['active'] for item in menu]) == 1
def test_highlighting(self):
"""Test detection of active subsubmenu items using request.path"""
menu = [{
'url': '/abc/123/abc/',
'text': 'abc'
}, {
'url': '/abc/123/',
'text': 'overview'
}, {
'url': '/abc/123/crunch/',
'text': 'crunch'
}, {
'url': '/abc/123/create/',
'text': 'create'
}]
tests = [['/abc/123/crunch/new/', '/abc/123/crunch/'], [
'/abc/123/create/', '/abc/123/create/'
], ['/abc/123/nolink/', '/abc/123/'], ['/abc/123/abx/', '/abc/123/'],
['/abc/123/ab/', '/abc/123/'], ['/abc/123/', '/abc/123/']]
def test_highlighting():
"""Test detection of active subsubmenu items using request.path"""
menu = [{
'url': '/abc/123/abc/',
'text': 'abc'
}, {
'url': '/abc/123/',
'text': 'overview'
}, {
'url': '/abc/123/crunch/',
'text': 'crunch'
}, {
'url': '/abc/123/create/',
'text': 'create'
}]
for check_path, expected_active_path in tests:
menu = plinth_extras.mark_active_menuitem(menu, check_path)
self.assert_active_url(menu, expected_active_path)
self.assertTrue(self._verify_active_menuitems(menu))
tests = [['/abc/123/crunch/new/', '/abc/123/crunch/'], [
'/abc/123/create/', '/abc/123/create/'
], ['/abc/123/nolink/', '/abc/123/'], ['/abc/123/abx/', '/abc/123/'],
['/abc/123/ab/', '/abc/123/'], ['/abc/123/', '/abc/123/']]
for check_path, expected_active_path in tests:
menu = plinth_extras.mark_active_menuitem(menu, check_path)
_assert_active_url(menu, expected_active_path)
assert _verify_active_menuitems(menu)