93 lines
2.9 KiB
Python
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'
|