test_editing_provider.py 3.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102
  1. from django.urls import reverse
  2. from ....cache.test import assert_invalidates_cache
  3. from ....test import assert_contains
  4. from ... import SOCIALAUTH_CACHE
  5. from ...models import SocialAuthProvider
  6. def test_form_displays_for_enabled_provider(admin_client, provider):
  7. response = admin_client.get(
  8. reverse("misago:admin:settings:socialauth:edit", kwargs={"pk": provider.pk})
  9. )
  10. assert response.status_code == 200
  11. def test_form_displays_for_disabled_provider(admin_client, disabled_provider):
  12. response = admin_client.get(
  13. reverse(
  14. "misago:admin:settings:socialauth:edit", kwargs={"pk": disabled_provider.pk}
  15. )
  16. )
  17. assert response.status_code == 200
  18. def test_form_displays_for_unset_provider(admin_client):
  19. response = admin_client.get(
  20. reverse("misago:admin:settings:socialauth:edit", kwargs={"pk": "facebook"})
  21. )
  22. assert response.status_code == 200
  23. def test_form_handles_undefined_provider(admin_client):
  24. response = admin_client.get(
  25. reverse("misago:admin:settings:socialauth:edit", kwargs={"pk": "undefined"})
  26. )
  27. assert response.status_code == 302
  28. def test_form_displays_provider_settings(admin_client, provider):
  29. provider.settings = {"key": "test-key", "secret": "test-secret"}
  30. provider.save()
  31. response = admin_client.get(
  32. reverse("misago:admin:settings:socialauth:edit", kwargs={"pk": provider.pk})
  33. )
  34. assert_contains(response, "test-key")
  35. assert_contains(response, "test-secret")
  36. def test_form_updates_provider_settings(admin_client, provider):
  37. admin_client.post(
  38. reverse("misago:admin:settings:socialauth:edit", kwargs={"pk": provider.pk}),
  39. {"key": "test-key", "secret": "test-secret"},
  40. )
  41. provider.refresh_from_db()
  42. assert provider.settings == {
  43. "associate_by_email": 0,
  44. "key": "test-key",
  45. "secret": "test-secret",
  46. }
  47. def test_form_updates_provider_button_text(admin_client, provider):
  48. admin_client.post(
  49. reverse("misago:admin:settings:socialauth:edit", kwargs={"pk": provider.pk}),
  50. {"button_text": "Hello world!"},
  51. )
  52. provider.refresh_from_db()
  53. assert provider.button_text == "Hello world!"
  54. def test_form_updates_provider_button_color(admin_client, provider):
  55. admin_client.post(
  56. reverse("misago:admin:settings:socialauth:edit", kwargs={"pk": provider.pk}),
  57. {"button_color": "#ff00ff"},
  58. )
  59. provider.refresh_from_db()
  60. assert provider.button_color == "#ff00ff"
  61. def test_form_invalidates_providers_cache(admin_client, provider):
  62. with assert_invalidates_cache(SOCIALAUTH_CACHE):
  63. admin_client.post(
  64. reverse(
  65. "misago:admin:settings:socialauth:edit", kwargs={"pk": provider.pk}
  66. ),
  67. {"is_active": "0"},
  68. )
  69. def test_form_sets_provider_order_on_setup(admin_client, other_provider):
  70. admin_client.post(
  71. reverse("misago:admin:settings:socialauth:edit", kwargs={"pk": "facebook"}),
  72. {"is_active": "1", "key": "test-key", "secret": "test-secret"},
  73. )
  74. provider = SocialAuthProvider.objects.get(pk="facebook")
  75. assert provider.order == other_provider.order + 1