test_generic_admin_list_view.py 1.8 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849
  1. from urllib.parse import urlencode
  2. from django.urls import reverse
  3. list_link = reverse("misago:admin:users: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
  26. def test_restoring_filters_from_session_handles_filters_entry_being_none(admin_client):
  27. """Regression test for https://github.com/rafalp/Misago/pull/1177"""
  28. response = admin_client.get("%s?set_filters=1&rank=1" % list_link)
  29. assert response.status_code == 302
  30. response = admin_client.get("%s?set_filters=0" % list_link)
  31. assert response.status_code == 302
  32. response = admin_client.get("%s?redirected=1" % list_link)
  33. assert response.status_code == 200