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:
Tomas Cohen Arazi 2020-01-24 09:16:09 -03:00 committed by Martin Renvoize
parent 0c404e0529
commit 8a468824fd
No known key found for this signature in database
GPG Key ID: 422B469130441A0F
3 changed files with 8 additions and 8 deletions

View File

@ -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;
};

View File

@ -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;
};

View File

@ -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;