Bug 22254

Summary: t/db_dependent/Koha/Patrons.t contains a DateTime math error
Product: Koha Reporter: Martin Renvoize <martin.renvoize>
Component: Test SuiteAssignee: Martin Renvoize <martin.renvoize>
Status: CLOSED FIXED QA Contact: Testopia <testopia>
Severity: normal    
Priority: P5 - low CC: fridolin.somers, jonathan.druart, lucas, nick, tomascohen
Version: Main   
Hardware: All   
OS: All   
Change sponsored?: --- Patch complexity: Small patch
Documentation contact: Documentation submission:
Text to go in the release notes:
Version(s) released in:
Bug Depends on: 17699    
Bug Blocks:    
Attachments: Bug 22254: Correction to datehandling in test
Bug 22254: Correction to datehandling in test
Bug 22254: Correction to datehandling in test

Description Martin Renvoize 2019-02-01 09:53:09 UTC
So, one of the peculiarities of DateTime maths is that 12 plus 1 doesn't always equal 13 ;)

This calls for an example (using 'limit' for end_of_month mode):

2019-01-31 + 1 month = 2019-02-28
2019-01-31 + 13 months = 2020-02-29 (this one maintains 'end of month' over the leap year)
2019-02-28 + 12 months = 2020-02-28

Koha does the third case but the test is currently setup for the second.
Comment 1 Martin Renvoize 2019-02-01 09:57:29 UTC
Created attachment 84599 [details] [review]
Bug 22254: Correction to datehandling in test

Adding 13 months is not always the same as adding 1 month and then
adding 12 months in DateTime maths.  This patch rectified the test
to match the correct behaviour in koha.
Comment 2 Martin Renvoize 2019-02-01 10:01:00 UTC
Test plan.

1) Modify the test (around line 268) to test against the suspect leap date of 2019-01-31 and watch the test fail.
2) Apply the patch (which also adds this modification to test for such a leap date) and watch the test now pass.
Comment 3 Tomás Cohen Arazi 2019-02-01 10:43:58 UTC
Created attachment 84600 [details] [review]
Bug 22254: Correction to datehandling in test

Adding 13 months is not always the same as adding 1 month and then
adding 12 months in DateTime maths.  This patch rectified the test
to match the correct behaviour in koha.

Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
Comment 4 Katrin Fischer 2019-02-03 09:25:23 UTC
Created attachment 84677 [details] [review]
Bug 22254: Correction to datehandling in test

Adding 13 months is not always the same as adding 1 month and then
adding 12 months in DateTime maths.  This patch rectified the test
to match the correct behaviour in koha.

Test plan.

1) Modify the test (around line 268) to test against the suspect
   leap date of 2019-01-31 and watch the test fail.
2) Apply the patch (which also adds this modification to test
   for such a leap date) and watch the test now pass.

Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>

Signed-off-by: Katrin Fischer <katrin.fischer.83@web.de>
Comment 5 Nick Clemens 2019-02-04 17:48:07 UTC
Awesome work all!

Pushed to master for 19.05
Comment 6 Martin Renvoize 2019-02-11 13:40:44 UTC
Pushed to 18.11.x for 18.11.03
Comment 7 Lucas Gass 2019-02-12 20:22:33 UTC
backported to 18.05.x for 18.05.09
Comment 8 Jonathan Druart 2019-02-16 19:04:07 UTC
Good catch Martin. I would have added more dates, like:

+    for my $date ( '2016-03-31', '2016-11-30', '2019-01-31', '2020-02-28', '2020-01-31', '2020-02-29', dt_from_string() ) {

Just in case ;)
Comment 9 Fridolin Somers 2019-02-25 10:17:58 UTC
Pushed to 17.11.x for 17.11.16