Bug 24509: Fix API relared tests failing on MySQL8
This patch makes a trivial change to the tests so they catch the way
MySQL 8 reports the duplicate key message. The difference on the API
error message is irrelevant and so it is ok to just make the tests try
both MySQL 8 output and the rest of the supported engines.
To test:
1. Run:
$ kshell
k$ prove t/db_dependent/api/v1/acquisitions_orders.t \
t/db_dependent/api/v1/libraries.t \
t/db_dependent/api/v1/patrons.t
=> FAIL: Tests fail due to warning and conflict message differences
2. Apply this patch
3. Repeat 1
=> SUCCESS: Tests pass!
4. Sign off :-D
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
Signed-off-by: Jonathan Druart <jonathan.druart@bugs.koha-community.org>
Signed-off-by: Martin Renvoize <martin.renvoize@ptfs-europe.com>
This commit is contained in:
parent
0c404e0529
commit
8a468824fd
|
|
@ -211,8 +211,8 @@ subtest 'add() tests' => sub {
|
|||
$t->post_ok( "//$auth_userid:$password@/api/v1/acquisitions/orders" => json => $order )
|
||||
->status_is(409)
|
||||
->json_has( '/error' => "Fails when trying to add an existing order_id")
|
||||
->json_is( '/conflict', 'PRIMARY' ); } # WTF
|
||||
qr/^DBD::mysql::st execute failed: Duplicate entry '(.*)' for key 'PRIMARY'/;
|
||||
->json_like( '/conflict' => qr/(aqorders\.)?PRIMARY/ ); }
|
||||
qr/^DBD::mysql::st execute failed: Duplicate entry '(.*)' for key '(aqorders\.)?PRIMARY'/;
|
||||
|
||||
$schema->storage->txn_rollback;
|
||||
};
|
||||
|
|
|
|||
|
|
@ -199,8 +199,8 @@ subtest 'add() tests' => sub {
|
|||
$t->post_ok( "//$auth_userid:$password@/api/v1/libraries" => json => $library )
|
||||
->status_is(409)
|
||||
->json_has( '/error' => "Fails when trying to add an existing library_id")
|
||||
->json_is( '/conflict', 'PRIMARY' ); } # WTF
|
||||
qr/^DBD::mysql::st execute failed: Duplicate entry '(.*)' for key 'PRIMARY'/;
|
||||
->json_like( '/conflict' => qr/(branches\.)?PRIMARY/ ); }
|
||||
qr/^DBD::mysql::st execute failed: Duplicate entry '(.*)' for key '(branches\.)?PRIMARY'/;
|
||||
|
||||
$schema->storage->txn_rollback;
|
||||
};
|
||||
|
|
|
|||
|
|
@ -207,8 +207,8 @@ subtest 'add() tests' => sub {
|
|||
$t->post_ok("//$userid:$password@/api/v1/patrons" => json => $newpatron)
|
||||
->status_is(409)
|
||||
->json_has( '/error', 'Fails when trying to POST duplicate cardnumber' )
|
||||
->json_has( '/conflict', 'cardnumber' ); }
|
||||
qr/^DBD::mysql::st execute failed: Duplicate entry '(.*?)' for key 'cardnumber'/;
|
||||
->json_like( '/conflict' => qr/(borrowers\.)?cardnumber/ ); }
|
||||
qr/^DBD::mysql::st execute failed: Duplicate entry '(.*?)' for key '(borrowers\.)?cardnumber'/;
|
||||
|
||||
$schema->storage->txn_rollback;
|
||||
};
|
||||
|
|
@ -311,8 +311,8 @@ subtest 'update() tests' => sub {
|
|||
$t->put_ok( "//$userid:$password@/api/v1/patrons/" . $patron_2->borrowernumber => json => $newpatron )
|
||||
->status_is(409)
|
||||
->json_has( '/error' => "Fails when trying to update to an existing cardnumber or userid")
|
||||
->json_is( '/conflict', 'cardnumber' ); }
|
||||
qr/^DBD::mysql::st execute failed: Duplicate entry '(.*?)' for key 'cardnumber'/;
|
||||
->json_like( '/conflict' => qr/(borrowers\.)?cardnumber/ ); }
|
||||
qr/^DBD::mysql::st execute failed: Duplicate entry '(.*?)' for key '(borrowers\.)?cardnumber'/;
|
||||
|
||||
$newpatron->{ cardnumber } = $patron_1->id . $patron_2->id;
|
||||
$newpatron->{ userid } = "user" . $patron_1->id.$patron_2->id;
|
||||
|
|
|
|||
Loading…
Reference in New Issue