Files
ACORE/core/test_utils.py
2026-09-21 20:37:18 +03:00

30 lines
1.1 KiB
Python

"""Общие хелперы для тестов ACORE."""
def login_past_2fa(client, user):
"""force_login + прохождение обязательного 2FA-гейта (staff, HR, IT)."""
from core.security import user_requires_mandatory_2fa
client.force_login(user)
if user_requires_mandatory_2fa(user) and not user.totp_enabled:
user.totp_enabled = True
user.save(update_fields=['totp_enabled'])
session = client.session
session['2fa_verified'] = True
session.save()
# Обратная совместимость с существующими тестами.
login_2fa = login_past_2fa
def grant_all_locations(user):
"""Явная область всей сети для тестов центральных операторов."""
from django.contrib.auth.models import Permission
user.user_permissions.add(Permission.objects.get(
content_type__app_label='locations', codename='view_all_locations',
))
for key in ('_perm_cache', '_user_perm_cache', '_group_perm_cache'):
user.__dict__.pop(key, None)
return user