123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136 |
- import pytest
- from ..providers import Providers
- class Mock:
- def __init__(self, name):
- self.name = name
- @pytest.fixture
- def auth_backend():
- return Mock(name="facebook")
- @pytest.fixture
- def providers(auth_backend):
- obj = Providers()
- obj.add(
- provider="facebook",
- name="Facebook",
- auth_backend=auth_backend,
- settings={"scope": ["email"]},
- admin_form=True,
- admin_template="form.html",
- )
- return obj
- def test_provider_can_be_added_to_providers(auth_backend):
- providers = Providers()
- providers.add(
- provider="facebook",
- name="Facebook",
- auth_backend=auth_backend,
- settings={"scope": ["email"]},
- admin_form=True,
- admin_template="form.html",
- )
- assert providers.dict() == {
- "facebook": {
- "provider": "facebook",
- "name": "Facebook",
- "auth_backend": auth_backend,
- "settings": {"scope": ["email"]},
- "admin_form": True,
- "admin_template": "form.html",
- }
- }
- assert providers.list() == [
- {
- "provider": "facebook",
- "name": "Facebook",
- "auth_backend": auth_backend,
- "settings": {"scope": ["email"]},
- "admin_form": True,
- "admin_template": "form.html",
- }
- ]
- def test_adding_provider_fails_if_provider_key_is_different_from_backend_name(
- auth_backend,
- ):
- providers = Providers()
- with pytest.raises(ValueError):
- providers.add(
- provider="facebook-oauth",
- name="Facebook",
- auth_backend=auth_backend,
- settings={"scope": ["email"]},
- admin_form=True,
- admin_template="form.html",
- )
- assert providers.dict() == {}
- assert providers.list() == []
- def test_providers_list_is_resorted_when_new_provider_is_added(providers, auth_backend):
- other_auth_backend = Mock(name="auth")
- providers.add(
- provider="auth",
- name="Auth",
- auth_backend=other_auth_backend,
- admin_form=True,
- admin_template="form.html",
- )
- assert providers.list() == [
- {
- "provider": "auth",
- "name": "Auth",
- "auth_backend": other_auth_backend,
- "settings": {},
- "admin_form": True,
- "admin_template": "form.html",
- },
- {
- "provider": "facebook",
- "name": "Facebook",
- "auth_backend": auth_backend,
- "settings": {"scope": ["email"]},
- "admin_form": True,
- "admin_template": "form.html",
- },
- ]
- def test_util_returns_true_for_existing_provider(providers):
- assert providers.is_registered("facebook") is True
- def test_util_returns_false_for_nonexisting_provider(providers):
- assert providers.is_registered("github") is False
- def test_getter_returns_given_provider_name(providers):
- assert providers.get_name("facebook") == "Facebook"
- def test_getter_returns_given_provider_auth_backend(providers, auth_backend):
- assert providers.get_auth_backend("facebook") is auth_backend
- def test_getter_returns_given_provider_settings(providers):
- assert providers.get_settings("facebook") == {"scope": ["email"]}
- def test_getter_returns_given_provider_admin_form_class(providers):
- assert providers.get_admin_form_class("facebook") is True
- def test_getter_returns_given_provider_admin_template_name(providers):
- assert providers.get_admin_template_name("facebook") == "form.html"
|