aboutsummaryrefslogtreecommitdiffstats
path: root/perllib/FixMyStreet/TestMech.pm
diff options
context:
space:
mode:
authorEdmund von der Burg <evdb@mysociety.org>2011-04-11 17:15:16 +0100
committerEdmund von der Burg <evdb@mysociety.org>2011-04-11 17:15:16 +0100
commit0786cbc17ad0d773c3fe125a43bd8b6e058a22dc (patch)
treeea4a47655b312575edca2b0ba9eb187894d644bf /perllib/FixMyStreet/TestMech.pm
parenteef4484ef6c9810dc2c174942bac0c0df13e640b (diff)
More robust tests
Diffstat (limited to 'perllib/FixMyStreet/TestMech.pm')
-rw-r--r--perllib/FixMyStreet/TestMech.pm26
1 files changed, 24 insertions, 2 deletions
diff --git a/perllib/FixMyStreet/TestMech.pm b/perllib/FixMyStreet/TestMech.pm
index 3c2eb533d..26738556d 100644
--- a/perllib/FixMyStreet/TestMech.pm
+++ b/perllib/FixMyStreet/TestMech.pm
@@ -101,9 +101,31 @@ sub log_out_ok {
$mech->not_logged_in_ok;
}
+=head2 delete_user
+
+ $mech->delete_user( $user );
+ $mech->delete_user( $email );
+
+Delete the current user, including linked objects like problems etc. Can be
+either a user object or an email address.
+
+=cut
+
sub delete_user {
- my $mech = shift;
- my $user = shift;
+ my $mech = shift;
+ my $email_or_user = shift;
+
+ my $user =
+ ref $email_or_user
+ ? $email_or_user
+ : FixMyStreet::App->model('DB::User')
+ ->find( { email => $email_or_user } );
+
+ # If no user found we can't delete them
+ if ( !$user ) {
+ ok( 1, "No user found to delete" );
+ return 1;
+ }
$mech->log_out_ok;
ok( $_->delete, "delete problem " . $_->title ) #