Koha/t
Joonas Kylmälä 188479881f Bug 28479: Use primary keys to check object existence in TestBuilder
The TestBuilder::build_object function used any foreign keys to check
whether an object already exists or not. This brought incorrectly
results of unrelated objects because using any other keys other than
primary keys don't guarantee our results to point to one single
object. For example, as is put here in the unit test, if you created
two items with the same biblionumber and then tried to create a hold
using build_object() we were using the biblionumber to check whether
an item was linked to the hold already. Thus, we were checking whether
a random item was already linked to the hold instead of the one we
wanted either by passing it explicitly to build_object() or the one
build_object() created implicitly. This also resulted in following
warnings when there were more than one match:

DBIx::Class::Storage::DBI::select_single(): Query returned more than
one row.  SQL that returns multiple rows is DEPRECATED for ->find and
->single at /kohadevbox/koha/t/lib/TestBuilder.pm line 235

To test:
 $ prove t/db_dependent

Signed-off-by: David Nind <david@davidnind.com>

Signed-off-by: Nick Clemens <nick@bywatersolutions.com>

Signed-off-by: Jonathan Druart <jonathan.druart@bugs.koha-community.org>

Signed-off-by: Kyle M Hall <kyle@bywatersolutions.com>
2021-07-02 08:54:39 -04:00
..
Acquisition
Biblio
Budgets
Circulation
data Bug 28385: Add tests 2021-05-25 09:45:22 +02:00
db_dependent Bug 28479: Use primary keys to check object existence in TestBuilder 2021-07-02 08:54:39 -04:00
edi_testfiles
etc
External
Koha Bug 28385: Add tests 2021-05-25 09:45:22 +02:00
lib Bug 28479: Use primary keys to check object existence in TestBuilder 2021-07-02 08:54:39 -04:00
Members
Number
Search
Serials
SIP
Test
00-checkdatabase-version.t
00-deprecated.t
00-load.t
00-merge-conflict-markers.t
00-testcritic.t
00-valid-xml.t
Auth.t
Auth_with_shibboleth.t
AuthoritiesMarc_MARC21.t
AuthoritiesMarc_UNIMARC.t
Barcodes_annual.t
Barcodes_EAN13.t
Barcodes_hbyymmincr.t
Barcodes_incremental.t
Biblio.t
Biblio2.t
Budgets.t
Calendar.t
Charset.t
Circulation_barcodedecode.t
ClassSortRoutine.t
ClassSortRoutine_Dewey.t
ClassSortRoutine_Generic.t
ClassSortRoutine_LCC.t
ClassSource.t
Context.t
Contract.t
Creators.t
DateUtils.t
Debug.t
dummy.t
Edifact.t
EdiInvoice.t
Ediorder.t
Ediordrsp.t
EdiTransport.t
Form_MessagingPreferences.t
HtmlTags.t
ImportBatch.t
Installer_PerlModules.t
Installer_pm.t
ItemCirculationAlertPreference.t
Koha.t
Koha_MetadataRecord.t
Koha_SearchEngine_Elasticsearch_Browse.t
Koha_Template_Plugin_Cache.t
Koha_Template_Plugin_HtmlId.t
Koha_Template_Plugin_Koha.t
Koha_Util_FrameworkPlugin.t
Koha_Util_MARC.t
Labels.t
Labels_split_ccn.t
Labels_split_ddcn.t
Labels_split_lccn.t
Labels_split_Regex.t
Languages.t
Letters.t
Logger.t
Makefile.t
Matcher.t
Members_Messaging.t
OpenLibrarySearch.t
Output.t
Output_JSONStream.t
Patron.t
Patroncards.t
Patroncards_Batch.t
Patroncards_Lib.t
Patroncards_Patroncard.t
Patroncards_Profile.t
Patroncards_Template.t
Prices.t
RecordProcessor.t
Ris.t
Scheduler.t
Scrubber.t
Search.t
Search_PazPar2.t
SimpleMARC.t
SMS.t
SocialData.t
Stats.t
SuggestionEngine.t
SuggestionEngine_AuthorityFile.t
template_filters.t
timezones.t
TmplToken.t
Token.t
XSLT.t