[carton] 62/472: added check test

Lucas Kanashiro kanashiro-guest at moszumanska.debian.org
Fri Jul 24 00:38:33 UTC 2015


This is an automated email from the git hooks/post-receive script.

kanashiro-guest pushed a commit to branch master
in repository carton.

commit e6273cf74d19dcb0cc2517b1aa67f9a9a74a2dfd
Author: Tatsuhiko Miyagawa <miyagawa at bulknews.net>
Date:   Mon Jun 27 10:05:31 2011 -0400

    added check test
---
 lib/Carton.pm  |  9 +++++++--
 xt/CLI.pm      | 32 ++++++++++++++++++++++++++++++--
 xt/cli/check.t | 31 +++++++++++++++++++++++++++++++
 3 files changed, 68 insertions(+), 4 deletions(-)

diff --git a/lib/Carton.pm b/lib/Carton.pm
index 67dd933..d40ecbb 100644
--- a/lib/Carton.pm
+++ b/lib/Carton.pm
@@ -284,13 +284,16 @@ sub find_locals {
 
     require File::Find;
 
+    my $libdir = "$self->{path}/lib/perl5/auto/meta";
+    return unless -e $libdir;
+
     my @locals;
     my $wanted = sub {
         if ($_ eq 'local.json') {
             push @locals, $File::Find::name;
         }
     };
-    File::Find::find($wanted, "$self->{path}/lib/perl5/auto/meta");
+    File::Find::find($wanted, $libdir);
 
     return map { my $module = Carton::Util::parse_json($_); ($module->{name} => $module) } @locals;
 }
@@ -311,9 +314,11 @@ sub check_satisfies {
         $self->_check_satisfies($dep, \@unsatisfied, $index, \%pool);
     }
 
+    my $tree = keys %pool ? $self->build_tree(\%pool) : undef;
+
     return {
         unsatisfied => \@unsatisfied,
-        superflous  => $self->build_tree(\%pool),
+        superflous  => $tree,
     };
 }
 
diff --git a/xt/CLI.pm b/xt/CLI.pm
index a1dcf5f..1e0ea11 100644
--- a/xt/CLI.pm
+++ b/xt/CLI.pm
@@ -1,10 +1,18 @@
 package xt::CLI;
 use strict;
 use base qw(Exporter);
-our @EXPORT = qw(run);
+our @EXPORT = qw(run cli);
+
+use Test::Requires qw( Directory::Scratch );
+
+sub cli {
+    my $dir = Directory::Scratch->new();
+    chdir $dir;
+    return Carton::CLI::Tested->new(dir => $dir);
+}
 
 sub run {
-    my $app = Carton::CLI::Tested->new;
+    my $app = cli();
     $app->run(@_);
     return $app;
 }
@@ -12,11 +20,31 @@ sub run {
 package Carton::CLI::Tested;
 use parent qw(Carton::CLI);
 
+sub new {
+    my($class, %args) = @_;
+
+    my $self = $class->SUPER::new;
+    $self->{dir} = $args{dir};
+
+    return $self;
+}
+
+sub dir {
+    my $self = shift;
+    $self->{dir};
+}
+
 sub print {
     my $self = shift;
     $self->{output} .= $_[0];
 }
 
+sub run {
+    my $self = shift;
+    $self->{output} = '';
+    $self->SUPER::run(@_);
+}
+
 sub output {
     my $self = shift;
     $self->{output};
diff --git a/xt/cli/check.t b/xt/cli/check.t
new file mode 100644
index 0000000..59cdd21
--- /dev/null
+++ b/xt/cli/check.t
@@ -0,0 +1,31 @@
+use strict;
+use Test::More;
+use xt::CLI;
+
+{
+    my $app = cli();
+
+    $app->dir->touch("Makefile.PL", <<EOF);
+use ExtUtils::MakeMaker;
+WriteMakefile(
+  NAME => "foo",
+  VERSION => 1,
+  PREREQ_PM => {
+    "Try::Tiny" => 0,
+  },
+);
+EOF
+
+    $app->run("check");
+    like $app->output, qr/Following dependencies are not satisfied.*Try::Tiny/s;
+    unlike $app->output, qr/found in local but/;
+
+    $app->run("install");
+    $app->run("check");
+
+    like $app->output, qr/matches/;
+}
+
+
+done_testing;
+

-- 
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/pkg-perl/packages/carton.git



More information about the Pkg-perl-cvs-commits mailing list