authentic/tests/test_auth_saml.py

41 lines
1.1 KiB
Python

import pytest
from django.contrib.auth import get_user_model
from authentic2.models import Attribute
pytestmark = pytest.mark.django_db
def test_provision_attributes():
from authentic2_auth_saml.adapters import AuthenticAdapter
adapter = AuthenticAdapter()
User = get_user_model()
Attribute.objects.create(kind='title', name='title', label='title')
user = User.objects.create()
idp = {
'A2_ATTRIBUTE_MAPPING': [
{
'attribute': 'email',
'saml_attribute': 'mail',
'mandatory': True,
},
{
'attribute': 'title',
'saml_attribute': 'title',
},
]
}
saml_attributes = {
u'mail': u'john.doe@example.com',
u'title': u'Mr.',
}
adapter.finish_create_user(idp, saml_attributes, user)
assert user.email == 'john.doe@example.com'
assert user.attributes.title == 'Mr.'
del saml_attributes['mail']
with pytest.raises(ValueError):
adapter.finish_create_user(idp, saml_attributes, user)