Инспекция кода

This commit is contained in:
2026-07-18 11:50:42 +03:00
parent 87a4f06d40
commit cc57591e66
13 changed files with 27 additions and 272 deletions

View File

@@ -0,0 +1,12 @@
# DRF Rack
# Библиотека классов расширений для Django REST Framework
#
# Автор: Николай В. Анохин <n.anokhin@xeaf.net>
# Все права защищены. Лицензия: MIT
"""
Пакет описания классов инициализации моделей тестовых данных
"""
from .account_test_data import AccountTestData
from .session_test_data import SessionTestData

View File

@@ -0,0 +1,92 @@
# DRF Rack
# Библиотека классов расширений для Django REST Framework
#
# Автор: Николай В. Анохин <n.anokhin@xeaf.net>
# Все права защищены. Лицензия: MIT
"""
Описание класса AccountTestData
"""
import uuid
from net.xeaf.rack.models import AccountModel
from net.xeaf.rack.utils import DateUtils
class AccountTestData:
"""
Инициализирует модели данных тестовых Аккаунтов
"""
IVANOV_ID = uuid.UUID("bd428358-6944-4657-8044-a3dc1c4dff8a")
""" Идентификатор пользователя Иван Иванов """
IVANOV_USERNAME = 'i.ivanov@xeaf.net'
""" Имя пользователя Иван Иванов """
PETROV_ID = uuid.UUID("9c5010cc-f3be-42ae-bc05-d142d68a610a")
""" Идентификатор пользователя Петр Петров """
PETROV_USERNAME = 'p.petrov@xeaf.net'
""" Имя пользователя Петр Петров """
DEFAULT_PASSWORD = "manager123!"
""" Пароль по умолчанию для тестов """
@classmethod
def init_accounts(cls):
"""
Инициализирует Аккаунты пользователя
"""
cls.init_ivanov_account()
cls.init_petrov_account()
@classmethod
def init_ivanov_account(cls):
"""
Инициализирует Аккаунт пользователя Иван Иванов
"""
account = AccountModel()
account.id = cls.IVANOV_ID
account.username = "i.ivanov@xeaf.net"
account.nick_name = "Иван"
account.full_name = "Иван И. Иванов"
account.email = "i.ivanov@xeaf.net"
account.set_password(cls.DEFAULT_PASSWORD)
account.joined_at = DateUtils.now()
account.save()
@classmethod
def init_petrov_account(cls):
"""
Инициализирует Аккаунт пользователя Петр Петров
"""
account = AccountModel()
account.id = cls.PETROV_ID
account.username = "p.petrov@xeaf.net"
account.nick_name = "Петр"
account.full_name = "Петр П. Петров"
account.email = "p.petrov@xeaf.net"
account.set_password(cls.DEFAULT_PASSWORD)
account.joined_at = DateUtils.now()
account.save()
@classmethod
def get_ivanov_account(cls):
"""
Возвращает аккаунт пользователя Иван Иванов
"""
return AccountModel.objects.get(id=cls.IVANOV_ID)
@classmethod
def get_petrov_account(cls):
"""
Возвращает аккаунт пользователя Петр Петров
"""
return AccountModel.objects.get(id=cls.PETROV_ID)

View File

@@ -0,0 +1,82 @@
# DRF Rack
# Библиотека классов расширений для Django REST Framework
#
# Автор: Николай В. Анохин <n.anokhin@xeaf.net>
# Все права защищены. Лицензия: MIT
"""
Описание класса SessionTestData
"""
from net.xeaf.rack.models import SessionModel
from .account_test_data import AccountTestData
class SessionTestData:
"""
Инициализирует модели данных тестовых Сессий пользователей
"""
IVANOV_SESSION_TOKEN = "ced4217bbd12b10a59a3f9342164793819a29238"
""" Токен сессии пользователя Иван Иванов """
PETROV_SESSION_TOKEN = "1e20d0f236efdda2f31688b6c176bf817cb3357e"
""" Токен сессии пользователя Петр Петров """
TEST_SESSION_TTL = 3600
""" Время жизни тестовой сессии """
@classmethod
def init_sessions(cls):
"""
Инициализирует сессии для тестовых пользователей
"""
cls.init_ivanov_session()
cls.init_petrov_session()
@classmethod
def init_ivanov_session(cls):
"""
Создает Сессию для пользователя Иван Иванов
"""
session = SessionModel()
session.token = cls.IVANOV_SESSION_TOKEN
session.account_id = AccountTestData.IVANOV_ID
session.actual_account_id = AccountTestData.IVANOV_ID
session.renew(cls.TEST_SESSION_TTL)
session.save()
@classmethod
def init_petrov_session(cls):
"""
Создает Сессию для пользователя Петр Петров
"""
session = SessionModel()
session.token = cls.PETROV_SESSION_TOKEN
session.account_id = AccountTestData.PETROV_ID
session.actual_account_id = AccountTestData.PETROV_ID
session.renew(cls.TEST_SESSION_TTL)
session.save()
@classmethod
def get_ivanov_session(cls) -> SessionModel:
"""
Возвращает сессию пользователя Иван Иванов
:return: Сессия пользователя Иван Иванов
"""
return SessionModel.objects.get(token=cls.IVANOV_SESSION_TOKEN)
@classmethod
def get_petrov_session(cls) -> SessionModel:
"""
Возвращает сессию пользователя Петр Петров
:return: Сессия пользователя Петр Петров
"""
return SessionModel.objects.get(token=cls.PETROV_SESSION_TOKEN)