Bug 14195: TestBuilder - A random string should not be longer than the DB field

t::lib::TestBuilder::_gen_text does not use correctly the regex and the
max parameter to generate the random string (String::Random).

This can cause future tests to fail.

http://bugs.koha-community.org/show_bug.cgi?id=14195
Signed-off-by: Bernardo Gonzalez Kriegel <bgkriegel@gmail.com>

Script tested, problem occurs, patch fixes it.
Bad number on commit subject
No errors

Signed-off-by: Marcel de Rooy <m.de.rooy@rijksmuseum.nl>
Signed-off-by: Tomas Cohen Arazi <tomascohen@gmail.com>
This commit is contained in:
Jonathan Druart 2015-05-13 16:39:59 +02:00 committed by Tomas Cohen Arazi
parent 53bd26fdaa
commit ea41ef4ec9
2 changed files with 13 additions and 2 deletions

View file

@ -236,6 +236,7 @@ is( $bookseller_result->in_storage, 1, 'build with only_fk = 1 creates the forei
$bookseller = $builder->build({
source => 'Aqbookseller',
});
ok( length( $bookseller->{phone} ) <= 30, 'The length for a generated string should not be longer than the size of the DB field' );
delete $bookseller->{_fk};
$bookseller_from_db = $rs_aqbookseller->find($bookseller);
is( $bookseller_from_db->in_storage, 1, 'build without the parameter only_sk stores the entry correctly' );

View file

@ -288,8 +288,18 @@ sub _gen_date {
sub _gen_text {
my ($self, $params) = @_;
my $random = String::Random->new( max => $params->{info}->{size} );
return $random->randregex('[A-Za-z]+[A-Za-z0-9_]*');
# From perldoc String::Random
# max: specify the maximum number of characters to return for * and other
# regular expression patters that don't return a fixed number of characters
my $regex = '[A-Za-z][A-Za-z0-9_]*';
my $size = $params->{info}{size};
if ( defined $size and $size > 1 ) {
$size--;
} elsif ( defined $size and $size == 1 ) {
$regex = '[A-Za-z]';
}
my $random = String::Random->new( max => $size );
return $random->randregex($regex);
}
sub _gen_set_enum {