hobo/tests_authentic/test_user_name.py

93 lines
2.9 KiB
Python

from authentic2.models import Attribute
from django.contrib.auth import get_user_model
from django.test import override_settings
from tenant_schemas.utils import tenant_context
from hobo.user_name.apps import get_full_name
User = get_user_model()
def test_get_full_name_from_template_utils_from_multiple_attrs(db, tenant, settings):
with tenant_context(tenant):
user = User.objects.create(
first_name='Jane',
last_name='Doe',
)
Attribute.objects.create(
name='foo',
label='Foo',
kind='string',
required=False,
multiple=False,
user_visible=True,
user_editable=True,
)
Attribute.objects.create(
name='nicknames',
label='Nicknames',
kind='string',
required=False,
multiple=True,
user_visible=True,
user_editable=True,
)
user.attributes.nicknames = ['Milly', 'Molly', 'Minnie']
user.attributes.foo = 'bar'
user.save()
user.refresh_from_db()
with override_settings(
TEMPLATE_VARS={'user_full_name_template': '{{ user.first_name }} {{ user.attributes.foo }}'}
):
assert get_full_name(user) == 'Jane bar'
with override_settings(
TEMPLATE_VARS={
'user_full_name_template': '{{ user.first_name }} {{ user.attributes.nicknames.0 }} {{ user.attributes.nicknames.2 }}'
}
):
assert get_full_name(user) == 'Jane Milly Minnie'
def test_get_full_name_from_template_accessor_from_multiple_attrs(db, tenant, settings):
with tenant_context(tenant):
user = User.objects.create(
first_name='Jane',
last_name='Doe',
)
Attribute.objects.create(
name='foo',
label='Foo',
kind='string',
required=False,
multiple=False,
user_visible=True,
user_editable=True,
)
Attribute.objects.create(
name='nicknames',
label='Nicknames',
kind='string',
required=False,
multiple=True,
user_visible=True,
user_editable=True,
)
user.attributes.nicknames = ['Milly', 'Molly', 'Minnie']
user.attributes.foo = 'bar'
user.save()
user.refresh_from_db()
with override_settings(
TEMPLATE_VARS={'user_full_name_template': '{{ user.first_name }} {{ user.attributes.foo }}'}
):
assert user.get_full_name() == 'Jane bar'
with override_settings(
TEMPLATE_VARS={
'user_full_name_template': '{{ user.first_name }} {{ user.attributes.nicknames.0 }} {{ user.attributes.nicknames.2 }}'
}
):
assert user.get_full_name() == 'Jane Milly Minnie'