Rafał Pitoń 10 лет назад
Родитель
Сommit
0842dd8fa3
1 измененных файлов с 79 добавлено и 0 удалено
  1. 79 0
      misago/threads/testutils.py

+ 79 - 0
misago/threads/testutils.py

@@ -0,0 +1,79 @@
+from datetime import timedelta
+
+from django.utils import timezone
+
+from misago.core.utils import slugify
+
+from misago.threads.models import Thread, Post
+
+
+def post_thread(forum, title='Test thread', weight=0, poster='Tester',
+                is_moderated=False, is_hidden=False, is_closed=False,
+                started_on=None):
+    started_on = started_on or timezone.now()
+
+    kwargs = {
+        'forum': forum,
+        'weight': weight,
+        'title': title,
+        'slug': slugify(title),
+        'started_on': started_on,
+        'last_post_on': started_on,
+        'is_moderated': is_moderated,
+        'is_hidden': is_hidden,
+        'is_closed': is_closed,
+    }
+
+    try:
+        kwargs.update({
+            'starter': poster,
+            'starter_name': poster.username,
+            'starter_slug': poster.slug,
+            'last_poster': poster,
+            'last_poster_name': poster.username,
+            'last_poster_slug': poster.slug,
+            })
+    except AttributeError:
+        kwargs.update({
+            'starter_name': poster,
+            'starter_slug': slugify(poster),
+            'last_poster_name': poster,
+            'last_poster_slug': slugify(poster),
+        })
+
+    thread = Thread.objects.create(**kwargs)
+    forum.synchronize()
+    forum.save()
+    return thread
+
+
+def reply_thread(thread, poster="Tester", message='I am test message',
+                 is_moderated=False, is_hidden=False, is_reported=False,
+                 posted_on=None, poster_ip='127.0.0.1'):
+    posted_on = posted_on or thread.last_post_on + timedelta(minutes=5)
+
+    kwargs = {
+        'forum': thread.forum,
+        'thread': thread,
+        'original': message,
+        'parsed': message,
+        'checksum': 'nope',
+        'poster_ip': poster_ip,
+        'posted_on': posted_on,
+        'updated_on': posted_on,
+        'is_moderated': is_moderated,
+        'is_hidden': is_hidden,
+        'is_reported': is_reported,
+    }
+
+    try:
+        kwargs.update({'poster': poster, 'poster_name': poster.username})
+    except AttributeError:
+        kwargs.update({'poster_name': poster})
+
+    post = Post.objects.create(**kwargs)
+    thread.synchronize()
+    thread.save()
+    thread.forum.synchronize()
+    thread.forum.save()
+    return post