]> git.vpit.fr Git - perl/modules/Test-Leaner.git/commitdiff
Croak when importing symbols from Test::More that aren't in Test::Leaner
authorVincent Pit <vince@profvince.com>
Fri, 8 Apr 2011 17:40:34 +0000 (19:40 +0200)
committerVincent Pit <vince@profvince.com>
Fri, 8 Apr 2011 17:40:34 +0000 (19:40 +0200)
lib/Test/Leaner.pm
t/02-import-arg.t
t/04-fallback-import-arg.t

index 8e45f3c8bfe9d4a24266ffeea5b68c78d5263eac..f43be92145f520bd3ea16c3251c2c161d0d352e7 100644 (file)
@@ -182,7 +182,7 @@ if ($ENV{PERL_TEST_LEANER_USES_TEST_MORE}) {
  }
 
  my $import = sub {
-  shift;
+  my $class = shift;
 
   my @imports = &_handle_import_args;
   @imports    = @EXPORT unless @imports;
@@ -192,8 +192,11 @@ if ($ENV{PERL_TEST_LEANER_USES_TEST_MORE}) {
     my $pkg = caller;
     no strict 'refs';
     *{$pkg."::$_"} = $leaner_stash->{$_};
-   } else {
+   } elsif (/^!/ or !exists $more_stash->{$_} or exists $leaner_stash->{$_}) {
     push @test_more_imports, $_;
+   } else {
+    # Croak for symbols in Test::More but not in Test::Leaner
+    Exporter::import($class, $_);
    }
   }
 
index fd6f0f9835a1bae3b1ce6dd709ae454d01927825..71dc90c950372b5753ae996c9a236706a75450a0 100644 (file)
@@ -50,7 +50,7 @@ sub check_imports {
  delete $this_stash->{$_} for @default_exports, keys %imported, @not_imported;
 }
 
-Test::More::plan(tests => 8 * @default_exports + 7 + 2);
+Test::More::plan(tests => 9 * @default_exports + 8 + 3);
 
 check_imports();
 
@@ -72,6 +72,15 @@ check_imports();
  check_imports([ ], [ 'nonexistent' ]);
 }
 
+{
+ local $@;
+ eval {
+  Test::Leaner->import(import => [ 'use_ok' ]);
+ };
+ Test::More::like($@, qr/^"use_ok" is not exported by the Test::Leaner module/, 'import "use_ok" croaks');
+ check_imports([ ], [ 'use_ok' ]);
+}
+
 {
  local $@;
  eval {
index ee2bbd5ee9e14d8a83b621cfd63dc37131238fe3..2d74d136737ff9bd2faaeead9e92b553895512d9 100644 (file)
@@ -50,7 +50,7 @@ sub check_imports {
  delete $this_stash->{$_} for @default_exports, keys %imported, @not_imported;
 }
 
-Test::More::plan(tests => 8 * @default_exports + 7 + 2);
+Test::More::plan(tests => 9 * @default_exports + 8 + 3);
 
 check_imports();
 
@@ -72,6 +72,15 @@ check_imports();
  check_imports([ ], [ 'nonexistent' ]);
 }
 
+{
+ local $@;
+ eval {
+  Test::Leaner->import(import => [ 'use_ok' ]);
+ };
+ Test::More::like($@, qr/^"use_ok" is not exported by the Test::Leaner module/, 'import "use_ok" croaks');
+ check_imports([ ], [ 'use_ok' ]);
+}
+
 {
  local $@;
  eval {