test_logout_from_admin.py 1.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041
  1. from django.contrib.messages import get_messages
  2. from django.urls import reverse
  3. from ...test import assert_contains
  4. from ..auth import is_admin_session
  5. admin_logout_link = reverse("misago:admin:logout")
  6. site_logout_link = reverse("misago:logout")
  7. site_link = reverse("misago:index")
  8. def test_admin_can_logout_from_admin_site_but_stay_logged(
  9. admin_client, superuser
  10. ):
  11. response = admin_client.post(admin_logout_link)
  12. assert response.wsgi_request.user == superuser
  13. assert not is_admin_session(response.wsgi_request)
  14. def test_admin_is_redirected_to_site_on_logout(admin_client, superuser):
  15. response = admin_client.post(admin_logout_link)
  16. assert response.status_code == 302
  17. assert response["location"] == site_link
  18. def test_admin_is_displayed_a_message_after_logout(admin_client, superuser):
  19. response = admin_client.post(admin_logout_link)
  20. message = list(get_messages(response.wsgi_request))[0]
  21. assert str(message) == "Your admin session has been closed."
  22. def test_admin_can_logout_from_entire_site(admin_client):
  23. response = admin_client.post(site_logout_link)
  24. assert response.wsgi_request.user.is_anonymous
  25. assert not is_admin_session(response.wsgi_request)
  26. def test_admin_is_redirected_to_site_on_logout(admin_client, superuser):
  27. response = admin_client.post(admin_logout_link)
  28. assert response.status_code == 302
  29. assert response["location"] == site_link