lib: add tests for sentry integration

This commit is contained in:
Jens Langhammer 2020-12-13 18:41:43 +01:00
parent f056b026d6
commit ea6ca23f57
2 changed files with 14 additions and 55 deletions

View file

@ -1,55 +0,0 @@
"""authentik lib navbar Templatetag"""
from django import template
from django.http import HttpRequest
from structlog import get_logger
register = template.Library()
LOGGER = get_logger()
ACTIVE_STRING = "pf-m-current"
@register.simple_tag(takes_context=True)
def is_active(context, *args: str, **_) -> str:
"""Return whether a navbar link is active or not."""
request: HttpRequest = context.get("request")
if not request.resolver_match:
return ""
match = request.resolver_match
for url in args:
if ":" in url:
app_name, url = url.split(":")
if match.app_name == app_name and match.url_name == url:
return ACTIVE_STRING
else:
if match.url_name == url:
return ACTIVE_STRING
return ""
@register.simple_tag(takes_context=True)
def is_active_url(context, view: str) -> str:
"""Return whether a navbar link is active or not."""
request: HttpRequest = context.get("request")
if not request.resolver_match:
return ""
match = request.resolver_match
current_full_url = f"{match.app_name}:{match.url_name}"
if current_full_url == view:
return ACTIVE_STRING
return ""
@register.simple_tag(takes_context=True)
def is_active_app(context, *args: str) -> str:
"""Return True if current link is from app"""
request: HttpRequest = context.get("request")
if not request.resolver_match:
return ""
for app_name in args:
if request.resolver_match.app_name == app_name:
return ACTIVE_STRING
return ""

View file

@ -0,0 +1,14 @@
"""test sentry integration"""
from django.test import TestCase
from authentik.lib.sentry import before_send, SentryIgnoredException
class TestSentry(TestCase):
"""test sentry integration"""
def error_not_sent(self):
"""Test SentryIgnoredError not sent"""
self.assertIsNone(before_send(None, {"exc_info": (0, SentryIgnoredException(), 0)}))
def error_sent(self):
"""Test error sent"""
self.assertIsNone(before_send(None, {"exc_info": (0, ValueError(), 0)}))