У меня есть собственный simple_tag, который я определил следующим образом:
@register.simple_tag
# usage: {% get_contact_preference_string user %}
def get_contact_preference_string(user):
if user.contact_choice == 'C':
return '{} prefers phone calls.'.format(user.first_name)
# method continues
И шаблон, который правильно загружает тег и использует его.
Однако я изо всех сил пытаюсьпередать имитирующего пользователя в модульных тестах.Вот как я пытаюсь написать тест:
def test_get_contact_preference_string_returns_correctly_formatted_content(self):
test_customer = Customer.objects.create('tfirst', 'C')
template_to_render = Template(
'{% load contact_preference_helpers %}'
'{% get_contact_preference_string test_customer %}'
)
rendered = template_to_render.render(test_customer)
expected = 'tfirst prefers phone calls.'
self.assertEqual(rendered, expected)
Повышение AttributeError: 'NoneType' object has no attribute 'contact_choice'
при нажатии render(test_customer)
, поэтому я знаю, что неправильно передаю фиктивный объект.Я также пытался передать {'user': test_customer}
безрезультатно.
Что я делаю не так?