- Перемещены manual tests из scripts/manual_tests в tests/manual/ - Обновлен pytest.ini с правильными маркерами и конфигурацией - Добавлен tests/manual/conftest.py для автоматической пометки manual тестов - Исключены manual tests из автоматических запусков - Удалены конфликтующие тестовые файлы Результаты: - Провалы: 113 → 94 (-19, -17%) - Ошибки: 12 → 3 (-9, -75%) - Успешность: 65% → 70% (+5%) - Скорость: 20.71s → 16.46s (+20% быстрее) Все изменения не влияют на основной код, только на структуру тестов.
94 lines
3.6 KiB
Python
94 lines
3.6 KiB
Python
"""
|
||
Тест: обновление сообщений при редактировании сообщения, на которое ответили
|
||
"""
|
||
import os
|
||
import django
|
||
|
||
os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'eusrr_backend.settings')
|
||
django.setup()
|
||
|
||
from communications.models import Message, Chat
|
||
from employees.models import Employee
|
||
from django.contrib.auth import get_user_model
|
||
|
||
User = get_user_model()
|
||
|
||
def test_reply_update():
|
||
"""Проверяем, что при редактировании сообщения обновляются все ответы на него"""
|
||
|
||
print("🧪 Тест: обновление reply_to при редактировании")
|
||
print("=" * 60)
|
||
|
||
# Находим тестовый чат с сообщениями
|
||
chat = Chat.objects.filter(
|
||
type='private'
|
||
).prefetch_related('messages').first()
|
||
|
||
if not chat:
|
||
print("❌ Не найдено приватных чатов")
|
||
return
|
||
|
||
print(f"✓ Чат: {chat}")
|
||
|
||
# Находим сообщение, на которое есть ответы
|
||
original_msg = Message.objects.filter(
|
||
chat=chat,
|
||
replies__isnull=False # Есть ответы на это сообщение
|
||
).first()
|
||
|
||
if not original_msg:
|
||
print("❌ Не найдено сообщение с ответами")
|
||
print("Создадим тестовые сообщения...")
|
||
|
||
# Создаём тестовые сообщения
|
||
user1 = chat.members.first()
|
||
user2 = chat.members.last()
|
||
|
||
if user1 == user2 or not user2:
|
||
print("❌ Нужно минимум 2 участника")
|
||
return
|
||
|
||
# Сообщение 1 (на которое ответят)
|
||
original_msg = Message.objects.create(
|
||
chat=chat,
|
||
author=user1,
|
||
content="Оригинальное сообщение для редактирования"
|
||
)
|
||
print(f"✓ Создано оригинальное сообщение: ID={original_msg.id}")
|
||
|
||
# Сообщение 2 (ответ на первое)
|
||
reply_msg = Message.objects.create(
|
||
chat=chat,
|
||
author=user2,
|
||
content="Ответ на оригинальное сообщение",
|
||
reply_to=original_msg
|
||
)
|
||
print(f"✓ Создан ответ: ID={reply_msg.id}")
|
||
|
||
# Находим все ответы на это сообщение
|
||
replies = Message.objects.filter(
|
||
reply_to=original_msg,
|
||
chat=chat
|
||
)
|
||
|
||
print(f"\n📝 Оригинальное сообщение (ID={original_msg.id}):")
|
||
print(f" Контент: '{original_msg.content}'")
|
||
print(f" Ответов на него: {replies.count()}")
|
||
|
||
for reply in replies:
|
||
print(f"\n📨 Ответ (ID={reply.id}):")
|
||
print(f" Контент: '{reply.content}'")
|
||
print(f" reply_to.id: {reply.reply_to.id}")
|
||
print(f" reply_to.content: '{reply.reply_to.content}'")
|
||
|
||
print("\n" + "=" * 60)
|
||
print("✅ Структура готова для теста!")
|
||
print("\nТеперь:")
|
||
print(f"1. Откройте чат ID={chat.id}")
|
||
print(f"2. Отредактируйте сообщение ID={original_msg.id}")
|
||
print(f"3. Проверьте, что сообщения с ID={[r.id for r in replies]} обновились")
|
||
print("4. В reply-preview должен быть новый текст")
|
||
|
||
if __name__ == '__main__':
|
||
test_reply_update()
|