test_events.py 2.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465
  1. #-*- coding: utf-8 -*-
  2. import random
  3. from django.contrib.auth import get_user_model
  4. from django.test import TestCase
  5. from django.utils import timezone
  6. from misago.acl import add_acl
  7. from misago.categories.models import Category
  8. from misago.threads.events import record_event
  9. from misago.threads.models import Post, Thread
  10. from misago.threads.testutils import reply_thread
  11. UserModel = get_user_model()
  12. class MockRequest(object):
  13. def __init__(self, user):
  14. self.user = user
  15. self.user_ip = '123.14.15.222'
  16. class EventsAPITests(TestCase):
  17. def setUp(self):
  18. self.user = UserModel.objects.create_user(
  19. "Bob", "bob@bob.com", "Pass.123")
  20. datetime = timezone.now()
  21. self.category = Category.objects.all_categories()[:1][0]
  22. self.thread = Thread(
  23. category=self.category,
  24. started_on=datetime,
  25. starter_name='Tester',
  26. starter_slug='tester',
  27. last_post_on=datetime,
  28. last_poster_name='Tester',
  29. last_poster_slug='tester'
  30. )
  31. self.thread.set_title("Test thread")
  32. self.thread.save()
  33. add_acl(self.user, self.category)
  34. add_acl(self.user, self.thread)
  35. def test_record_event_with_context(self):
  36. """record_event registers event with context in thread"""
  37. request = MockRequest(self.user)
  38. context = {'user': 'Lorem ipsum'}
  39. event = record_event(request, self.thread, 'announcement', context)
  40. event_post = self.thread.post_set.order_by('-id')[:1][0]
  41. self.assertEqual(self.thread.last_post, event_post)
  42. self.assertTrue(self.thread.has_events)
  43. self.assertTrue(self.thread.last_post_is_event)
  44. self.assertEqual(event.pk, event_post.pk)
  45. self.assertTrue(event_post.is_event)
  46. self.assertEqual(event_post.event_type, 'announcement')
  47. self.assertEqual(event_post.event_context, context)
  48. self.assertEqual(event_post.poster_id, request.user.pk)
  49. self.assertEqual(event_post.poster_ip, request.user_ip)