Skip to content

Commit

Permalink
Add tests for login required decorator
Browse files Browse the repository at this point in the history
  • Loading branch information
rafalp committed Aug 3, 2024
1 parent 0da9def commit be769a5
Show file tree
Hide file tree
Showing 2 changed files with 38 additions and 4 deletions.
5 changes: 1 addition & 4 deletions misago/auth/decorators.py
Original file line number Diff line number Diff line change
Expand Up @@ -26,12 +26,9 @@ def login_required_decorator(request, *args, **kwargs):
)

if not request.user.is_authenticated:
if request.is_htmx:
if request.is_htmx or is_misago_login_page_disabled():
raise PermissionDenied(login_message)

if is_misago_login_page_disabled():
pass

return login(
request,
message=login_message,
Expand Down
37 changes: 37 additions & 0 deletions misago/auth/tests/test_login_required_decorator.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,37 @@
from django.test import override_settings
from django.urls import reverse

from ...conf.test import override_dynamic_settings
from ...test import assert_contains, assert_not_contains


def test_require_login_decorator_displays_login_form_to_guests(db, client):
response = client.get(reverse("misago:account-preferences"))
assert_contains(response, "page-login")
assert_contains(response, "Sign in")


def test_require_login_decorator_displays_view_to_authenticated(user_client):
response = user_client.get(reverse("misago:account-preferences"))
assert_not_contains(response, "page-login")


@override_settings(LOGIN_URL="/other/login/")
def test_require_login_decorator_displays_permisison_denied_if_custom_login_page_is_enabled(
db, client
):
response = client.get(reverse("misago:account-preferences"))
assert response.status_code == 403


@override_dynamic_settings(
enable_oauth2_client=True,
oauth2_provider="OAuth2",
)
def test_require_login_decorator_displays_delegated_login_form_if_auth_is_delegated(
db, client
):
response = client.get(reverse("misago:account-preferences"))
assert_contains(response, "page-login")
assert_contains(response, "Sign in")
assert_contains(response, "Sign in with OAuth2")

0 comments on commit be769a5

Please sign in to comment.