templates: add true, false, & null aliases to context (#83795)
gitea/authentic/pipeline/head This commit looks good Details

This commit is contained in:
Yann Weber 2024-01-23 18:17:12 +01:00 committed by Yann Weber
parent 02fccc9a0b
commit 7c4462af0e
3 changed files with 46 additions and 0 deletions

View File

@ -101,3 +101,9 @@ def home(request):
ctx['home_ou'] = service.ou
ctx['home_url'] = get_home_url(request)
return ctx
def constant_aliases(request):
'''Provides aliases for true false & null matching python's values
True False & None'''
return {'true': True, 'false': False, 'null': None}

View File

@ -92,6 +92,7 @@ TEMPLATES = [
'django.template.context_processors.static',
'authentic2.context_processors.a2_processor',
'authentic2.context_processors.home',
'authentic2.context_processors.constant_aliases',
'publik_django_templatetags.wcs.context_processors.cards',
],
'builtins': [

View File

@ -14,6 +14,8 @@
# You should have received a copy of the GNU Affero General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
from unittest import mock
from . import utils
@ -52,3 +54,40 @@ def test_home(app, settings, simple_user, service):
assert body.attr('data-home-service-name') == new_service.name
assert body.attr('data-home-ou-slug') == new_service.ou.slug
assert body.attr('data-home-ou-name') == new_service.ou.name
@mock.patch('requests.Session.get')
def test_constant_aliases(request):
from django.template import RequestContext, Template
context = RequestContext(request)
t_true = Template('{% if var == true %}OK{% endif %}')
t_false = Template('{% if var == false %}OK{% endif %}')
t_null = Template('{% if var == null %}OK{% endif %}')
t_is_true = Template('{% if var is true %}OK{% endif %}')
t_is_false = Template('{% if var is false %}OK{% endif %}')
t_is_null = Template('{% if var is null %}OK{% endif %}')
context.update({'var': True})
assert t_true.render(context) == 'OK'
assert t_false.render(context) == ''
assert t_null.render(context) == ''
assert t_is_true.render(context) == 'OK'
assert t_is_false.render(context) == ''
assert t_is_null.render(context) == ''
context.update({'var': False})
assert t_true.render(context) == ''
assert t_false.render(context) == 'OK'
assert t_null.render(context) == ''
assert t_is_true.render(context) == ''
assert t_is_false.render(context) == 'OK'
assert t_is_null.render(context) == ''
context.update({'var': None})
assert t_true.render(context) == ''
assert t_false.render(context) == ''
assert t_null.render(context) == 'OK'
assert t_is_true.render(context) == ''
assert t_is_false.render(context) == ''
assert t_is_null.render(context) == 'OK'