mirror of https://github.com/django/django.git
Avoid spurious failures in naturaltime tests.
Previous fix didn't cover timesince module, which naturaltime delegates to under certain conditions. Extended mock of datetime to timesince module, and switched to a fixed datetime rather than now() for testing, for more reproducible tests (failures in mock will fail fast, rather than sporadically). git-svn-id: http://code.djangoproject.com/svn/django/trunk@17038 bcc190cf-cafb-0310-a4f2-bffc1f526a37
This commit is contained in:
parent
9796f69533
commit
5a16b64ed2
|
@ -118,7 +118,8 @@ class HumanizeTests(TestCase):
|
|||
self.assertNotEqual(naturalday_one, naturalday_two)
|
||||
|
||||
def test_naturaltime(self):
|
||||
now = datetime.now()
|
||||
# we're going to mock datetime.datetime, so use a fixed datetime
|
||||
now = datetime(2011, 8, 15)
|
||||
test_list = [
|
||||
now,
|
||||
now - timedelta(seconds=1),
|
||||
|
@ -160,18 +161,21 @@ class HumanizeTests(TestCase):
|
|||
|
||||
# mock out datetime so these tests don't fail occasionally when the
|
||||
# test runs too slow
|
||||
class MockDateTime(object):
|
||||
class MockDateTime(datetime):
|
||||
@classmethod
|
||||
def now(self):
|
||||
return now
|
||||
|
||||
def __call__(self, *args, **kwargs):
|
||||
return datetime(*args, **kwargs)
|
||||
|
||||
# naturaltime also calls timesince/timeuntil
|
||||
from django.contrib.humanize.templatetags import humanize
|
||||
orig_datetime = humanize.datetime
|
||||
humanize.datetime = MockDateTime()
|
||||
from django.utils import timesince
|
||||
orig_humanize_datetime = humanize.datetime
|
||||
orig_timesince_datetime = timesince.datetime.datetime
|
||||
humanize.datetime = MockDateTime
|
||||
timesince.datetime.datetime = MockDateTime
|
||||
|
||||
try:
|
||||
self.humanize_tester(test_list, result_list, 'naturaltime')
|
||||
finally:
|
||||
humanize.datetime = orig_datetime
|
||||
humanize.datetime = orig_humanize_datetime
|
||||
timesince.datetime.datetime = orig_timesince_datetime
|
||||
|
|
Loading…
Reference in New Issue