test_repository_provider.py 1.9 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455
  1. from sentry.plugins.providers.dummy.repository import DummyRepositoryProvider
  2. from sentry.testutils.cases import TestCase
  3. from sentry.testutils.silo import control_silo_test
  4. from social_auth.models import UserSocialAuth
  5. @control_silo_test
  6. class RepositoryProviderTest(TestCase):
  7. def test_needs_auth_for_user(self):
  8. user = self.create_user()
  9. provider = DummyRepositoryProvider(id="dummy")
  10. # if no org is provided, user needs auth
  11. assert provider.needs_auth(user) is True
  12. UserSocialAuth.objects.create(provider="dummy", user=user)
  13. assert provider.needs_auth(user) is False
  14. def test_needs_auth_for_organization(self):
  15. user = self.create_user()
  16. provider = DummyRepositoryProvider(id="dummy")
  17. org = self.create_organization()
  18. integration = self.create_provider_integration(provider="dummy", external_id="123456")
  19. integration.add_organization(org, user)
  20. assert provider.needs_auth(user, organization=org) is False
  21. def test_get_auth_for_user(self):
  22. user = self.create_user()
  23. provider = DummyRepositoryProvider(id="dummy")
  24. assert provider.get_auth(user) is None
  25. usa = UserSocialAuth.objects.create(provider="dummy", user=user)
  26. auth = provider.get_auth(user)
  27. assert auth
  28. assert auth.id == usa.id
  29. def test_get_auth_for_organization(self):
  30. user = self.create_user()
  31. user2 = self.create_user()
  32. provider = DummyRepositoryProvider(id="dummy")
  33. usa = UserSocialAuth.objects.create(provider="dummy", user=user2)
  34. org = self.create_organization()
  35. integration = self.create_provider_integration(provider="dummy", external_id="123456")
  36. integration.add_organization(org, user, default_auth_id=usa.id)
  37. auth = provider.get_auth(user, organization=org)
  38. assert auth
  39. assert auth.id == usa.id