]> git.parisson.com Git - django-postman.git/commitdiff
Added an ordering criteria
authorPatrick Samson <pk.samson@gmail.com>
Sat, 14 Jan 2012 13:43:10 +0000 (14:43 +0100)
committerPatrick Samson <pk.samson@gmail.com>
Sat, 14 Jan 2012 13:43:10 +0000 (14:43 +0100)
postman/models.py
postman/tests.py

index f35fb87d15737652b14292a7cf072b0a36ba39d6..d3d5af64a38e5efe46611fa68eb0ed292e84239b 100644 (file)
@@ -223,7 +223,7 @@ class Message(models.Model):
     class Meta:
         verbose_name = _("message")
         verbose_name_plural = _("messages")
-        ordering = ['-sent_at']
+        ordering = ['-sent_at', '-id']
 
     def __unicode__(self):
         return u"{0}>{1}:{2}".format(self.obfuscated_sender, self.obfuscated_recipient, truncate_words(self.subject,5))
index 82a1c52eda6490a8a40f6073a4f65d7e6c20ec58..683af087f2d6de755dfd9e7cca755987300db175 100644 (file)
@@ -35,7 +35,6 @@ import copy
 from datetime import datetime, timedelta
 import re
 import sys
-from time import sleep
 
 from django.conf import settings
 from django.contrib.auth import REDIRECT_FIELD_NAME
@@ -104,7 +103,7 @@ class BaseTest(TestCase):
         "Check that a date is now. Well... almost."
         delta = dt - datetime.now()
         seconds = delta.days * (24*60*60) + delta.seconds
-        self.assert_(-7 <= seconds <= 2) # consider the sleep() in create()
+        self.assert_(-2 <= seconds <= 1) # -1 is not enough for Mysql
 
     def check_status(self, m, status=STATUS_PENDING, is_new=True, is_replied=False, parent=None, thread=None,
         moderation_date=False, moderation_by=None, moderation_reason='',
@@ -148,10 +147,6 @@ class BaseTest(TestCase):
 
     def create(self, moderation_status=None, *args, **kwargs):
         "Create a message."
-        # need to sleep between creations
-        # otherwise some sent_at datetimes are equal and ordering predictions are disturbed
-        # sleep(0.03) is enough for sqlite but not for mysql ("... microseconds cannot be stored into a column of any temporal data type. Any microseconds part is discarded.")
-        sleep(1)
         if moderation_status:
             kwargs.update(moderation_status=moderation_status)
         return Message.objects.create(subject='s', *args, **kwargs)
@@ -365,9 +360,9 @@ class ViewTest(BaseTest):
         del data['email']
         response = self.client.post(url, data, HTTP_REFERER=url)
         self.assertRedirects(response, url)
-        msgs = list(Message.objects.order_by('pk'))
-        self.check_message(msgs[0])
-        self.check_message(msgs[1], recipient_username='baz')
+        msgs = list(Message.objects.all())
+        self.check_message(msgs[0], recipient_username='baz')
+        self.check_message(msgs[1])
 
         url_with_max = reverse('postman_write_with_max')
         response = self.client.post(url_with_max, data, HTTP_REFERER=url)