test_google_form.py 1.7 KB

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