From 64e78690d9bfd8561875abfe7a95f982294776dd Mon Sep 17 00:00:00 2001 From: Colin Kuskie Date: Sat, 20 Jun 2009 01:51:06 +0000 Subject: [PATCH] Fix a test that is leaking a workflow. Add workflow cleanup code to WebGUI::Test. --- t/Group/resetGroupFields.t | 1 + t/lib/WebGUI/Test.pm | 53 ++++++++++++++++++++++++++++++++------ 2 files changed, 46 insertions(+), 8 deletions(-) diff --git a/t/Group/resetGroupFields.t b/t/Group/resetGroupFields.t index 04611b665..58e7cb560 100644 --- a/t/Group/resetGroupFields.t +++ b/t/Group/resetGroupFields.t @@ -89,6 +89,7 @@ my $workflow = WebGUI::Workflow->create($session, mode => 'realtime', }, ); +WebGUI::Test->workflowsToDelete($workflow); WebGUI::Test->originalConfig('workflowActivities'); $session->config->addToArray('workflowActivities/User', 'WebGUI::Workflow::Activity::AddUserToGroup'); diff --git a/t/lib/WebGUI/Test.pm b/t/lib/WebGUI/Test.pm index acdf3909a..14828fef7 100644 --- a/t/lib/WebGUI/Test.pm +++ b/t/lib/WebGUI/Test.pm @@ -60,6 +60,7 @@ my @usersToDelete; my @sessionsToDelete; my @storagesToDelete; my @tagsToRollback; +my @workflowsToDelete; my $smtpdPid; my $smtpdStream; @@ -174,17 +175,37 @@ END { $session->var->end; $session->close; } - foreach my $tag (@tagsToRollback) { + TAG: foreach my $tag (@tagsToRollback) { $tag->rollback; } + WORKFLOW: foreach my $workflow (@workflowsToDelete) { + my $workflowId = $workflow->getId; + next WORKFLOW if any { $workflowId eq $_ } qw/ + AuthLDAPworkflow000001 + csworkflow000000000001 + DPWwf20061030000000002 + PassiveAnalytics000001 + pbworkflow000000000001 + pbworkflow000000000002 + pbworkflow000000000003 + pbworkflow000000000004 + pbworkflow000000000005 + pbworkflow000000000006 + pbworkflow000000000007 + send_webgui_statistics + /; + + $workflow->delete; + } if ($ENV{WEBGUI_TEST_DEBUG}) { - $Test->diag('Sessions: '.$SESSION->db->quickScalar('select count(*) from userSession')); - $Test->diag('Scratch : '.$SESSION->db->quickScalar('select count(*) from userSessionScratch')); - $Test->diag('Users : '.$SESSION->db->quickScalar('select count(*) from users')); - $Test->diag('Groups : '.$SESSION->db->quickScalar('select count(*) from groups')); - $Test->diag('mailQ : '.$SESSION->db->quickScalar('select count(*) from mailQueue')); - $Test->diag('Tags : '.$SESSION->db->quickScalar('select count(*) from assetVersionTag')); - $Test->diag('Assets : '.$SESSION->db->quickScalar('select count(*) from assetData')); + $Test->diag('Sessions : '.$SESSION->db->quickScalar('select count(*) from userSession')); + $Test->diag('Scratch : '.$SESSION->db->quickScalar('select count(*) from userSessionScratch')); + $Test->diag('Users : '.$SESSION->db->quickScalar('select count(*) from users')); + $Test->diag('Groups : '.$SESSION->db->quickScalar('select count(*) from groups')); + $Test->diag('mailQ : '.$SESSION->db->quickScalar('select count(*) from mailQueue')); + $Test->diag('Tags : '.$SESSION->db->quickScalar('select count(*) from assetVersionTag')); + $Test->diag('Assets : '.$SESSION->db->quickScalar('select count(*) from assetData')); + $Test->diag('Workflows: '.$SESSION->db->quickScalar('select count(*) from Workflow')); } while (my ($key, $value) = each %originalConfig) { if (defined $value) { @@ -607,6 +628,22 @@ sub usersToDelete { #---------------------------------------------------------------------------- +=head2 workflowsToDelete ( $workflow, [$workflow, ...] ) + +Push a list of workflow objects onto the stack of groups to be automatically deleted +at the end of the test. + +This is a class method. + +=cut + +sub workflowsToDelete { + my $class = shift; + push @workflowsToDelete, @_; +} + +#---------------------------------------------------------------------------- + =head1 BUGS When trying to load the APR module, perl invariably throws an Out Of Memory