test_github_form.py 1.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758
  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": "github"})
  5. @pytest.fixture
  6. def provider(db):
  7. return SocialAuthProvider.objects.create(provider="github", is_active=True, order=0)
  8. def test_github_form_can_be_accessed(admin_client):
  9. response = admin_client.get(admin_link)
  10. assert response.status_code == 200
  11. def test_github_login_can_be_setup(admin_client):
  12. admin_client.post(
  13. admin_link,
  14. {
  15. "is_active": "1",
  16. "associate_by_email": "1",
  17. "key": "test-key",
  18. "secret": "test-secret",
  19. },
  20. )
  21. provider = SocialAuthProvider.objects.get(provider="github")
  22. assert provider.is_active
  23. assert provider.settings == {
  24. "associate_by_email": 1,
  25. "key": "test-key",
  26. "secret": "test-secret",
  27. }
  28. def test_github_login_can_be_disabled(admin_client, provider):
  29. admin_client.post(admin_link, {"is_active": "0"})
  30. provider = SocialAuthProvider.objects.get(provider="github")
  31. assert not provider.is_active
  32. def test_github_login_form_requires_key_to_setup(admin_client):
  33. admin_client.post(admin_link, {"is_active": "1", "secret": "test-secret"})
  34. with pytest.raises(SocialAuthProvider.DoesNotExist):
  35. SocialAuthProvider.objects.get(provider="github")
  36. def test_github_login_form_requires_secret_to_setup(admin_client):
  37. admin_client.post(admin_link, {"is_active": "1", "key": "test-key"})
  38. with pytest.raises(SocialAuthProvider.DoesNotExist):
  39. SocialAuthProvider.objects.get(provider="github")