def serializable(self, timezone=None): """Return a serializable representation of the message.""" # We cannot do `serializable(self, timezone=None):` because tests need # to be able to ovveride the time zone if timezone is None: timezone = settings.TIME_ZONE zone = pytz.timezone(timezone) return { 'id': self.pk, 'sent_at': str(self.created_at.astimezone(zone)), 'sender': { 'sender': str(self.sender), 'sender_is_staff': self.sender.is_staff, 'sender_url': reverse('user_details', kwargs={'user_uuid': self.sender.uuid}), }, 'group': unicode_or_empty(self.thread.group), 'snippet': self.snippet, 'text': self.text, 'reply_url': reverse('create_reply', args=[self.thread_id]), 'flag_url': reverse('flag_message', kwargs={'message_id': self.pk}), 'read': getattr(self, 'read', None), 'is_system_message': self.is_system_message, 'pending': (self.status == 'pending') }
def serializable(self, timezone=None): """Return a serializable representation of the message.""" # We cannot do `serializable(self, timezone=None):` because tests need # to be able to ovveride the time zone if timezone is None: timezone = settings.TIME_ZONE zone = pytz.timezone(timezone) return { 'id': self.pk, 'sent_at': str(self.created_at.astimezone(zone)), 'sender': { 'sender': str(self.sender), 'sender_is_staff': self.sender.is_staff, 'sender_url': reverse( 'user_details', kwargs={'user_uuid': self.sender.uuid}), }, 'group': unicode_or_empty(self.thread.group), 'snippet': self.snippet, 'text': self.text, 'reply_url': reverse('create_reply', args=[self.thread_id]), 'flag_url': reverse( 'flag_message', kwargs={'message_id': self.pk} ), 'read': getattr(self, 'read', None), 'is_system_message': self.is_system_message, 'pending': (self.status == 'pending') }
def test_unicode_or_empty(self): """Test unicode_or_empty() function""" self.assertEqual(unicode_or_empty(None), u'') self.assertEqual(unicode_or_empty(True), u'True') self.assertIsInstance(unicode_or_empty(None), unicode)
def serializable(self, timezone=None): """Returns a serializable version of the Thread model""" # We cannot do `serializable(self, timezone=None):` because tests need # to be able to ovveride the time zone if timezone is None: timezone = settings.TIME_ZONE zone = pytz.timezone(timezone) if self.group: category = self.group.category.slug group_url = reverse('group_details', kwargs={'pk': self.group.pk}) reply_url = reverse('create_reply', args=[self.pk]) group_id = self.group.pk else: category = None group_url = '' reply_url = reverse('create_direct_message_reply', args=[self.pk]) group_id = None if not self.group and not self.is_system_thread: recipients = self.recipients.all() else: recipients = None if getattr(self, 'read', None): unread_messages = 0 elif getattr(self, 'last_read_at', None): last_read_at = (self.last_read_at.astimezone(zone)) unread_messages = self.message_set.filter( created_at__gt=last_read_at).count() else: unread_messages = self.total_messages response = { 'id': self.pk, 'total_messages': str(self.total_messages), 'subject': unicode(self.subject), 'snippet': unicode(self.first_message.snippet), 'latest_message_at': str(self.latest_message.created_at.astimezone(zone)), 'json_url': str(reverse('thread_details_json', args=[self.pk])), 'reply_url': reply_url, 'unsubscribe_url': self.get_unsubscribe_url(), 'read': getattr(self, 'read', None), 'group': unicode_or_empty(self.group), 'group_url': group_url, 'group_id': group_id, 'type': str(self.thread_type), 'category': unicode_or_empty(category), 'unread_messages': unread_messages, 'is_system_thread': self.is_system_thread, 'userthread_status': getattr(self, 'userthread_status', None) } if recipients: response['recipients'] = [ str(recipient) for recipient in recipients ] return response
def serializable(self, timezone=None): """Returns a serializable version of the Thread model""" # We cannot do `serializable(self, timezone=None):` because tests need # to be able to ovveride the time zone if timezone is None: timezone = settings.TIME_ZONE zone = pytz.timezone(timezone) if self.group: category = self.group.category.slug group_url = reverse('group_details', kwargs={'pk': self.group.pk}) reply_url = reverse('create_reply', args=[self.pk]) group_id = self.group.pk else: category = None group_url = '' reply_url = reverse('create_direct_message_reply', args=[self.pk]) group_id = None if not self.group and not self.is_system_thread: recipients = self.recipients.all() else: recipients = None if getattr(self, 'read', None): unread_messages = 0 elif getattr(self, 'last_read_at', None): last_read_at = (self.last_read_at.astimezone(zone)) unread_messages = self.message_set.filter( created_at__gt=last_read_at).count() else: unread_messages = self.total_messages response = { 'id': self.pk, 'total_messages': str(self.total_messages), 'subject': unicode(self.subject), 'snippet': unicode(self.first_message.snippet), 'latest_message_at': str( self.latest_message.created_at.astimezone(zone)), 'json_url': str(reverse('thread_details_json', args=[self.pk])), 'reply_url': reply_url, 'unsubscribe_url': self.get_unsubscribe_url(), 'read': getattr(self, 'read', None), 'group': unicode_or_empty(self.group), 'group_url': group_url, 'group_id': group_id, 'type': str(self.thread_type), 'category': unicode_or_empty(category), 'unread_messages': unread_messages, 'is_system_thread': self.is_system_thread, 'userthread_status': getattr(self, 'userthread_status', None) } if recipients: response['recipients'] = [ str(recipient) for recipient in recipients ] return response
def test_unicode_or_empty(self): """Test unicode_or_empty() function""" self.assertEqual(unicode_or_empty(None), u'') self.assertEqual(unicode_or_empty(True), u'True') self.assertIsInstance(unicode_or_empty(None), unicode)