Bug 18826: rollback transaction for api tests
The holds.t tests for the REST api do no rollback properly and modify
the DB (no cleanup).
This comes from a bug caused by SessionStorage = mysql (default)
The error is:
"rollback ineffective with AutoCommit enabled"
Test plan:
select count(*) from borrowers;
prove t/db_dependent/api/v1/holds.t
select count(*) from borrowers;
=> The number of entry must be the same before and after the tests have
been executed
Signed-off-by: Josef Moravec <josef.moravec@gmail.com>
Signed-off-by: Nick Clemens <nick@bywatersolutions.com>
Signed-off-by: Jonathan Druart <jonathan.druart@bugs.koha-community.org>
This commit is contained in:
parent
f55b849346
commit
d5dc473382
|
|
@ -20,6 +20,7 @@ use Modern::Perl;
|
|||
use Test::More tests => 4;
|
||||
use Test::Mojo;
|
||||
use t::lib::TestBuilder;
|
||||
use t::lib::Mocks;
|
||||
|
||||
use DateTime;
|
||||
|
||||
|
|
@ -32,11 +33,14 @@ use Koha::Biblioitems;
|
|||
use Koha::Items;
|
||||
use Koha::Patrons;
|
||||
|
||||
my $schema = Koha::Database->new->schema;
|
||||
my $builder = t::lib::TestBuilder->new();
|
||||
|
||||
my $dbh = C4::Context->dbh;
|
||||
$dbh->{AutoCommit} = 0;
|
||||
$dbh->{RaiseError} = 1;
|
||||
$schema->storage->txn_begin;
|
||||
|
||||
# FIXME: sessionStorage defaults to mysql, but it seems to break transaction handling
|
||||
# this affects the other REST api tests
|
||||
t::lib::Mocks::mock_preference( 'SessionStorage', 'tmp' );
|
||||
|
||||
$ENV{REMOTE_ADDR} = '127.0.0.1';
|
||||
my $t = Test::Mojo->new('Koha::REST::V1');
|
||||
|
|
@ -114,6 +118,7 @@ my $itemnumber = create_item($biblionumber, 'TEST000001');
|
|||
my $biblionumber2 = create_biblio('RESTful Web APIs');
|
||||
my $itemnumber2 = create_item($biblionumber2, 'TEST000002');
|
||||
|
||||
my $dbh = C4::Context->dbh;
|
||||
$dbh->do('DELETE FROM reserves');
|
||||
$dbh->do('DELETE FROM issuingrules');
|
||||
$dbh->do(q{
|
||||
|
|
@ -304,8 +309,7 @@ subtest "Test endpoints with permission" => sub {
|
|||
->json_like('/error', qr/tooManyReserves/);
|
||||
};
|
||||
|
||||
|
||||
$dbh->rollback;
|
||||
$schema->storage->txn_rollback;
|
||||
|
||||
sub create_biblio {
|
||||
my ($title) = @_;
|
||||
|
|
|
|||
|
|
@ -20,6 +20,7 @@ use Modern::Perl;
|
|||
use Test::More tests => 21;
|
||||
use Test::Mojo;
|
||||
use t::lib::TestBuilder;
|
||||
use t::lib::Mocks;
|
||||
|
||||
use C4::Auth;
|
||||
use C4::Context;
|
||||
|
|
@ -27,11 +28,10 @@ use C4::Context;
|
|||
use Koha::Database;
|
||||
use Koha::Patron;
|
||||
|
||||
my $schema = Koha::Database->new->schema;
|
||||
my $builder = t::lib::TestBuilder->new();
|
||||
|
||||
my $dbh = C4::Context->dbh;
|
||||
$dbh->{AutoCommit} = 0;
|
||||
$dbh->{RaiseError} = 1;
|
||||
$schema->storage->txn_begin;
|
||||
|
||||
$ENV{REMOTE_ADDR} = '127.0.0.1';
|
||||
my $t = Test::Mojo->new('Koha::REST::V1');
|
||||
|
|
@ -131,4 +131,4 @@ $t->request_ok($tx)
|
|||
->json_is('/surname' => $borrower->{ surname })
|
||||
->json_is('/lost' => 1 );
|
||||
|
||||
$dbh->rollback;
|
||||
$schema->storage->txn_rollback;
|
||||
|
|
|
|||
Loading…
Reference in New Issue