Previously, gametime used the length of the current year and
current month to calculate the future date in the real_seconds_until
function. This caused a small bug when passing over a leap day from
a year without a leap day.
This change uses the datetime module to just increment the year
or month, sidestepping the issue.
I've found a bug in the gametime module where if your date is the
year before a leap year, and the real_seconds_until function has
to adjust the date (from using an earlier month) over that leap
year, the calculation is off a day since the current function uses
the length of the current year to determine how far to skip ahead
I've changed the current test to *not* test for this bug in the
mainline test (before it was passing because I was using the output
from the current function to determine correctness) and to add a
separate test that is marked as an expected failure for now. I am
working on a fix but it is outside the scope of this PR.
It appears that some mocks setup for gametime in the contrib
library were causing issues with the gametime tests. I've switched
those mocks to be patches instead so they are cleared out when
the test finishes.