aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDave Arter <davea@mysociety.org>2016-07-14 11:27:12 +0100
committerDave Arter <davea@mysociety.org>2016-07-19 18:10:04 +0100
commitdef23b4c2ed67e3920489d07cf04689117274fc8 (patch)
tree3169b8634ea21351eb65e8f2e9c3040e282d618f
parenta001715332d9423dd4c68542f7eceac4c2e3900c (diff)
Use improved TestMech::create_user_ok instead of User::find_or_create
This improves create_user_ok to work more like create_body_ok where extra params can be passed in and set on the model.
-rw-r--r--perllib/FixMyStreet/TestMech.pm7
-rw-r--r--t/app/controller/admin.t36
-rw-r--r--t/app/controller/alert_new.t56
-rw-r--r--t/app/controller/contact.t15
-rw-r--r--t/app/controller/dashboard.t11
-rw-r--r--t/app/controller/moderate.t4
-rw-r--r--t/app/controller/questionnaire.t5
-rw-r--r--t/app/controller/report_display.t12
-rw-r--r--t/app/controller/report_interest_count.t5
-rw-r--r--t/app/controller/report_new.t9
-rw-r--r--t/app/controller/report_updates.t12
-rw-r--r--t/app/controller/rss.t3
-rw-r--r--t/app/controller/token.t4
13 files changed, 47 insertions, 132 deletions
diff --git a/perllib/FixMyStreet/TestMech.pm b/perllib/FixMyStreet/TestMech.pm
index 2ad820d1f..937780a31 100644
--- a/perllib/FixMyStreet/TestMech.pm
+++ b/perllib/FixMyStreet/TestMech.pm
@@ -63,11 +63,10 @@ Create a test user (or find it and return if it already exists).
sub create_user_ok {
my $self = shift;
- my ($email) = @_;
+ my ( $email, %extra ) = @_;
- my $user =
- FixMyStreet::DB->resultset('User')
- ->find_or_create( { email => $email } );
+ my $params = { email => $email, %extra };
+ my $user = FixMyStreet::DB->resultset('User')->find_or_create($params);
ok $user, "found/created user for $email";
return $user;
diff --git a/t/app/controller/admin.t b/t/app/controller/admin.t
index 0f6f9744c..51307f756 100644
--- a/t/app/controller/admin.t
+++ b/t/app/controller/admin.t
@@ -6,32 +6,16 @@ use FixMyStreet::TestMech;
my $mech = FixMyStreet::TestMech->new;
-my $user =
- FixMyStreet::App->model('DB::User')
- ->find_or_create( { email => 'test@example.com' } );
-ok $user, "created test user";
-$user->update({ name => 'Test User' });
-
-my $user2 =
- FixMyStreet::App->model('DB::User')
- ->find_or_create( { email => 'test2@example.com', name => 'Test User 2' } );
-ok $user2, "created second test user";
-
-my $superuser =
- FixMyStreet::App->model('DB::User')
- ->find_or_create( { email => 'superuser@example.com', name => 'Super User', is_superuser => 1 } );
-ok $superuser, "created superuser";
-
-my $oxfordshire = $mech->create_body_ok(2237, 'Oxfordshire County Council', id => 2237 );
-my $oxfordshireuser =
- FixMyStreet::App->model('DB::User')
- ->find_or_create( { email => 'counciluser@example.com', name => 'Council User', from_body => $oxfordshire } );
-ok $oxfordshireuser, "created council user";
-
-
-my $user3 =
- FixMyStreet::App->model('DB::User')
- ->find( { email => 'test3@example.com', name => 'Test User 2' } );
+my $user = $mech->create_user_ok('test@example.com', name => 'Test User');
+
+my $user2 = $mech->create_user_ok('test2@example.com', name => 'Test User 2');
+
+my $superuser = $mech->create_user_ok('superuser@example.com', name => 'Super User', is_superuser => 1);
+
+my $oxfordshire = $mech->create_body_ok(2237, 'Oxfordshire County Council', id => 2237);
+my $oxfordshireuser = $mech->create_user_ok('counciluser@example.com', name => 'Council User', from_body => $oxfordshire);
+
+my $user3 = $mech->create_user_ok('test3@example.com', name => 'Test User 2');
if ( $user3 ) {
$mech->delete_user( $user3 );
diff --git a/t/app/controller/alert_new.t b/t/app/controller/alert_new.t
index 06932f70a..2c20daf9d 100644
--- a/t/app/controller/alert_new.t
+++ b/t/app/controller/alert_new.t
@@ -156,9 +156,7 @@ foreach my $test (
my $type = 'area_problems';
- my $user =
- FixMyStreet::App->model('DB::User')
- ->find_or_create( { email => 'test-new@example.com' } );
+ my $user = $mech->create_user_ok('test-new@example.com');
my $alert = FixMyStreet::App->model('DB::Alert')->find(
{
@@ -204,9 +202,7 @@ foreach my $test (
subtest $test->{desc} => sub {
my $type = $test->{type} . '_problems';
- my $user =
- FixMyStreet::App->model('DB::User')
- ->find_or_create( { email => $test->{email} } );
+ my $user = $mech->create_user_ok($test->{email});
$mech->log_in_ok( $test->{email} );
$mech->clear_emails_ok;
@@ -335,13 +331,9 @@ subtest "Test normal alert signups and that alerts are sent" => sub {
$mech->delete_user( 'reporter@example.com' );
$mech->delete_user( 'alerts@example.com' );
- my $user1 = FixMyStreet::App->model('DB::User')
- ->find_or_create( { email => 'reporter@example.com', name => 'Reporter User' } );
- ok $user1, "created test user";
+ my $user1 = $mech->create_user_ok('reporter@example.com', name => 'Reporter User' );
- my $user2 = FixMyStreet::App->model('DB::User')
- ->find_or_create( { email => 'alerts@example.com', name => 'Alert User' } );
- ok $user2, "created test user";
+ my $user2 = $mech->create_user_ok('alerts@example.com', name => 'Alert User' );
for my $alert (
{
@@ -489,13 +481,9 @@ subtest "Test signature template is used from cobrand" => sub {
$mech->delete_user( 'reporter@example.com' );
$mech->delete_user( 'alerts@example.com' );
- my $user1 = FixMyStreet::App->model('DB::User')
- ->find_or_create( { email => 'reporter@example.com', name => 'Reporter User' } );
- ok $user1, "created test user";
+ my $user1 = $mech->create_user_ok('reporter@example.com', name => 'Reporter User' );
- my $user2 = FixMyStreet::App->model('DB::User')
- ->find_or_create( { email => 'alerts@example.com', name => 'Alert User' } );
- ok $user2, "created test user";
+ my $user2 = $mech->create_user_ok('alerts@example.com', name => 'Alert User' );
my $dt = DateTime->now()->add( days => 2);
@@ -638,13 +626,9 @@ for my $test (
$mech->delete_user( 'reporter@example.com' );
$mech->delete_user( 'alerts@example.com' );
- my $user1 = FixMyStreet::App->model('DB::User')
- ->find_or_create( { email => 'reporter@example.com', name => 'Reporter User' } );
- ok $user1, "created test user";
+ my $user1 = $mech->create_user_ok('reporter@example.com', name => 'Reporter User');
- my $user2 = FixMyStreet::App->model('DB::User')
- ->find_or_create( { email => 'alerts@example.com', name => 'Alert User' } );
- ok $user2, "created test user";
+ my $user2 = $mech->create_user_ok('alerts@example.com', name => 'Alert User');
my $dt = DateTime->now->add( minutes => -30 );
my $r_dt = $dt->clone->add( minutes => 20 );
@@ -711,17 +695,11 @@ subtest 'check new updates alerts for non public reports only go to report owner
$mech->delete_user( 'reporter@example.com' );
$mech->delete_user( 'alerts@example.com' );
- my $user1 = FixMyStreet::App->model('DB::User')
- ->find_or_create( { email => 'reporter@example.com', name => 'Reporter User' } );
- ok $user1, "created test user";
+ my $user1 = $mech->create_user_ok('reporter@example.com', name => 'Reporter User');
- my $user2 = FixMyStreet::App->model('DB::User')
- ->find_or_create( { email => 'alerts@example.com', name => 'Alert User' } );
- ok $user2, "created test user";
+ my $user2 = $mech->create_user_ok('alerts@example.com', name => 'Alert User');
- my $user3 = FixMyStreet::App->model('DB::User')
- ->find_or_create( { email => 'updates@example.com', name => 'Update User' } );
- ok $user3, "created test user";
+ my $user3 = $mech->create_user_ok('updates@example.com', name => 'Update User');
my $dt = DateTime->now->add( minutes => -30 );
my $r_dt = $dt->clone->add( minutes => 20 );
@@ -812,17 +790,11 @@ subtest 'check setting inlude dates in new updates cobrand option' => sub {
$mech->delete_user( 'reporter@example.com' );
$mech->delete_user( 'alerts@example.com' );
- my $user1 = FixMyStreet::App->model('DB::User')
- ->find_or_create( { email => 'reporter@example.com', name => 'Reporter User' } );
- ok $user1, "created test user";
+ my $user1 = $mech->create_user_ok('reporter@example.com', name => 'Reporter User');
- my $user2 = FixMyStreet::App->model('DB::User')
- ->find_or_create( { email => 'alerts@example.com', name => 'Alert User' } );
- ok $user2, "created test user";
+ my $user2 = $mech->create_user_ok('alerts@example.com', name => 'Alert User');
- my $user3 = FixMyStreet::App->model('DB::User')
- ->find_or_create( { email => 'updates@example.com', name => 'Update User' } );
- ok $user3, "created test user";
+ my $user3 = $mech->create_user_ok('updates@example.com', name => 'Update User');
my $dt = DateTime->now->add( minutes => -30 );
my $r_dt = $dt->clone->add( minutes => 20 );
diff --git a/t/app/controller/contact.t b/t/app/controller/contact.t
index 4ac69a9f8..1b0f09a85 100644
--- a/t/app/controller/contact.t
+++ b/t/app/controller/contact.t
@@ -52,12 +52,7 @@ for my $test (
)
{
subtest 'check reporting a problem displays correctly' => sub {
- my $user = FixMyStreet::App->model('DB::User')->find_or_create(
- {
- name => $test->{name},
- email => $test->{email}
- }
- );
+ my $user = $mech->create_user_ok($test->{email}, name => $test->{name});
my $problem = FixMyStreet::App->model('DB::Problem')->create(
{
@@ -80,12 +75,8 @@ for my $test (
if ( $test->{update} ) {
my $update_info = $test->{update};
- my $update_user = FixMyStreet::App->model('DB::User')->find_or_create(
- {
- name => $update_info->{name},
- email => $update_info->{email}
- }
- );
+ my $update_user = $mech->create_user_ok($update_info->{email},
+ name => $update_info->{name});
$update = FixMyStreet::App->model('DB::Comment')->create(
{
diff --git a/t/app/controller/dashboard.t b/t/app/controller/dashboard.t
index 3829873e5..5ea5cb9f5 100644
--- a/t/app/controller/dashboard.t
+++ b/t/app/controller/dashboard.t
@@ -16,14 +16,9 @@ my $test_ward = 20723;
my $body = $mech->create_body_ok($test_council, 'City of Edinburgh Council');
$mech->delete_user( $test_user );
-my $user = FixMyStreet::App->model('DB::User')->create( {
- email => $test_user,
- password => $test_pass,
-} );
-
-my $p_user = FixMyStreet::App->model('DB::User')->find_or_create( {
- email => 'p_user@example.com'
-} );
+my $user = $mech->create_user_ok($test_user, password => $test_pass);
+
+my $p_user = $mech->create_user_ok('p_user@example.com');
# Dashboard tests assume we are not too early in year, to allow reporting
# within same year, as a convenience.
diff --git a/t/app/controller/moderate.t b/t/app/controller/moderate.t
index 38216c708..14c751115 100644
--- a/t/app/controller/moderate.t
+++ b/t/app/controller/moderate.t
@@ -15,9 +15,7 @@ my $body = $mech->create_body_ok( $BROMLEY_ID, 'Bromley Council' );
my $dt = DateTime->now;
-my $user =
- FixMyStreet::App->model('DB::User')
- ->find_or_create( { email => 'test-moderation@example.com', name => 'Test User' } );
+my $user = $mech->create_user_ok('test-moderation@example.com', name => 'Test User');
$user->user_body_permissions->delete_all;
$user->discard_changes;
diff --git a/t/app/controller/questionnaire.t b/t/app/controller/questionnaire.t
index 7bc6545db..7a46e48bd 100644
--- a/t/app/controller/questionnaire.t
+++ b/t/app/controller/questionnaire.t
@@ -17,10 +17,7 @@ $mech->clear_emails_ok;
# create a test user and report
$mech->delete_user('test@example.com');
-my $user =
- FixMyStreet::App->model('DB::User')
- ->find_or_create( { email => 'test@example.com', name => 'Test User' } );
-ok $user, "created test user";
+my $user = $mech->create_user_ok('test@example.com', name => 'Test User');
my $dt = DateTime->now()->subtract( weeks => 5 );
my $report_time = $dt->ymd . ' ' . $dt->hms;
diff --git a/t/app/controller/report_display.t b/t/app/controller/report_display.t
index 265760d86..fb532ddc4 100644
--- a/t/app/controller/report_display.t
+++ b/t/app/controller/report_display.t
@@ -12,15 +12,9 @@ my $mech = FixMyStreet::TestMech->new;
# create a test user and report
$mech->delete_user('test@example.com');
-my $user =
- FixMyStreet::App->model('DB::User')
- ->find_or_create( { email => 'test@example.com', name => 'Test User' } );
-ok $user, "created test user";
-
-my $user2 =
- FixMyStreet::App->model('DB::User')
- ->find_or_create( { email => 'test2@example.com', name => 'Other User' } );
-ok $user2, "created test user";
+my $user = $mech->create_user_ok('test@example.com', name => 'Test User');
+
+my $user2 = $mech->create_user_ok('test2@example.com', name => 'Other User');
my $dt = DateTime->new(
year => 2011,
diff --git a/t/app/controller/report_interest_count.t b/t/app/controller/report_interest_count.t
index 4e86789ba..3cb80ea5f 100644
--- a/t/app/controller/report_interest_count.t
+++ b/t/app/controller/report_interest_count.t
@@ -22,10 +22,7 @@ my $mech = FixMyStreet::TestMech->new;
# create a test user and report
$mech->delete_user('test@example.com');
-my $user =
- FixMyStreet::App->model('DB::User')
- ->find_or_create( { email => 'test@example.com', name => 'Test User' } );
-ok $user, "created test user";
+my $user = $mech->create_user_ok('test@example.com', name => 'Test User');
my $dt = DateTime->new(
year => 2011,
diff --git a/t/app/controller/report_new.t b/t/app/controller/report_new.t
index 6ea4c9523..2aebfa00b 100644
--- a/t/app/controller/report_new.t
+++ b/t/app/controller/report_new.t
@@ -654,8 +654,7 @@ subtest "test password errors for a user who is signing in as they report" => su
# check that the user does not exist
my $test_email = 'test-2@example.com';
- my $user = FixMyStreet::App->model('DB::User')->find_or_create( { email => $test_email } );
- ok $user, "test user does exist";
+ my $user = $mech->create_user_ok($test_email);
# setup the user.
ok $user->update( {
@@ -707,8 +706,7 @@ subtest "test report creation for a user who is signing in as they report" => su
# check that the user does not exist
my $test_email = 'test-2@example.com';
- my $user = FixMyStreet::App->model('DB::User')->find_or_create( { email => $test_email } );
- ok $user, "test user does exist";
+ my $user = $mech->create_user_ok($test_email);
# setup the user.
ok $user->update( {
@@ -909,8 +907,7 @@ subtest "test report creation for a category that is non public" => sub {
# check that the user does not exist
my $test_email = 'test-2@example.com';
- my $user = FixMyStreet::App->model('DB::User')->find_or_create( { email => $test_email } );
- ok $user, "test user does exist";
+ my $user = $mech->create_user_ok($test_email);
$contact1->update( { non_public => 1 } );
diff --git a/t/app/controller/report_updates.t b/t/app/controller/report_updates.t
index 2a3c7c0b3..e077a07c9 100644
--- a/t/app/controller/report_updates.t
+++ b/t/app/controller/report_updates.t
@@ -13,15 +13,9 @@ my $mech = FixMyStreet::TestMech->new;
$mech->delete_user('commenter@example.com');
$mech->delete_user('test@example.com');
-my $user =
- FixMyStreet::App->model('DB::User')
- ->find_or_create( { email => 'test@example.com', name => 'Test User' } );
-ok $user, "created test user";
-
-my $user2 =
- FixMyStreet::App->model('DB::User')
- ->find_or_create( { email => 'commenter@example.com', name => 'Commenter' } );
-ok $user2, "created comment user";
+my $user = $mech->create_user_ok('test@example.com', name => 'Test User');
+
+my $user2 = $mech->create_user_ok('commenter@example.com', name => 'Commenter');
my $body = $mech->create_body_ok(2504, 'Westminster City Council');
diff --git a/t/app/controller/rss.t b/t/app/controller/rss.t
index 3e820cff3..8b39219fa 100644
--- a/t/app/controller/rss.t
+++ b/t/app/controller/rss.t
@@ -13,8 +13,7 @@ my $dt = DateTime->new(
day => 10
);
-my $user1 = FixMyStreet::App->model('DB::User')
- ->find_or_create( { email => 'reporter-rss@example.com', name => 'Reporter User' } );
+my $user1 = $mech->create_user_ok('reporter-rss@example.com', name => 'Reporter User');
my $dt_parser = FixMyStreet::App->model('DB')->schema->storage->datetime_parser;
diff --git a/t/app/controller/token.t b/t/app/controller/token.t
index 9ca8b905d..ac88f4f7a 100644
--- a/t/app/controller/token.t
+++ b/t/app/controller/token.t
@@ -6,10 +6,8 @@ use utf8;
use FixMyStreet::TestMech;
use FixMyStreet::App;
-my $user = FixMyStreet::App->model('DB::User')->find_or_create({
- name => 'Bob', email => 'bob@example.com',
- });
my $mech = FixMyStreet::TestMech->new;
+my $user = $mech->create_user_ok('bob@example.com', name => 'Bob');
subtest 'Zurich special case for C::Tokens->problem_confirm' => sub {
FixMyStreet::override_config {