Bug 14346: t/Biblio.t fails because of new warning
Running $ prove t/Biblio.t fails because of us now using DBIx to retrieve sysprefs. Then our mocked DBI is not "supported" by DBIx hence a warning that makes our test fail (there is one more warning now). The cool thing about this, is that it actually helped spot a situation where GetMarcBiblio is doing wrong things because is not checking its parameters are undefined, so we have the chance to fix it. This patch makes GetMarcBiblio return undef if no biblionumber is passed, and also raises a conveniently carped warning. This change is tested in t/Biblio.t with new tests. To test: - In current master, run $ prove t/Biblio.t => FAIL: a test detects a wrong warning count and fails. - Apply the patch and run $ prove t/Biblio.t => SUCCESS: Tests now pass, and there are 2 new ones. - Sign off :-D Regards Signed-off-by: Mark Tompsett <mtompset@hotmail.com> Signed-off-by: Katrin Fischer <katrin.fischer.83@web.de> Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
This commit is contained in:
parent
5a02cf9b48
commit
46419b797b
2 changed files with 17 additions and 4 deletions
|
@ -1261,6 +1261,12 @@ The MARC record contains biblio data, and items data if $embeditems is set to tr
|
|||
sub GetMarcBiblio {
|
||||
my $biblionumber = shift;
|
||||
my $embeditems = shift || 0;
|
||||
|
||||
if (not defined $biblionumber) {
|
||||
carp 'GetMarcBiblio called with undefined biblionumber';
|
||||
return;
|
||||
}
|
||||
|
||||
my $dbh = C4::Context->dbh;
|
||||
my $sth = $dbh->prepare("SELECT marcxml FROM biblioitems WHERE biblionumber=? ");
|
||||
$sth->execute($biblionumber);
|
||||
|
|
15
t/Biblio.t
15
t/Biblio.t
|
@ -17,7 +17,7 @@
|
|||
|
||||
use Modern::Perl;
|
||||
|
||||
use Test::More tests => 44;
|
||||
use Test::More tests => 46;
|
||||
use Test::MockModule;
|
||||
use Test::Warn;
|
||||
use DBD::Mock;
|
||||
|
@ -167,9 +167,16 @@ warning_is { $ret = RemoveAllNsb() }
|
|||
|
||||
ok( !defined $ret, 'RemoveAllNsb returns undef if not passed rec');
|
||||
|
||||
warning_is { $ret = UpdateTotalIssues() }
|
||||
{ carped => 'UpdateTotalIssues could not get biblio record'},
|
||||
"UpdateTotalIssues returns carped warning if biblio record does not exist";
|
||||
warning_is { $ret = GetMarcBiblio() }
|
||||
{ carped => 'GetMarcBiblio called with undefined biblionumber'},
|
||||
"GetMarcBiblio returns carped warning on undef biblionumber";
|
||||
|
||||
ok( !defined $ret, 'GetMarcBiblio returns undef if not passed a biblionumber');
|
||||
|
||||
warnings_like { $ret = UpdateTotalIssues() }
|
||||
[ { carped => qr/GetMarcBiblio called with undefined biblionumber/ },
|
||||
{ carped => qr/UpdateTotalIssues could not get biblio record/ } ],
|
||||
"UpdateTotalIssues returns carped warnings if biblio record does not exist";
|
||||
|
||||
ok( !defined $ret, 'UpdateTotalIssues returns carped warning if biblio record does not exist');
|
||||
|
||||
|
|
Loading…
Reference in a new issue