Для тестирования к примеру декораторов вью и темплейттэгов приходится выносить логику принятия решения во внешнюю функцию чтобы можно было замокать результат.
(тестирование из SELENIUM)
Я чтото делаю не так или это и есть тестируемый код?
пример:
def group_required(*group_names):
"""Requires user membership in at least one of the groups passed in."""
def in_groups(user):
groups = ['SMD-'+i for i in group_names]
return has_access(user, groups)
return user_passes_test(in_groups)
def has_access(user, groups):
if user.groups.filter(name__in=groups).exists():
return True
else:
raise PermissionDenied