test_disabling_providers.py 1.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748
  1. import pytest
  2. from django.urls import reverse
  3. from ....cache.test import assert_invalidates_cache
  4. from ... import SOCIALAUTH_CACHE
  5. @pytest.fixture
  6. def admin_link(provider):
  7. return reverse(
  8. "misago:admin:settings:socialauth:disable", kwargs={"pk": provider.pk}
  9. )
  10. def test_provider_can_be_disabled(admin_client, admin_link, provider):
  11. admin_client.post(admin_link)
  12. provider.refresh_from_db()
  13. assert not provider.is_active
  14. def test_disabling_provider_invalidates_cache(admin_client, admin_link):
  15. with assert_invalidates_cache(SOCIALAUTH_CACHE):
  16. admin_client.post(admin_link)
  17. def test_already_disabled_provider_cant_be_disabled(admin_client, disabled_provider):
  18. admin_link = reverse(
  19. "misago:admin:settings:socialauth:disable", kwargs={"pk": disabled_provider.pk}
  20. )
  21. admin_client.post(admin_link)
  22. disabled_provider.refresh_from_db()
  23. assert not disabled_provider.is_active
  24. def test_provider_that_wasnt_setup_yet_cant_be_disabled(admin_client):
  25. admin_link = reverse(
  26. "misago:admin:settings:socialauth:disable", kwargs={"pk": "github"}
  27. )
  28. response = admin_client.post(admin_link)
  29. assert response.status_code == 302
  30. def test_undefined_provider_cant_be_disabled(admin_client):
  31. admin_link = reverse(
  32. "misago:admin:settings:socialauth:disable", kwargs={"pk": "undefined"}
  33. )
  34. response = admin_client.post(admin_link)
  35. assert response.status_code == 302