﻿id	summary	reporter	owner	description	type	status	component	version	severity	resolution	keywords	cc	stage	has_patch	needs_docs	needs_tests	needs_better_patch	easy	ui_ux
18608	Broken monkey-patching in humanize tests	Aymeric Augustin	Aymeric Augustin	"The tests for `django.contrib.humanize` monkey-patch the `datetime` module in `django.utils.timesince` as follows:
{{{
        timesince.datetime = new.module(b""mock_datetime"")
        timesince.datetime.datetime = MockDateTime
}}}

Unfortunately, this means that `isinstance(d, datetime.datetime)` in `django.utils.timesince` will return `False` while the monkey-patch is in effect even though `d` is a real `datetime.datetime`.

The `humanize` tests rely on a fixed value: `now = datetime.datetime(2012, 3, 9)` which happens to be at 0h00. They pass by accident, really. Add an hour and a minute to `now` — this shouldn't matter at all — and they'll fail!

This is preventing me from writing correct tests for #18504, because `datetime` objects are treated as `date` objects and their time part is ignored. It's impossible to write tests for edge cases around DST changes with this bug.



I hope I don't need to explain how horrible this was to debug :("	Bug	closed	contrib.humanize	1.4	Normal	fixed			Accepted	1	0	0	0	0	0
