You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@perl.apache.org by James G Smith <JG...@TAMU.Edu> on 2003/05/06 13:14:34 UTC
Re: resolving Apache::Test vs. Apache::test collision
Stas Bekman <st...@stason.org> wrote:
>We have a problem with using the Apache::Test name, more correctly we have a
>problem with using the Apache/Test.pm filename. On platforms with
>case-insentive filesystems (winFU, Mac OS X) if mod_perl 1.x is installed,
>there is Apache/test.pm (notice the lower case 't'). So when you say 'use
>Apache::Test' it loads Apache::test. Boom, nothing works.
>
>There are several routes we can take to resolve this problem:
>
>1. rename Apache::Test to something else. David Wheeler has proposed to use
>Apache::Tester (or even swap the sides: Test::Apache).
As much work as it would require at this point (going through and
changing all the package names, renaming files, munging CVS), I think
Test::Apache would fit in better.
What convinced me of this was a look at my test code. At the top, ignoring
the code to test for availability, I basically have (under the new name):
use Test::Apache qw(plan have ok skip);
use Test::Apache::Request qw(GET);
plan tests => $some_number, have 'LWP';
# rest of tests here
__END__
In my non-Apache modules, I have:
use Test::More;
plan tests => $some_number;
# rest of tests here
__END__
There's a nice symmetry here.
Of course, I had to go and try combining the two :) They seem to
work. I am able to use Test::More to plan and report testing while I
use Apache::TestRequest to do the fetching. This undercuts a little
the argument for Test::Apache being the better name. We still need
the Apache::TestRequest version of GET because it knows where the
test server is.
use Test::More;
BEGIN {
eval {
require Apache::TestRequest;
Apache::TestRequest -> import(qw(GET));
};
}
my @required = qw(
Apache::Test
Apache::TestRequest
DBD::CSV
HTML::Mason
LWP
);
my @unavailable;
if(@unavailable = grep { ! eval "require $_" } @required) {
plan skip_all => "The following modules are unavailable: "
. join(" ", @unavailable);
exit 0;
}
plan tests => 1;
my $res = GET "/mason/test1.html";
ok $res->content eq '[This is a Mason Page]
';
exit 0;
__END__
--
James Smith <JG...@TAMU.Edu>, 979-862-3725
Texas A&M CIS Operating Systems Group, Unix
---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@perl.apache.org
For additional commands, e-mail: dev-help@perl.apache.org