示例#1
0
def test_resolve_provider_type_invalid():
    # unknown type
    with pytest.raises(ValueError):
        assert resolve_provider_type(DummyBase, 'unknown')
    # non-unique type
    with pytest.raises(RuntimeError):
        assert resolve_provider_type(DummyBase, 'multi')
    # invalid type
    with pytest.raises(TypeError):
        assert resolve_provider_type(DummyBase, 'fake')
示例#2
0
def test_resolve_provider_type_invalid():
    # unknown type
    with pytest.raises(ValueError):
        assert resolve_provider_type(DummyBase, 'unknown')
    # non-unique type
    with pytest.raises(RuntimeError):
        assert resolve_provider_type(DummyBase, 'multi')
    # invalid type
    with pytest.raises(TypeError):
        assert resolve_provider_type(DummyBase, 'fake')
示例#3
0
    def _create_providers(self, key, base):
        """Instantiates all providers

        :param key: The key to insert into the config option name
                    ``MULTIPASS_*_PROVIDERS``
        :param base: The base class of the provider type.
        """
        registry = self.provider_registry[AuthProvider if key == 'AUTH' else IdentityProvider]
        providers = {}
        provider_classes = set()
        for name, settings in iteritems(current_app.config['MULTIPASS_{}_PROVIDERS'.format(key)]):
            settings = settings.copy()
            cls = resolve_provider_type(base, settings.pop('type'), registry)
            if not cls.multi_instance and cls in provider_classes:
                raise RuntimeError('Provider does not support multiple instances: ' + cls.__name__)
            providers[name] = cls(self, name, settings)
            provider_classes.add(cls)
        return providers
示例#4
0
    def _create_providers(self, key, base):
        """Instantiates all providers

        :param key: The key to insert into the config option name
                    ``MULTIPASS_*_PROVIDERS``
        :param base: The base class of the provider type.
        """
        registry = self.provider_registry[AuthProvider if key == 'AUTH' else IdentityProvider]
        providers = {}
        provider_classes = set()
        for name, settings in iteritems(current_app.config['MULTIPASS_{}_PROVIDERS'.format(key)]):
            settings = settings.copy()
            cls = resolve_provider_type(base, settings.pop('type'), registry)
            if not cls.multi_instance and cls in provider_classes:
                raise RuntimeError('Provider does not support multiple instances: ' + cls.__name__)
            providers[name] = cls(self, name, settings)
            provider_classes.add(cls)
        return providers
示例#5
0
def test_resolve_provider_type():
    assert resolve_provider_type(DummyBase, 'dummy') is Dummy
示例#6
0
def test_resolve_provider_type_class():
    assert resolve_provider_type(DummyBase, Dummy) is Dummy
    with pytest.raises(TypeError):
        resolve_provider_type(DummyBase, FakeDummy)
示例#7
0
def test_resolve_provider_type():
    assert resolve_provider_type(DummyBase, 'dummy') is Dummy
示例#8
0
def test_resolve_provider_type_class():
    assert resolve_provider_type(DummyBase, Dummy) is Dummy
    with pytest.raises(TypeError):
        resolve_provider_type(DummyBase, FakeDummy)