Blob Blame History Raw
From cf0e9f804aaed4b3de26b81cb4913b4786515807 Mon Sep 17 00:00:00 2001
From: Maurice Aubrey <maurice.aubrey@gmail.com>
Date: Sat, 20 Aug 2016 11:24:51 -0700
Subject: [PATCH] Handle both CPAN::Meta::Spec 1.4 and 2.x
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

Dist-Zilla started to produce YAML META data in 1.4 format
<https://github.com/rjbs/Dist-Zilla/commit/09462bcdced71a6e3a877b5cc34c136eafcc1af6>
and that breaks t/recommendedprereqs.t tests.

This patch adapt to it. It's based on the
<https://github.com/mla/dist-zilla-plugins-cjm> code.

CPAN RT#116902

Signed-off-by: Petr Písař <ppisar@redhat.com>
---
 t/recommendedprereqs.t | 51 +++++++++++++++++++++++++++++++++-----------------
 1 file changed, 34 insertions(+), 17 deletions(-)

diff --git a/t/recommendedprereqs.t b/t/recommendedprereqs.t
index e0579d6..aed0764 100644
--- a/t/recommendedprereqs.t
+++ b/t/recommendedprereqs.t
@@ -3,7 +3,8 @@
 
 use strict;
 use warnings;
-use Test::More 0.88 tests => 4; # done_testing
+use version;
+use Test::More 0.88;
 
 use Test::DZil qw(Builder simple_ini);
 use Parse::CPAN::Meta;
@@ -22,21 +23,37 @@ $tzil->build;
 
 my $meta = Parse::CPAN::Meta->load_file($tzil->tempdir->file('build/META.yml'));
 
-is_deeply(
-  $meta->{prereqs}{runtime}{recommends},
-  { 'Foo::Bar' => '1.00',
-    'Foo::Baz' => 0 },
-  'runtime recommends'
-);
-
-is($meta->{prereqs}{runtime}{suggests}, undef, 'runtime suggests');
-
-is($meta->{prereqs}{test}{recommends}, undef, 'test recommends');
-
-is_deeply(
-  $meta->{prereqs}{test}{suggests},
-  { 'Test::Other' => 0 },
-  'test suggests'
-);
+my $ver = version->new($meta->{'meta-spec'}{version});
+diag "CPAN::Meta::Spec = $ver";
+
+if ($ver >= version->new('2')) { # See CPAN::Meta::Spec
+  is_deeply(
+    $meta->{prereqs}{runtime}{recommends},
+    { 'Foo::Bar' => '1.00',
+      'Foo::Baz' => 0 },
+    'runtime recommends'
+  );
+  
+  is($meta->{prereqs}{runtime}{suggests}, undef, 'runtime suggests');
+  
+  is($meta->{prereqs}{test}{recommends}, undef, 'test recommends');
+  
+  is_deeply(
+    $meta->{prereqs}{test}{suggests},
+    { 'Test::Other' => 0 },
+    'test suggests'
+  );
+} elsif ($ver >= version->new('1.4')) { 
+  is_deeply(
+    $meta->{recommends},
+    {
+      'Foo::Bar' => '1.00',
+      'Foo::Baz' => 0,
+    },
+    'runtime recommends'
+  );
+} else {
+  plan skip_all => "Unexpected CPAN::Meta::Spec version '$ver'";
+}
 
 done_testing;
-- 
2.7.4