X-Git-Url: http://git.ieval.ro/?a=blobdiff_plain;f=t%2Ftools.t;h=077185d99944ba06d910baef43ce437ea75cc97d;hb=d68b9d2003fc0e28f9ae52508c16f0d1a0a6560c;hp=ab16348a974da5986ff0abf38d440bf7cc93bf51;hpb=6d34ddc585c5dbd95b6f55aa9d48390376499b64;p=gruntmaster-data.git diff --git a/t/tools.t b/t/tools.t index ab16348..077185d 100644 --- 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';