From: Robert Buels Date: Wed, 4 Aug 2010 20:04:14 +0000 (+0000) Subject: don't load Catalyst::Exception in Utils.pm BEGIN, because some Scripts::* load Utils... X-Git-Tag: 5.89000~22^2 X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?p=catagits%2FCatalyst-Runtime.git;a=commitdiff_plain;h=41a8bf1f4e417f1439866c09c08a3998ae81528a;hp=69c6b6cb43d15b6a145523f4d83f3855b6c3677e don't load Catalyst::Exception in Utils.pm BEGIN, because some Scripts::* load Utils before MyApp.pm, meaning that ::Exception::CATALYST_EXCEPTION_CLASS in MyApp.pm will not be respected --- diff --git a/lib/Catalyst/Utils.pm b/lib/Catalyst/Utils.pm index 53bf795..d72441e 100644 --- a/lib/Catalyst/Utils.pm +++ b/lib/Catalyst/Utils.pm @@ -1,7 +1,6 @@ package Catalyst::Utils; use strict; -use Catalyst::Exception; use File::Spec; use HTTP::Request; use Path::Class; @@ -140,6 +139,13 @@ sub class2tempdir { eval { $tmpdir->mkpath }; if ($@) { + # don't load Catalyst::Exception as a BEGIN in Utils, + # because Utils often gets loaded before MyApp.pm, and if + # Catalyst::Exception is loaded before MyApp.pm, it does + # not honor setting + # $Catalyst::Exception::CATALYST_EXCEPTION_CLASS in + # MyApp.pm + require Catalyst::Exception; Catalyst::Exception->throw( message => qq/Couldn't create tmpdir '$tmpdir', "$@"/ ); } diff --git a/t/custom_exception_class_simple.t b/t/custom_exception_class_simple.t index 8c8c0c2..24983fa 100644 --- a/t/custom_exception_class_simple.t +++ b/t/custom_exception_class_simple.t @@ -4,9 +4,17 @@ use strict; use warnings; use FindBin qw/$Bin/; use lib "$Bin/lib"; -use Test::More tests => 1; +use Test::More tests => 2; use Test::Exception; lives_ok { require TestAppClassExceptionSimpleTest; } 'Can load application'; + + +lives_ok { + Catalyst::Exception->throw +} 'throw is properly stubbed out'; + + + diff --git a/t/lib/TestAppClassExceptionSimpleTest.pm b/t/lib/TestAppClassExceptionSimpleTest.pm index aef61be..cc0ba44 100644 --- a/t/lib/TestAppClassExceptionSimpleTest.pm +++ b/t/lib/TestAppClassExceptionSimpleTest.pm @@ -10,6 +10,8 @@ package TestAppClassExceptionSimpleTest; use strict; use warnings; +use Catalyst::Utils; #< some of the scripts use Catalyst::Utils before MyApp.pm + BEGIN { $Catalyst::Exception::CATALYST_EXCEPTION_CLASS = 'TestAppClassExceptionSimpleTest::Exception'; } use Catalyst;