test_generic_admin_list_view.py 1.3 KB

123456789101112131415161718192021222324252627282930313233343536373839
  1. from urllib.parse import urlencode
  2. from django.urls import reverse
  3. list_link = reverse("misago:admin:users:accounts:index")
  4. def test_view_redirects_if_redirected_flag_is_not_present_in_querystring(admin_client):
  5. response = admin_client.get(list_link)
  6. assert response.status_code == 302
  7. def test_view_sets_redirect_flag_in_redirect_url(admin_client):
  8. response = admin_client.get(list_link)
  9. assert response.status_code == 302
  10. assert "redirected=1" in response["location"]
  11. def test_view_checks_only_redirect_flag_presence_and_not_value(admin_client):
  12. response = admin_client.get(list_link + "?redirected")
  13. assert response.status_code == 200
  14. def test_view_preserves_rest_of_querystring_in_redirect_url(admin_client):
  15. response = admin_client.get(list_link + "?username=test")
  16. assert response.status_code == 302
  17. assert "redirected=1" in response["location"]
  18. assert "username=test" in response["location"]
  19. def test_unicode_is_preserved_in_redirect_querystring(admin_client):
  20. response = admin_client.get(list_link + "?username=łóć")
  21. assert response.status_code == 302
  22. assert urlencode({"username": "łóć"}) in response["location"]
  23. def test_view_is_not_redirecting_if_flag_is_set_in_querystring(admin_client):
  24. response = admin_client.get("%s?redirected=1" % list_link)
  25. assert response.status_code == 200