Scheduler: Fixed under warning, added some additional YAML tests
Andy Grundman [Fri, 10 Mar 2006 15:02:54 +0000 (15:02 +0000)]
Changes
lib/Catalyst/Plugin/Scheduler.pm
t/08yaml.t
t/lib/TestApp/test.yml

diff --git a/Changes b/Changes
index ee2ce5a..26d6fdb 100644 (file)
--- a/Changes
+++ b/Changes
@@ -6,6 +6,7 @@ Revision history for Perl extension Catalyst::Plugin::Scheduler
           event, the last time it ran, and the last output or error.
         - Store the last runtime and last output from each event for
           display in scheduler_state/dump_these.
+        - Added additional YAML tests.
 
 0.05    2005-12-29 15:50:00
         - Fixed bug when using @monthly.
index c85de68..6a200f1 100644 (file)
@@ -85,7 +85,7 @@ sub dispatch {
     for my $event ( @{ $c->_events } ) {
         my $next_run;
 
-        if (   $event->{trigger}
+        if (   $event->{trigger} && $c->req->params->{schedule_trigger}
             && $event->{trigger} eq $c->req->params->{schedule_trigger} )
         {
 
@@ -210,7 +210,7 @@ sub scheduler_state {
             = $c->_event_state->{events}->{ $event->{event} }->{last_run};
         if ( $last_run ) {
             $last_run = DateTime->from_epoch(
-                epoch => $last_run,
+                epoch     => $last_run,
                 time_zone => $conf->{time_zone},
             );
             $dump->{last_run} 
@@ -248,7 +248,7 @@ sub _check_yaml {
         if ( $mtime > $c->_event_state->{yaml_mtime}->{$$} ) {
             $c->_event_state->{yaml_mtime}->{$$} = $mtime;
 
-            # clean up old PID files listed in yaml_mtime
+            # clean up old PIDs listed in yaml_mtime
             foreach my $pid ( keys %{ $c->_event_state->{yaml_mtime} } ) {
                 if ( $c->_event_state->{yaml_mtime}->{$pid} < $mtime ) {
                     delete $c->_event_state->{yaml_mtime}->{$pid};
index 6d7d7ea..e54efb1 100644 (file)
@@ -8,7 +8,7 @@ use lib "$FindBin::Bin/lib";
 use Test::More;
 use Storable qw/lock_store lock_retrieve/;
 
-plan tests => 3;
+plan tests => 6;
 use Catalyst::Test 'TestApp';
 
 our $STATE = "$FindBin::Bin/lib/TestApp/scheduler.state";
@@ -29,3 +29,11 @@ TestApp->config->{scheduler}->{yaml_file}
     unlink "$FindBin::Bin/lib/TestApp/every_minute.log";
 }
 
+# test that a YAML trigger works
+{
+    ok( my $res = request('http://localhost/?schedule_trigger=some_long_trigger_name'), 'request ok' );
+    is( $res->content, 'default', 'response ok' );
+    is( -e "$FindBin::Bin/lib/TestApp/every_minute.log", 1, 'every_minute executed ok' );
+    unlink "$FindBin::Bin/lib/TestApp/every_minute.log";
+}
+
index eff6b8f..6aeab4d 100644 (file)
@@ -1,4 +1,4 @@
 ---
 - at: '* * * * *'
   event: /cron/every_minute
-
+  trigger: some_long_trigger_name