Implement user-specific question numbering and update database schema. Added triggers for automatic question numbering and adjustments upon deletion. Enhanced CRUD operations to manage user_question_number effectively.
This commit is contained in:
126
tests/unit/models/test_question.py
Normal file
126
tests/unit/models/test_question.py
Normal file
@@ -0,0 +1,126 @@
|
||||
"""
|
||||
Тесты для модели Question и QuestionStatus
|
||||
|
||||
Что тестировать:
|
||||
- Создание объекта Question
|
||||
- QuestionStatus enum (все значения)
|
||||
- Валидация полей (message_text, answer_text, etc.)
|
||||
- Методы форматирования
|
||||
- Статусы вопросов (pending, answered, rejected, deleted)
|
||||
- Временные поля (created_at, answered_at)
|
||||
- Анонимность (is_anonymous)
|
||||
- Связи с пользователями (from_user_id, to_user_id)
|
||||
- Методы изменения статуса
|
||||
- Валидация длины текста
|
||||
"""
|
||||
import pytest
|
||||
from datetime import datetime
|
||||
from models.question import Question, QuestionStatus
|
||||
|
||||
|
||||
class TestQuestionStatus:
|
||||
"""Тесты для enum QuestionStatus"""
|
||||
|
||||
def test_question_status_values(self):
|
||||
"""Тест всех значений QuestionStatus"""
|
||||
# TODO: Реализовать тест
|
||||
pass
|
||||
|
||||
def test_question_status_string_values(self):
|
||||
"""Тест строковых значений QuestionStatus"""
|
||||
# TODO: Реализовать тест
|
||||
pass
|
||||
|
||||
|
||||
class TestQuestion:
|
||||
"""Тесты для модели Question"""
|
||||
|
||||
def test_question_creation_basic(self):
|
||||
"""Тест базового создания вопроса"""
|
||||
# TODO: Реализовать тест
|
||||
pass
|
||||
|
||||
def test_question_creation_with_all_fields(self):
|
||||
"""Тест создания вопроса со всеми полями"""
|
||||
# TODO: Реализовать тест
|
||||
pass
|
||||
|
||||
def test_question_validation_message_text_required(self):
|
||||
"""Тест обязательности message_text"""
|
||||
# TODO: Реализовать тест
|
||||
pass
|
||||
|
||||
def test_question_validation_to_user_id_required(self):
|
||||
"""Тест обязательности to_user_id"""
|
||||
# TODO: Реализовать тест
|
||||
pass
|
||||
|
||||
def test_question_default_status(self):
|
||||
"""Тест статуса по умолчанию"""
|
||||
# TODO: Реализовать тест
|
||||
pass
|
||||
|
||||
def test_question_default_anonymous(self):
|
||||
"""Тест анонимности по умолчанию"""
|
||||
# TODO: Реализовать тест
|
||||
pass
|
||||
|
||||
def test_question_default_is_read(self):
|
||||
"""Тест флага is_read по умолчанию"""
|
||||
# TODO: Реализовать тест
|
||||
pass
|
||||
|
||||
def test_question_created_at_timestamp(self):
|
||||
"""Тест временной метки создания"""
|
||||
# TODO: Реализовать тест
|
||||
pass
|
||||
|
||||
def test_question_answer_timestamp(self):
|
||||
"""Тест временной метки ответа"""
|
||||
# TODO: Реализовать тест
|
||||
pass
|
||||
|
||||
def test_question_mark_as_answered(self):
|
||||
"""Тест метода mark_as_answered"""
|
||||
# TODO: Реализовать тест
|
||||
pass
|
||||
|
||||
def test_question_mark_as_rejected(self):
|
||||
"""Тест метода mark_as_rejected"""
|
||||
# TODO: Реализовать тест
|
||||
pass
|
||||
|
||||
def test_question_mark_as_deleted(self):
|
||||
"""Тест метода mark_as_deleted"""
|
||||
# TODO: Реализовать тест
|
||||
pass
|
||||
|
||||
def test_question_mark_as_read(self):
|
||||
"""Тест метода mark_as_read"""
|
||||
# TODO: Реализовать тест
|
||||
pass
|
||||
|
||||
def test_question_formatting_methods(self):
|
||||
"""Тест методов форматирования"""
|
||||
# TODO: Реализовать тест
|
||||
pass
|
||||
|
||||
def test_question_validation_message_length(self):
|
||||
"""Тест валидации длины сообщения"""
|
||||
# TODO: Реализовать тест
|
||||
pass
|
||||
|
||||
def test_question_validation_answer_length(self):
|
||||
"""Тест валидации длины ответа"""
|
||||
# TODO: Реализовать тест
|
||||
pass
|
||||
|
||||
def test_question_serialization(self):
|
||||
"""Тест сериализации вопроса"""
|
||||
# TODO: Реализовать тест
|
||||
pass
|
||||
|
||||
def test_question_deserialization(self):
|
||||
"""Тест десериализации вопроса"""
|
||||
# TODO: Реализовать тест
|
||||
pass
|
||||
Reference in New Issue
Block a user