From 2a1e0aea07cda260dddfc7f310ef51edd98472fc Mon Sep 17 00:00:00 2001 From: Kyle M Hall Date: Wed, 24 Jul 2024 08:16:19 -0400 Subject: [PATCH] [DONT PUSH] 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 Signed-off-by: Pedro Amorim 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 Signed-off-by: Kyle M Hall Bug 37448: (QA follow-up) Tidy script Signed-off-by: Kyle M Hall --- misc/devel/create_test_data.pl | 96 ++++++++++++++++++++++++++++++++++ 1 file changed, 96 insertions(+) create mode 100755 misc/devel/create_test_data.pl diff --git a/misc/devel/create_test_data.pl b/misc/devel/create_test_data.pl new file mode 100755 index 0000000000..eb078c28d1 --- /dev/null +++ b/misc/devel/create_test_data.pl @@ -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 . + +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> + +The DBIx::Class ResultSet source to use ( e.g. Branch, Category, EdifactMessage, etc. ) + +=item B<-d|--data> = + +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> + +The number of rows to create + +=item B<-h|--help> + +prints this help text + +=back -- 2.39.5