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