Update tests for the new rerun command
[gruntmaster-data.git] / t / tools.t
index ab16348a974da5986ff0abf38d440bf7cc93bf51..077185d99944ba06d910baef43ce437ea75cc97d 100644 (file)
--- a/t/tools.t
+++ b/t/tools.t
@@ -8,9 +8,11 @@ use App::Cmd::Tester;
 
 BEGIN {
        eval {
-               Gruntmaster::Data::init 'dbi:Pg:dbname=gmtest'; 1;
+               dbinit 'dbi:Pg:dbname=gmtest'; 1;
        } or plan skip_all => 'Cannot connect to test database. Create it by running make_test_db.sh before running this test. '. "Error: $@";
-       plan tests => 28;
+       no warnings 'redefine';
+       *Gruntmaster::App::dbinit = sub {}; # Prevent reinit in Gruntmaster::App->run
+       plan tests => 30;
 }
 
 sub fakein {
@@ -78,6 +80,11 @@ EOF
 
 ta [qw/-p add pb/];
 
+{
+       my $out = ta([qw/-p show pb/])->output;
+       like $out, qr/Value \(points\): 250/, 'gm -p show pb contains Value'
+}
+
 subtest 'gruntmaster-problem add' => sub {
        plan tests => 10;
        my $pb = problem_entry 'pb';
@@ -96,6 +103,8 @@ subtest 'gruntmaster-problem add' => sub {
 ta [qw/-p get pb author/], 'Marius Gavrilescu';
 ta [qw/-p set pb owner nobody/];
 ta [qw/-p get pb owner/], 'nobody';
+ta [qw/-p set --file pb statement README/];
+like problem_entry('pb')->{statement}, qr/Gruntmaster-Data/, 'gm -p set --file pb statement README';
 ta [qw/-p list/], join "\n", sort qw/arc pca rca fca prv pb/;
 ta [qw/-p rm pb/];
 ok !defined problem_entry ('pb'), 'gm -p rm pb';
@@ -106,6 +115,10 @@ ta [rerun => $id];
 is job_entry($id)->{result}, -2, "gm rerun $id";
 ta [qw/rm -j/, $id];
 
+ta [rerun => 'fca'];
+my @fca_jobs = grep { $_->{problem} eq 'fca' } @{job_list()};
+ok ((!grep { $_->{result} != -2 } @fca_jobs), "gm rerun fca");
+
 sub terr {
        my ($args, $err) = @_;
        my $ret = test_app 'Gruntmaster::App' => $args;
@@ -119,8 +132,7 @@ terr [qw/-c add/], 'Wrong number of arguments';
 terr [qw/get/], 'No table selected';
 terr [qw/-c get/], 'Wrong number of arguments';
 terr [qw/list/], 'No table selected';
-terr [qw/-p rerun/], 'This command only works on jobs';
-terr [qw/-j rerun/], 'Wrong number of arguments';
+terr [qw/-j rerun/], 'Not enough arguments';
 terr [qw/rm/], 'No table selected';
 terr [qw/-j rm/], 'Wrong number of arguments';
 terr [qw/set/], 'No table selected';
This page took 0.011302 seconds and 4 git commands to generate.