From fe8b774ecd78cf6b0db04dcc4f3e38241284f003 Mon Sep 17 00:00:00 2001 From: Mark Tompsett Date: Fri, 1 May 2015 16:31:47 -0400 Subject: [PATCH] [SIGNED-OFF] Bug 14113: Silence t/Dates.t warnings and cleanup output. The expectation of a user not freaking out over 'Illegal date' messages is not sensible. Catch the messages, give a nicer message. Also, compress the veritical spacing on the output. TEST PLAN --------- 1) $ prove t/Dates.t -- notice Illegal date messages, and extra lines between some sectional messages. 2) Apply patch 3) $ prove t/Dates.t -- Notice how nice and clean it is? Try it with -v to see all the warnings, including the expected warning type messages. 4) run koha qa test tools. Signed-off-by: Bernardo Gonzalez Kriegel Tests run, cleaner output, no koha-qa errors --- t/Dates.t | 51 +++++++++++++++++++++++++++++++++------------------ 1 file changed, 33 insertions(+), 18 deletions(-) diff --git a/t/Dates.t b/t/Dates.t index 148bb3e..9598065 100644 --- a/t/Dates.t +++ b/t/Dates.t @@ -4,6 +4,7 @@ use strict; use warnings; use Test::More tests => 327; +use Test::Warn; BEGIN { use FindBin; @@ -43,29 +44,38 @@ $C4::Dates::prefformat = $fake_syspref; # So Dates doesn't have to ask the DB diag <new->format(), "Your system preference is: $syspref" ); -print "\n"; foreach ( @{ $thash{'iso'} } ) { - ok( $val = format_date($_), "format_date('$_'): $val" ); + if ($_ =~ /1952/) { + warning_like { $val = format_date($_); } qr/Illegal date/, + "format_date('$_'): Warning as expected"; + } + else { + ok( $val = format_date($_), "format_date('$_'): $val" ); + } } foreach ( @{ $thash{$syspref} } ) { - ok( $val = format_date_in_iso($_), "format_date_in_iso('$_'): $val" ); + if ($_ =~ /1952/) { + warning_like { $val = format_date_in_iso($_); } qr/Illegal date/, + "format_date_in_iso('$_'): Warning as expected"; + } + else { + ok( $val = format_date_in_iso($_), "format_date_in_iso('$_'): $val" ); + } } ok( $today0 = C4::Dates->today(), "(default) CLASS ->today : $today0" ); -diag "\nTesting " . scalar(@formats) . " formats.\nTesting no input (defaults):\n"; -print "\n"; +diag "Testing " . scalar(@formats) . " formats.\nTesting no input (defaults):"; foreach (@formats) { my $pre = sprintf '(%-6s)', $_; ok( $date = C4::Dates->new(), "$pre Date Creation : new()" ); @@ -73,14 +83,20 @@ foreach (@formats) { ok( $format = $date->visual(), "$pre visual() : " . ( $format || 'FAILED' ) ); ok( $today = $date->output(), "$pre output() : " . ( $today || 'FAILED' ) ); ok( $today = $date->today(), "$pre object->today : " . ( $today || 'FAILED' ) ); - print "\n"; } -diag "\nTesting with valid inputs:\n"; +diag "Testing with valid inputs:"; foreach $format (@formats) { my $pre = sprintf '(%-6s)', $format; foreach my $testval ( @{ $thash{$format} } ) { - ok( $date = C4::Dates->new( $testval, $format ), "$pre Date Creation : new('$testval','$format')" ); + if ($testval =~ /1952/) { + warning_like { $date = C4::Dates->new( $testval, $format ) } + qr/Illegal date/, + "$pre Date Creation : new('$testval','$format') -- Warning as expected."; + } + else { + ok( $date = C4::Dates->new( $testval, $format ), "$pre Date Creation : new('$testval','$format')" ); + } ok( $re = $date->regexp, "$pre has regexp()" ); ok( $testval =~ /^$re$/, "$pre has regexp() match $testval" ); ok( $val = $date->output(), describe( "$pre output()", $val ) ); @@ -98,11 +114,10 @@ foreach $format (@formats) { ok( $val = $date->output(), describe( "$pre output()", $val ) ); # ok($format eq ($format = $date->format()), "$pre format() : $format" ); - print "\n"; } } -diag "\nTesting object independence from class\n"; +diag "Testing object independence from class"; my $in1 = '12/25/1952'; # us my $in2 = '13/01/2001'; # metric my $d1 = C4::Dates->new( $in1, 'us' ); @@ -110,4 +125,4 @@ my $d2 = C4::Dates->new( $in2, 'metric' ); my $out1 = $d1->output('iso'); my $out2 = $d2->output('iso'); ok( $out1 ne $out2, "subsequent constructors get different dataspace ($out1 != $out2)" ); -diag "done.\n"; +diag "done."; -- 1.7.9.5