test_facebook_form.py 1.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960
  1. import pytest
  2. from django.urls import reverse
  3. from ...models import SocialAuthProvider
  4. admin_link = reverse("misago:admin:settings:socialauth:edit", kwargs={"pk": "facebook"})
  5. @pytest.fixture
  6. def provider(db):
  7. return SocialAuthProvider.objects.create(
  8. provider="facebook", is_active=True, order=0
  9. )
  10. def test_facebook_form_can_be_accessed(admin_client):
  11. response = admin_client.get(admin_link)
  12. assert response.status_code == 200
  13. def test_facebook_login_can_be_setup(admin_client):
  14. admin_client.post(
  15. admin_link,
  16. {
  17. "is_active": "1",
  18. "associate_by_email": "1",
  19. "key": "test-key",
  20. "secret": "test-secret",
  21. },
  22. )
  23. provider = SocialAuthProvider.objects.get(provider="facebook")
  24. assert provider.is_active
  25. assert provider.settings == {
  26. "associate_by_email": 1,
  27. "key": "test-key",
  28. "secret": "test-secret",
  29. }
  30. def test_facebook_login_can_be_disabled(admin_client, provider):
  31. admin_client.post(admin_link, {"is_active": "0"})
  32. provider = SocialAuthProvider.objects.get(provider="facebook")
  33. assert not provider.is_active
  34. def test_facebook_login_form_requires_key_to_setup(admin_client):
  35. admin_client.post(admin_link, {"is_active": "1", "secret": "test-secret"})
  36. with pytest.raises(SocialAuthProvider.DoesNotExist):
  37. SocialAuthProvider.objects.get(provider="facebook")
  38. def test_facebook_login_form_requires_secret_to_setup(admin_client):
  39. admin_client.post(admin_link, {"is_active": "1", "key": "test-key"})
  40. with pytest.raises(SocialAuthProvider.DoesNotExist):
  41. SocialAuthProvider.objects.get(provider="facebook")