--- Begin Message ---
Package: libtest-warn-perl
Version: 0.08-2
Severity: minor
Tags: patch
The messages printed by this package are not fully idiomatic English.
Please find attached a patch for the current stable version.
(The latest upstream version on CPAN is still 0.08, from 2003.)
/* era */
--
If this were a real .signature, it would suck less. Well, maybe not.
--- Warn.pm.orig 2005-08-10 13:18:54.057617480 +0300
+++ Warn.pm 2005-08-10 13:41:46.980901416 +0300
@@ -9,13 +9,13 @@
warning_is {foo(-dri => "/")} "Unknown Parameter 'dri'", "dri != dir gives warning";
warnings_are {bar(1,1)} ["Width very small", "Height very small"];
- warning_is {add(2,2)} undef, "No warning to calc 2+2"; # or
- warnings_are {add(2,2)} [], "No warning to calc 2+2"; # what reads better :-)
+ warning_is {add(2,2)} undef, "No warning for calc 2+2"; # or
+ warnings_are {add(2,2)} [], "No warning for calc 2+2"; # reads better :-)
warning_like {foo(-dri => "/"} qr/unknown param/i, "an unknown parameter test";
warnings_like {bar(1,1)} [qr/width.*small/i, qr/height.*small/i];
- warning_is {foo()} {carped => 'didn't found the right parameters'};
+ warning_is {foo()} {carped => 'didn't find the right parameters'};
warnings_like {foo()} [qr/undefined/,qr/undefined/,{carped => qr/no result/i}];
warning_like {foo(undef)} 'uninitialized';
@@ -27,9 +27,9 @@
=head1 DESCRIPTION
-This module provides a few convenience methods for testing warning based code.
+This module provides a few convenience methods for testing warning-based code.
-If you are not already familiar with the Test::More manpage
+If you are not already familiar with the Test::More manpage,
now would be the time to go take a look.
=head2 FUNCTIONS
@@ -38,29 +38,29 @@
=item warning_is BLOCK STRING, TEST_NAME
-Tests that BLOCK gives exactly the one specificated warning.
-The test fails if the BLOCK warns more then one times or doesn't warn.
+Tests that BLOCK gives exactly the one specified warning.
+The test fails if the BLOCK warns more than once, or doesn't warn.
If the string is undef,
then the tests succeeds iff the BLOCK doesn't give any warning.
-Another way to say that there aren't ary warnings in the block,
-is C<warnings_are {foo()} [], "no warnings in">.
+Another way to say that there aren't ary warnings in the block
+is C<warnings_are {foo()} [], "no warnings">.
If you want to test for a warning given by carp,
-You have to write something like:
+you have to write something like:
C<warning_is {carp "msg"} {carped => 'msg'}, "Test for a carped warning">.
-The test will fail,
+The test will fail
if a "normal" warning is found instead of a "carped" one.
Note: C<warn "foo"> would print something like C<foo at -e line 1>.
This method ignores everything after the at. That means, to match this warning
you would have to call C<warning_is {warn "foo"} "foo", "Foo succeeded">.
-If you need to test for a warning at an exactly line,
-try better something like C<warning_like {warn "foo"} qr/at XYZ.dat line 5/>.
+If you need to test for a warning at a particular line number,
+try something like C<warning_like {warn "foo"} qr/at XYZ.dat line 5/>.
-warning_is and warning_are are only aliases to the same method.
+warning_is and warnings_are are only aliases to the same method,
+simply in order to make for more readable method names.
So you also could write
C<warning_is {foo()} [], "no warning"> or something similar.
-I decided me to give two methods to have some better readable method names.
A true value is returned if the test succeeds, false otherwise.
@@ -70,32 +70,33 @@
=item warnings_are BLOCK ARRAYREF, TEST_NAME
Tests to see that BLOCK gives exactly the specificated warnings.
-The test fails if the BLOCK warns a different number than the size of the ARRAYREf
-would have expected.
+The test fails if the warnings from BLOCK are not exactly the ones in ARRAYREF.
If the ARRAYREF is equal to [],
then the test succeeds iff the BLOCK doesn't give any warning.
Please read also the notes to warning_is as these methods are only aliases.
-If you want more than one tests for carped warnings look that way:
+If you want more than one test for carped warnings, try this:
C<warnings_are {carp "c1"; carp "c2"} {carped => ['c1','c2'];> or
C<warnings_are {foo()} ["Warning 1", {carped => ["Carp 1", "Carp 2"]}, "Warning 2"]>.
-Note that C<{carped => ...}> has always to be a hash ref.
+Note that C<{carped => ...}> always has to be a hash ref.
=item warning_like BLOCK REGEXP, TEST_NAME
-Tests that BLOCK gives exactly one warning and it can be matched to the given regexp.
+Tests that BLOCK gives exactly one warning and it can be matched by
+the given regexp.
If the string is undef,
then the tests succeeds iff the BLOCK doesn't give any warning.
-The REGEXP is matched after the whole warn line,
-which consists in general of "WARNING at __FILE__ line __LINE__".
-So you can check for a warning in at File Foo.pm line 5 with
+The REGEXP is matched against the whole warning message,
+which in general has the form "WARNING at __FILE__ line __LINE__".
+So you can check for a warning in the file Foo.pm on line 5 with
C<warning_like {bar()} qr/at Foo.pm line 5/, "Testname">.
-I don't know whether it's sensful to do such a test :-(
-However, you should be prepared as a matching with 'at', 'file', '\d'
+Perhaps it isn't sensible to perform such a test;
+however, you should be aware that matching on a sweeping regular expression
+such as 'at', 'file', '\d'
or similar will always pass.
-Think to the qr/^foo/ if you want to test for warning "foo something" in file foo.pl.
+Consider qr/^foo/ if you want to test for warning "foo something" in file foo.pl.
You can also write the regexp in a string as "/.../"
instead of using the qr/.../ syntax.
@@ -103,7 +104,7 @@
as strings without slashes are reserved for warning categories
(to match warning categories as can be seen in the perllexwarn man page).
-Similar to C<warning_is>,
+As with C<warning_is>,
you can test for warnings via C<carp> with:
C<warning_like {bar()} {carped => qr/bar called too early/i};>
@@ -119,17 +120,18 @@
Tests whether a BLOCK gives exactly one warning of the passed category.
The categories are grouped in a tree,
like it is expressed in perllexwarn.
-Note, that they have the hierarchical structure from perl 5.8.0,
-wich has a little bit changed to 5.6.1 or earlier versions
-(You can access the internal used tree with C<$Test::Warn::Categorization::tree>,
-allthough I wouldn't recommend it)
+Note that they have the hierarchical structure from perl 5.8.0,
+which is slightly different from how it was organized up through perl 5.6.1.
+(You can access the internal hierarchy with
+C<$Test::Warn::Categorization::tree>,
+although it isn't recommended).
Thanks to the grouping in a tree,
-it's simple possible to test for an 'io' warning,
-instead for testing for a 'closed|exec|layer|newline|pipe|unopened' warning.
+it's possible to test simply for an 'io' warning,
+instead of testing for a 'closed|exec|layer|newline|pipe|unopened' warning.
-Note, that warnings occuring at compile time,
-can only be catched in an eval block. So
+Note that compile-time warnings
+can only be caught in an eval block. So
warning_like {eval q/"$x"; $x;/}
[qw/void uninitialized/],
@@ -138,9 +140,8 @@
will work,
while it wouldn't work without the eval.
-Note, that it isn't possible yet,
-to test for own categories,
-created with warnings::register.
+Note also that it isn't yet possible
+to test for categories you created yourself with C<warnings::register>.
=item warnings_like BLOCK ARRAYREF, TEST_NAME
@@ -160,7 +161,7 @@
{carped => qr/bar warning/i},
'io'
],
- "I hope, you'll never have to write a test for so many warnings :-)";
+ "I hope you'll never have to write a test for so many warnings :-)";
=back
@@ -174,27 +175,28 @@
=head1 BUGS
Please note that warnings with newlines inside are making a lot of trouble.
-The only sensful way to handle them is to use are the C<warning_like> or
-C<warnings_like> methods. Background for these problems is that there is no
-really secure way to distinguish between warnings with newlines and a tracing
+The only sensible way to handle them is to use the C<warning_like> or
+C<warnings_like> methods.
+The background for these problems is that there is no
+really secure way to distinguish between warnings with newlines and a trailing
stacktrace.
-If a method has it's own warn handler,
+If a method has its own warn handler,
overwriting C<$SIG{__WARN__}>,
my test warning methods won't get these warnings.
-The C<warning_like BLOCK CATEGORY, TEST_NAME> method isn't extremely tested.
-Please use this calling style with higher attention and
-tell me if you find a bug.
+The C<warning_like BLOCK CATEGORY, TEST_NAME> method isn't fully tested.
+Please pay attention if you use this this calling style,
+and report any bugs you find.
=head1 TODO
Improve this documentation.
The code has some parts doubled - especially in the test scripts.
-This is really awkward and has to be changed.
+This is really awkward and must be changed.
-Please feel free to suggest me any improvements.
+Please feel free to suggest improvements.
=head1 SEE ALSO
@@ -359,7 +361,7 @@
$Tester->diag( "found warning: $_" );
}
}
- $Tester->diag( "didn't found a warning" ) unless @_;
+ $Tester->diag( "didn't find any warning" ) unless @_;
}
sub _diag_exp_warning {
--- End Message ---