Bug 5477

Summary: Test cases requiring database access fail
Product: Koha Reporter: Robin Sheat <robin>
Component: Test SuiteAssignee: Robin Sheat <robin>
Status: CLOSED FIXED QA Contact: Bugs List <koha-bugs>
Severity: major    
Priority: PATCH-Sent (DO NOT USE) CC: chris, cnighswonger, kmkale
Version: 3.4   
Hardware: All   
OS: All   
Change sponsored?: --- Patch complexity: ---
Documentation contact: Documentation submission:
Text to go in the release notes:
Version(s) released in:
Circulation function:
Attachments: Proposed patch

Description Robin Sheat 2010-12-08 05:57:31 UTC
In the 3.2.1 release there are a number of test cases that fail because they 'use' modules that immediately attempt to access the database. As most machines won't have MySQL set up to contain the user/password and database required, these fail.

My suggestions for fixing this are:
* Move these tests into a 'db_dependent' directory so that they aren't run by default. Perhaps add a 'make test_all' rule that includes them.
* Have the packages move the iffy ones out of the way (although they will still fail for anyone running 'make test' without the database set up.)
* Introduce an environment variable that is set during testing that tells C4::Context (or whatever it is making the DB connection) that failures are OK. This may reduce test coverage however, which we don't want.

The tests I've noticed with this problem are:
00-load.t
External_BakerTaylor.t
Reports_Guided.t
Service.t
Tags.t
UploadedFile.t
VirtualShelves_Page.t
Comment 1 Robin Sheat 2010-12-08 05:58:13 UTC
I plan to make a patch that solves this the first way, until a better idea comes along.
Comment 2 Robin Sheat 2010-12-09 01:07:12 UTC
Created attachment 2821 [details] [review]
Proposed patch
Comment 3 MJ Ray (software.coop) 2011-01-04 10:25:14 UTC
This bug is mentioned in:
Bug 5477 - Fix test cases that require	database access http://lists.koha-community.org/pipermail/koha-patches/2010-December/013209.html
Comment 4 Chris Nighswonger 2011-01-28 19:06:49 UTC
More tests which fail in this manner:

t/Auth.t 
t/Auth_with_cas.t 
t/BackgroundJob.t 
t/Record.t 
t/Serials.t 

I'm fixing-up and signing off on the Robin's original patch.

I'm also changing this to 3.4 and will backport the fix when pushed there.

Note: There is already a Serials test in the db_dependent subdir, so I'm renaming Serials.t to Serials_2.t and moving it there as well. The two tests should probably be combined at some point.

Also changing severity to major as this is causing a lot of noise from people worried about failed tests.
Comment 5 Chris Cormack 2011-01-29 18:54:34 UTC
Pushed, works locally and hudson confirms, marking resolved
Comment 6 Robin Sheat 2011-02-08 00:27:39 UTC
In order to build the 3.2.3 packages, I cherry picked the commit from master across on top of the v3.02.03 tag, and it worked fine.