hobo/tests/test_user_name.py

45 lines
1.2 KiB
Python

import pytest
from django.contrib.auth.models import User
from django.test import override_settings
from hobo.agent.common.models import UserExtraAttributes
from hobo.user_name.apps import get_full_name
@pytest.fixture
def user(db):
u = User.objects.create(
first_name='Jane',
last_name='Doe',
)
UserExtraAttributes.objects.create(user=u, data={'foo': 'bar'})
return u
def test_user_original_get_full_name(user):
assert user.original_get_full_name() == 'Jane Doe'
def test_user_cached_extra_attributes(user):
assert user.attributes == {'foo': 'bar'}
def test_user_cached_extra_attributes_missing_fallbacks_to_empty_dict(user):
user.extra_attributes.delete()
user.refresh_from_db()
assert user.attributes == {}
def test_user_get_full_name_from_template(user):
with override_settings(
TEMPLATE_VARS={'user_full_name_template': '{{ user.first_name }} {{ user.attributes.foo }}'}
):
assert get_full_name(user) == 'Jane bar'
def test_user_get_full_name(user):
with override_settings(
TEMPLATE_VARS={'user_full_name_template': '{{ user.first_name }} {{ user.attributes.foo }}'}
):
assert user.get_full_name() == 'Jane bar'