Bug 37448: Add script to allow developers to quickly generate large amounts of data for development and testing

Test Plan:
1) Apply this patch
2) Run: misc/devel/create_test_data.pl -n 99 -s Borrower -d surname=Hall  -d zipcode=111111
3) Search patrons' for the name "Hall"
4) Note there are 99 Hall's in your results!

Signed-off-by: Kyle M Hall <kyle@bywatersolutions.com>
Signed-off-by: Pedro Amorim <pedro.amorim@ptfs-europe.com>

Bug 37448: Make use of build_sample_biblio and build_sample_item

The script is brilliant, but for biblios and items we should make use of build_sample_biblio and build_sample_item or this data does not get indexed + linked tables rows get missed

To test, before this patch, run:
1) misc/devel/create_test_data.pl -n 5 -s Biblio -d title=Test
  Notice the 'Test' biblio is created on the database, but doesnt show on searches, and accessing it directly through URL throws a 500 error (because metadata does not exist for the biblio)
2) Apply this patch. Repeat the step above. Notice it now shows on searches and visiting the biblio directly shows no errors

Signed-off-by: Pedro Amorim <pedro.amorim@ptfs-europe.com>

Signed-off-by: Kyle M Hall <kyle@bywatersolutions.com>

Bug 37448: (QA follow-up) Tidy script

Signed-off-by: Kyle M Hall <kyle@bywatersolutions.com>
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
This commit is contained in:
Kyle M Hall 2024-07-24 08:16:19 -04:00 committed by Katrin Fischer
parent 92fd65840a
commit 576621a6df
No known key found for this signature in database
GPG Key ID: 0EF6E2C03357A834
1 changed files with 96 additions and 0 deletions

96
misc/devel/create_test_data.pl Executable file
View File

@ -0,0 +1,96 @@
#!/usr/bin/perl
# This file is part of Koha.
#
# Copyright (C) 2012 ByWater Solutions
# Copyright (C) 2013 Equinox Software, Inc.
#
# Koha is free software; you can redistribute it and/or modify it
# under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 3 of the License, or
# (at your option) any later version.
#
# Koha is distributed in the hope that it will be useful, but
# WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with Koha; if not, see <http://www.gnu.org/licenses>.
use Modern::Perl;
use Getopt::Long qw( GetOptions );
use Pod::Usage qw( pod2usage );
use t::lib::TestBuilder;
my $builder = t::lib::TestBuilder->new;
my $source;
my $values;
my $number;
my $help;
my $verbose;
GetOptions(
"s|source=s" => \$source,
"d|data=s%" => \$values,
"n|number=i" => \$number,
"h|help" => \$help,
"v|verbose" => \$verbose,
);
# If we were asked for usage instructions, do it
pod2usage(1) if $help || !$number || !$source;
for ( 1 .. $number ) {
if ( $source eq 'Biblio' ) {
$builder->build_sample_biblio($values);
} elsif ( $source eq 'Item' ) {
$builder->build_sample_item($values);
} elsif ( $source eq 'Illrequest' ) {
$builder->build_sample_ill_request($values);
} else {
$builder->build(
{
source => $source,
value => $values,
}
);
}
}
=head1 NAME
misc/devel/create_test_data.pl
=head1 SYNOPSIS
create_test_data.pl -n 99 -s ObjectName [ -d foreignkey=somevalue ]
This script allows for quickly generated large numbers of test data for development purposes.
=head1 OPTIONS
=over 8
=item B<-s|--source> <source>
The DBIx::Class ResultSet source to use ( e.g. Branch, Category, EdifactMessage, etc. )
=item B<-d|--data> <valumn>=<value>
Repeatable, set a given column to the specified value for all generated data.
create_test_data.pl -n 5 -s Issue -d borrowernumber=42 -d -d branchcode=MPL
=item B<-n|--number> <number>
The number of rows to create
=item B<-h|--help>
prints this help text
=back