From a8918ebe86f0a6e76ff1bd3f45c113cef7010c81 Mon Sep 17 00:00:00 2001 From: Sli Date: Tue, 9 Jul 2024 16:55:07 +0200 Subject: [PATCH] Fix forum topic creation --- forum/models.py | 2 ++ forum/tests.py | 25 ++++++++++++++++++++++++- 2 files changed, 26 insertions(+), 1 deletion(-) diff --git a/forum/models.py b/forum/models.py index 92a233aa..fef7704a 100644 --- a/forum/models.py +++ b/forum/models.py @@ -390,6 +390,8 @@ class ForumMessage(models.Model): ) def is_deleted(self): + if self.id is None: + return False meta = self.metas.exclude(action="EDIT").order_by("-date").first() if meta: return meta.action == "DELETE" diff --git a/forum/tests.py b/forum/tests.py index 48d8f1f6..564e28c2 100644 --- a/forum/tests.py +++ b/forum/tests.py @@ -13,4 +13,27 @@ # # -# Create your tests here. +import pytest +from django.test import Client +from django.urls import reverse + +from core.models import User +from forum.models import Forum, ForumTopic + + +@pytest.mark.django_db +class TestTopicCreation: + def test_topic_creation(self, client: Client): + user: User = User.objects.get(username="root") + forum = Forum.objects.get(name="AE") + client.force_login(user) + payload = { + "title": "Hello IT.", + "message": "Have you tried turning it off and on again ?", + } + assert not ForumTopic.objects.filter(_title=payload["title"]).first() + response = client.post(reverse("forum:new_topic", args=str(forum.id)), payload) + assert response.status_code == 302 + topic = ForumTopic.objects.filter(_title=payload["title"]).first() + assert topic + assert topic.last_message.message == payload["message"]