combo/tests/test_public_templatetags.py

61 lines
2.3 KiB
Python

import pytest
from django.template import Context, Template
from django.test.client import RequestFactory
from django.contrib.auth.models import User, Group, AnonymousUser
pytestmark = pytest.mark.django_db
def test_strptime():
t = Template('{% load combo %}{{ someday|strptime:"%Y-%m-%d"|date:"Y" }}')
assert t.render(Context({'someday': '2015-04-15'})) == '2015'
assert t.render(Context({'someday': 'foobar'})) == ''
def test_parse_datetime():
t = Template('{% load combo %}{{ someday|parse_datetime|date:"Y m d H i s T" }}')
expected = '2015 04 15 13 11 12 UTC'
assert t.render(Context({'someday': '2015-04-15T13:11:12'})) == expected
assert t.render(Context({'someday': '2015-04-15T13:11:12Z'})) == expected
assert t.render(Context({'someday': '2015-04-15T13:11:12+00:00'})) == expected
assert t.render(Context({'someday': '2015-04-15T13:11:12.12345'})) == expected
assert t.render(Context({'someday': '2015-04-15T13:11:12.12345Z'})) == expected
assert t.render(Context({'someday': '2015-04-15T13:11:12.12345+00:00'})) == expected
assert t.render(Context({'someday': '2015-04-15T13:11'})) == '2015 04 15 13 11 00 UTC'
assert t.render(Context({'someday': '2015-04-15T13'})) == ''
assert t.render(Context({'someday': 'foobar'})) == ''
assert t.render(Context({'someday': ''})) == ''
def test_has_role():
t = Template('{% load combo %}{{ request.user|has_role:"Role1" }}')
request = RequestFactory().get('/')
user = User(username='foo', email='foo@example.net')
user.save()
request.user = user
context = Context({'request': request})
assert t.render(context) == 'False'
group = Group(name='Role1')
group.save()
user.groups.add(group)
user.save()
assert t.render(context) == 'True'
t = Template('{% load combo %}{{ request.user|has_role:"Role2" }}')
assert t.render(context) == 'False'
group = Group(name='Role2')
group.save()
user.groups.add(group)
user.save()
assert t.render(context) == 'True'
# no request, no user, anonymous user
context = Context()
assert t.render(context) == 'False'
request = RequestFactory().get('/')
context = Context({'request': request})
assert t.render(context) == 'False'
request.user = AnonymousUser()
assert t.render(context) == 'False'