[Catalyst] Upgrade problems (PluginTestApp.pm)

Daniel Westermann-Clark daniel at acceleration.net
Sun Apr 30 00:17:43 CEST 2006


On 2006-04-29 14:22:26 -0600, Nathan Kurz wrote:
> I'm now having a parallel problem with installing
> Catalyst::Plugin::Authentication version 0.07.
> 
> ---------------------------------------------------------------
> 
> t/live_app.............Can't locate AuthTestApp.pm in @INC

This is due to a recent change in Catalyst::Test.  For now just force
install Catalyst::Plugin::Authentication; I did this yesterday with no
problems.

nothingmuch, attached is a patch for Catalyst::Plugin::Authentication
to move the test applications out to separate files.  The problem
results from the stricter import check in Catalyst::Test from
changeset 4031.

-- 
Daniel Westermann-Clark
-------------- next part --------------
Patching locally against mirror source http://dev.catalyst.perl.org/repos/Catalyst.
==== Patch <-> level 1
Source: [No source]
Target: 4ad37cd2-5fec-0310-835f-b3785c72a374:/trunk/Catalyst-Plugin-Authentication:3747
        (http://dev.catalyst.perl.org/repos/Catalyst)
Log:
Factor test applications out to separate files due to change in Catalyst::Test in [4031]
=== Changes
==================================================================
--- Changes	(revision 3747)
+++ Changes	(patch - level 1)
@@ -1,5 +1,8 @@
 Revision history for Perl extension Catalyst::Plugin::Authentication
 
+0.08
+        - factor test applications out to files so tests pass
+
 0.07    2006-03-17 17:33:12
         - allow base64 hashed passwords
 
=== lib/Catalyst/Plugin/Authentication.pm
==================================================================
--- lib/Catalyst/Plugin/Authentication.pm	(revision 3747)
+++ lib/Catalyst/Plugin/Authentication.pm	(patch - level 1)
@@ -22,7 +22,7 @@
 #	constant->import(have_want => eval { require Want });
 #}
 
-our $VERSION = "0.07";
+our $VERSION = "0.08";
 
 sub set_authenticated {
     my ( $c, $user ) = @_;
=== t/live_app.t
==================================================================
--- t/live_app.t	(revision 3747)
+++ t/live_app.t	(patch - level 1)
@@ -5,87 +5,7 @@
 
 use Test::More 'no_plan';
 
-{
-	package AuthTestApp;
-	use Catalyst qw/
-		Authentication
-		Authentication::Store::Minimal
-		Authentication::Credential::Password
-	/;
-
-	use Test::More;
-	use Test::Exception;
-
-	use Digest::MD5 qw/md5/;
-    use Digest::SHA1 qw/sha1_base64/;
-
-	our $users;
-
-	sub moose : Local {
-		my ( $self, $c ) = @_;
-
-		ok(!$c->user, "no user");
-		ok($c->login( "foo", "s3cr3t" ), "can login with clear");
-		is( $c->user, $users->{foo}, "user object is in proper place");
-
-		ok( !$c->user->roles, "no roles for foo" );
-		my @new = qw/foo bar gorch/;
-		$c->user->roles( @new );
-		is_deeply( [ $c->user->roles ], \@new, "roles set as array");
-
-		$c->logout;
-		ok(!$c->user, "no more user, after logout");
-
-
-		ok($c->login( "bar", "s3cr3t" ), "can login with crypted");
-		is( $c->user, $users->{bar}, "user object is in proper place");
-		$c->logout;
-
-		ok($c->login("gorch", "s3cr3t"), "can login with hashed");
-		is( $c->user, $users->{gorch}, "user object is in proper place");
-		$c->logout;
-
-		ok($c->login("shabaz", "s3cr3t"), "can login with base64 hashed");
-		is( $c->user, $users->{shabaz}, "user object is in proper place");
-		$c->logout;
-
-		ok($c->login("sadeek", "s3cr3t"), "can login with padded base64 hashed");
-		is( $c->user, $users->{sadeek}, "user object is in proper place");
-		$c->logout;
-
-		ok(!$c->login( "bar", "bad pass" ), "can't login with bad password");
-		ok(!$c->user, "no user");
-
-		throws_ok { $c->login( "baz", "foo" ) } qr/support.*mechanism/, "can't login without any supported mech";
-
-		$c->res->body( "ok" );
-	}
-
-	__PACKAGE__->config->{authentication}{users} = $users = {
-		foo => {
-			password => "s3cr3t",
-		},
-		bar => {
-			crypted_password => crypt("s3cr3t", "x8"),
-		},
-		gorch => {
-			hashed_password => md5("s3cr3t"),
-			hash_algorithm => "MD5",
-		},
-        shabaz => {
-            hashed_password => sha1_base64("s3cr3t"),
-            hash_algorithm => "SHA-1"
-        },
-        sadeek => {
-            hashed_password => sha1_base64("s3cr3t").'=',
-            hash_algorithm => "SHA-1"
-        },
-		baz => {},
-	};
-
-	__PACKAGE__->setup;
-}
-
+use lib 't/lib';
 use Catalyst::Test qw/AuthTestApp/;
 
-ok( get("/moose"), "get ok");
+ok(get("/moose"), "get ok");
=== t/live_app_session.t
==================================================================
--- t/live_app_session.t	(revision 3747)
+++ t/live_app_session.t	(patch - level 1)
@@ -11,76 +11,11 @@
 	plan tests => 14;
 }
 
-{
-	package User::SessionRestoring;
-	use base qw/Catalyst::Plugin::Authentication::User::Hash/;
+use lib 't/lib';
+use Test::WWW::Mechanize::Catalyst qw/AuthSessionTestApp/; # for the cookie support
 
-	sub for_session { $_[0]->id }
-	sub store { $_[0]->{store} }
-	
-	package AuthTestApp;
-	use Catalyst qw/
-		Session
-		Session::Store::Dummy
-		Session::State::Cookie
-
-		Authentication
-		Authentication::Store::Minimal
-		Authentication::Credential::Password
-	/;
-
-	use Test::More;
-	use Test::Exception;
-
-	use Digest::MD5 qw/md5/;
-
-	our $users;
-
-	sub moose : Local {
-		my ( $self, $c ) = @_;
-
-		ok(!$c->sessionid, "no session id yet");
-		ok(!$c->user_exists, "no user exists");
-		ok(!$c->user, "no user yet");
-		ok($c->login( "foo", "s3cr3t" ), "can login with clear");
-		is( $c->user, $users->{foo}, "user object is in proper place");
-	}
-
-	sub elk : Local {
-		my ( $self, $c ) = @_;
-
-		ok( $c->sessionid, "session ID was restored" );
-		ok( $c->user_exists, "user exists" );
-		ok( $c->user, "a user was also restored");
-		is_deeply( $c->user, $users->{foo}, "restored user is the right one (deep test - store might change identity)" );
-
-		$c->delete_session("bah");
-	}
-
-	sub fluffy_bunny : Local {
-		my ( $self, $c ) = @_;
-
-		ok( !$c->sessionid, "no session ID was restored");
-		ok( !$c->user, "no user was restored");
-	}
-
-	__PACKAGE__->config->{authentication}{users} = $users = {
-		foo => User::SessionRestoring->new(
-			id => 'foo',
-			password => "s3cr3t",
-		),
-	};
-
-	__PACKAGE__->setup;
-
-	$users->{foo}{store} = __PACKAGE__->default_auth_store;
-}
-
-use Test::WWW::Mechanize::Catalyst qw/AuthTestApp/; # for the cookie support
-
 my $m = Test::WWW::Mechanize::Catalyst->new;
 
 $m->get_ok("http://localhost/moose", "get ok");
 $m->get_ok("http://localhost/elk", "get ok");
 $m->get_ok("http://localhost/fluffy_bunny", "get ok");
-
=== t/lib/AuthSessionTestApp.pm
==================================================================
--- t/lib/AuthSessionTestApp.pm	(revision 3747)
+++ t/lib/AuthSessionTestApp.pm	(patch - level 1)
@@ -0,0 +1,62 @@
+package User::SessionRestoring;
+use base qw/Catalyst::Plugin::Authentication::User::Hash/;
+
+sub for_session { $_[0]->id }
+sub store { $_[0]->{store} }
+
+package AuthSessionTestApp;
+use Catalyst qw/
+	Session
+	Session::Store::Dummy
+	Session::State::Cookie
+
+	Authentication
+	Authentication::Store::Minimal
+	Authentication::Credential::Password
+/;
+
+use Test::More;
+use Test::Exception;
+
+use Digest::MD5 qw/md5/;
+
+our $users;
+
+sub moose : Local {
+	my ( $self, $c ) = @_;
+
+	ok(!$c->sessionid, "no session id yet");
+	ok(!$c->user_exists, "no user exists");
+	ok(!$c->user, "no user yet");
+	ok($c->login( "foo", "s3cr3t" ), "can login with clear");
+	is( $c->user, $users->{foo}, "user object is in proper place");
+}
+
+sub elk : Local {
+	my ( $self, $c ) = @_;
+
+	ok( $c->sessionid, "session ID was restored" );
+	ok( $c->user_exists, "user exists" );
+	ok( $c->user, "a user was also restored");
+	is_deeply( $c->user, $users->{foo}, "restored user is the right one (deep test - store might change identity)" );
+
+	$c->delete_session("bah");
+}
+
+sub fluffy_bunny : Local {
+	my ( $self, $c ) = @_;
+
+	ok( !$c->sessionid, "no session ID was restored");
+	ok( !$c->user, "no user was restored");
+}
+
+__PACKAGE__->config->{authentication}{users} = $users = {
+	foo => User::SessionRestoring->new(
+		id => 'foo',
+		password => "s3cr3t",
+	),
+};
+
+__PACKAGE__->setup;
+
+$users->{foo}{store} = __PACKAGE__->default_auth_store;
=== t/lib/AuthTestApp.pm
==================================================================
--- t/lib/AuthTestApp.pm	(revision 3747)
+++ t/lib/AuthTestApp.pm	(patch - level 1)
@@ -0,0 +1,77 @@
+package AuthTestApp;
+use Catalyst qw/
+	Authentication
+	Authentication::Store::Minimal
+	Authentication::Credential::Password
+/;
+
+use Test::More;
+use Test::Exception;
+
+use Digest::MD5 qw/md5/;
+use Digest::SHA1 qw/sha1_base64/;
+
+our $users;
+
+sub moose : Local {
+	my ( $self, $c ) = @_;
+
+	ok(!$c->user, "no user");
+	ok($c->login( "foo", "s3cr3t" ), "can login with clear");
+	is( $c->user, $users->{foo}, "user object is in proper place");
+
+	ok( !$c->user->roles, "no roles for foo" );
+	my @new = qw/foo bar gorch/;
+	$c->user->roles( @new );
+	is_deeply( [ $c->user->roles ], \@new, "roles set as array");
+
+	$c->logout;
+	ok(!$c->user, "no more user, after logout");
+
+	ok($c->login( "bar", "s3cr3t" ), "can login with crypted");
+	is( $c->user, $users->{bar}, "user object is in proper place");
+	$c->logout;
+
+	ok($c->login("gorch", "s3cr3t"), "can login with hashed");
+	is( $c->user, $users->{gorch}, "user object is in proper place");
+	$c->logout;
+
+	ok($c->login("shabaz", "s3cr3t"), "can login with base64 hashed");
+	is( $c->user, $users->{shabaz}, "user object is in proper place");
+	$c->logout;
+
+	ok($c->login("sadeek", "s3cr3t"), "can login with padded base64 hashed");
+	is( $c->user, $users->{sadeek}, "user object is in proper place");
+	$c->logout;
+
+	ok(!$c->login( "bar", "bad pass" ), "can't login with bad password");
+	ok(!$c->user, "no user");
+
+	throws_ok { $c->login( "baz", "foo" ) } qr/support.*mechanism/, "can't login without any supported mech";
+
+	$c->res->body( "ok" );
+}
+
+__PACKAGE__->config->{authentication}{users} = $users = {
+	foo => {
+		password => "s3cr3t",
+	},
+	bar => {
+		crypted_password => crypt("s3cr3t", "x8"),
+	},
+	gorch => {
+		hashed_password => md5("s3cr3t"),
+		hash_algorithm => "MD5",
+	},
+	shabaz => {
+		hashed_password => sha1_base64("s3cr3t"),
+		hash_algorithm => "SHA-1"
+	},
+	sadeek => {
+		hashed_password => sha1_base64("s3cr3t").'=',
+		hash_algorithm => "SHA-1"
+	},
+	baz => {},
+};
+
+__PACKAGE__->setup;

==== BEGIN SVK PATCH BLOCK ====
Version: svk 1.07 (linux)

eJyVV1t328YRZpvkNGRqp2lSp2nsdM1DH0mJKBI3AqAjRrYBkNTFVizbSmI7yAJYSKhIggFASYzJ
1LiQlGjKdfqWvOSx7/0D/WsdkJQjtbLd6ogEsTuzO/PNzLezinPn6hLVKZXynQyV72zcWykW17Gn
b1+Bt0yhQwzLs50M16mRXVLLMJ2avZVhOw1cJzDrYWeLeKUSBcrCRFkeKxwvwsZraNizG25GHC+m
eg4hGbpD0UsU01miO0sMKHcomLabpKE6tu3BBgLPczCpxkbpNdslaqy8xHaWuFicPhY3rRrJ8J0b
27ixRdzxQlPlsRyTodiJoGE5RAfL2rEPlvZfkvwZklTHOynHxOZwU3NOSlGxG9xkFjebtbbqkX3P
IDUPj21l6I6hsxwRMCE6yzI6Y2qMmDdEmtc4Q6fMApcRaMDvZiLRv9D/6s3PEtXEvxK925KQQtO/
LDJxvB/yiOuheBdLx54FwCK75SHPRjEULnLtsYSLmth1Aa8TCI6xmtqTp0TTFEyRE2ks0nmR5woU
FgSD5OkCbXD8xCOQZs/ChY4hzN3AHq61XW+M86swYp6vyJ21onhqxdx6rbVlNcbbv2ph9vnChVNJ
wfBnLZm71vK2ScObgrfQrI8tetUm3EsjXIgR5UWii5qANVPDXN4omJRBGXmKJgWThlcqQ3OTCPu9
t+H/rV8lwt2En/D9P4Z7wpmBGi/LEcLzhmGaJgUJwDBs/JrnDQ6yhi4Y+vOSEE55DyHycjVrl6hg
7oI3TvCT6S6ekqbzJ6RVl7hujM0prUInLtp8BooWG8YJcLixalxQvAoiWerFKPIvRVGI3dW1fIEq
mAAYS/Empim9YBYYRmQxhXmWBpoQJyj+8KH/pzc2EuXE442WSxBYgGbGhsxcTcUDx3EvFu/EBfPt
3jjy8e9rzWbuaipl78wCd82mc3Ub7EzPzaM0vCN7Jz13NXVmPMYG8tigeEIzNDF5FgxiMTZpI481
g3B5zBVe6qIYryDSRDCJqeV1QWQpTacxxdEm0XXRwBqliRlBmLj4jOrNvHU9EXyfeHw94W89rZ7p
aOxSsbi5uVksrhEdeND6jhSLx+4fO74xiemZfo2tYnhdzxOqwIuCIZq0pvGGDkwgCqap6WApRHWa
A1RGGKfAJHP4SfhPbjIFOa6tOGWmWTFRpk8p508on631glyKJV6CdGylmhEKUyATQy/4NLr4+Kby
5g/K20/l+9L7/vKOL3/fqySkUvn8QPmoMi/NBuXzVV8Kpb8O1vy1pzdL63636t8b3A7ORdL1I+kL
CUn+J33lIyV40JMq5eBuqAQPA2k2lL4Ylr/8Z9k4qBiHy+HnUnhpoIQGPHwlSn0e7q9Ev1sJW1K4
+bMcrT6Rw/1oOfpYCS8O5ejCj1K47ytfhdvhgtx7bTW8XzEO5AtROWxXe68tR8nV6MLn/Q8jJfqD
1D8fLfffUaLO4EHv15X+72Hs71J/d1Du+vJg4UAOrody/1oA+/Qrem+l9+nI6i0/CO+t99+q9C/e
iebWDx7+tPZZIIeXwnLvHAgW+pu/eSIdbg7LwSo8KtFXB7cO3z9Y652v+OeCtcMPDqTDnC/33wua
WN/BWwTddQkc7tNA34aQ2Y7V2JpkoobhC/Ltl9KbcG6xeJp0i8UKdrfjGnRbGjJtR3XRI5RR7+cf
ZkuWgbrkURd1U6lpRqSSsGGxKLXq9Tb24ty27R2LpFLJNath1XHthkMMXItbDtfdsx0jBZVgO0Te
10lTsrYkrm5wdstBGTDSccfljopo1dZxDT1KJettNIsyLqmZ8yijozm0iJZUMC4JDHE5o8cmATc0
bASmtYkH9KCSfSs+YqEXshqzKG3adhpEXEZ3GC+NYirRcQOhPcvbRnqNYMdyZ1G29AgEuzBpa3+B
PEaWi6wGajrAww5q1rBOuqS2U5XQHnYR+JRGIItxzbVVgxDIcFAAHJFjbW0DUTUI2D3uBrJ1fdz/
IMtrz6WSUAPEI7NpDW+btZZptlWt1Wi0AVFVXb92Y+VaWVbVbEm3G6a1BVbhLuC9iBbBOrRYypYa
ZG82lUxaxgyMzMzDzyZ8zc2nuldd4rWagM0iMoiJWzVPVc8kyzFNAKsILIvzpKAXCiwQOatzHE+J
Aouh+eAJL2gvr2FazYjClO8Tf3s7/HNE/0N6c7h+5dltLpI+eSa/J/22r7yr+K/3JKrcDRX/jUC6
HCnvVvyPI+nyE6nz+Ibkb/XhE8rBh1Jw+Wc5+GyoBHS0HFxWfHMIMz9JAQOTfjVAAyWYk0OpJwVl
XwrYQ+nyD7fCog+1rAT2sBrslsPrPSkkoRJRIyXMlYOrQAHcrQBFcrAwkIKHYTXMrcLoN8Fy/0HQ
CM3w3Fr05a3ee74c7q0EyxvBvejr3iq8LN3o1ftf9znF/0Lv31YGi0tS/7seDPR3Bt/IB3f2e3U5
QLd6lw6qwZ3g5uCucvhI2qsEzGaAjuRgd7l3SR5cV8Ivf9wYvn5QHjZDadj2K9G9p3L44Ke12UAG
p8thIpCChBTa8cOvDC9Ko2QlWBtIoVsepcq9sr86ekeGR3V0qV8eXQHDKqOc0t9YG5XC6mhdGqny
yB3Kow/CyigDVt4f1Vb8DXyU6peP8mBm8+jTSD+qVY7E3q0n1cExTZwg9NPHccwPqeRJLtgACoGi
flEtA02cUc65jco1yt3GlBqTToH9pbynrPL/V/mkxqG6/+eqPl3U6IVVDUKOHffmQHUIgSFLUGGT
ctOwg7ZsR4/ZMDk7LfNZdB89nEcP4s2hIwEywI6D29Dm1wGHeYRNjzjwBspOu+kRA36kt4FSARAN
f4dhlZ0mHLLxhDG+B8x4qaS37dh7rmrvANd20bdOzm01m7bjLXxcn7QNbj0X3yRwo42IgdIOcbMl
zTbAnLS980ryWCwlgSS68FFBYV9Iz0GYVFwD7wCv+prEQciyVHphZnGme4JKziaP8R2loBGNEnSd
MjhcoBhBNwTMc4IgULQoCIQb382gWVJecTFySRM7cHJMb0hGi8Sjx5TZ+M9WEUbus3mGegjrZ0sl
GvoWenK3vTO+7haLdxvQKjsurl2BpobtNLG3DbdKh+zCS6tlGfHdI+c5rcbO87MwOzkKs6dPQpBn
eJbPMIUOiw1owQw6y0ErmIXt81mB4cysxvACp/M0BsF/A0ijMII=
==== END SVK PATCH BLOCK ====


More information about the Catalyst mailing list