#!/usr/bin/perl use strict; use lib '../lib'; use Test::More; my $skip; BEGIN { my $cwd = `pwd`; chomp $cwd; eval "use File::Temp 'tempdir';" . "use Test::Output;use GitLab::API::v4;" . "use lib '$cwd/../lib'"; $skip = $@ ? 1 : 0; } sub run { my ($result, $out, @list) = @_; @ARGV = @list; my $res; combined_like( sub { $res = Devscripts::Salsa->new->run; }, $out, "command: " . join(' ', @list)); ok($res =~ /^$result$/i, " result is $result"); } sub mkDebianDir { my $tmpdir = tempdir(CLEANUP => 1); chdir $tmpdir; $ENV{"GIT_CONFIG_NOGLOBAL"} = 1; system "git init"; mkdir 'debian'; open F, ">debian/changelog"; print F < Mon, 02 Nov 2013 22:21:31 -0100 EOF close F; open F, ">README.md"; print F < 1); run(0, qr/gbp:info/, 'co', '-C', $tmpdir, 'debian/libapache2-mod-fcgid'); ok( -d "$tmpdir/libapache2-mod-fcgid/.git", ' libapache2-mod-fcgid cloned' ); run(0, qr/gbp:info/, 'checkout', '-C', $tmpdir, '--group=qa', 'qa'); ok(-d "$tmpdir/qa/.git", ' qa cloned'); } # push_repo, update_repo and del_repo if ($ARGV[0] eq '--full') { mkDebianDir; run(0, qr/Project .*created/s, 'push_repo', '.', '--verbose', '--kgb', '--irc=devscripts'); diag "Verify that foobar appears in #devscripts channel"; run(0, qr/Project .*updated/s, 'update_repo', 'foobar', '--rename-head'); run(1, qr/update_repo has failed for foobar/s, 'update_repo', 'foobar', '--rename-head', '--no-fail'); run(0, qr/Project .*foobar deleted/s, '--verbose', 'del_repo', 'foobar'); } } done_testing;