Hello community,

here is the log from the commit of package perl-Carp-Assert-More for 
openSUSE:Factory checked in at 2020-10-10 00:28:31
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/perl-Carp-Assert-More (Old)
 and      /work/SRC/openSUSE:Factory/.perl-Carp-Assert-More.new.4249 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "perl-Carp-Assert-More"

Sat Oct 10 00:28:31 2020 rev:10 rq:840238 version:1.24

Changes:
--------
--- 
/work/SRC/openSUSE:Factory/perl-Carp-Assert-More/perl-Carp-Assert-More.changes  
    2019-08-13 13:20:11.793435245 +0200
+++ 
/work/SRC/openSUSE:Factory/.perl-Carp-Assert-More.new.4249/perl-Carp-Assert-More.changes
    2020-10-10 00:28:34.353129853 +0200
@@ -1,0 +2,14 @@
+Thu Oct  8 03:07:06 UTC 2020 - Tina Müller <timueller+p...@suse.de>
+
+- updated to 1.24
+   see /usr/share/doc/packages/perl-Carp-Assert-More/Changes
+
+  1.24    Tue Oct  6 22:37:06 CDT 2020
+          [ENHANCEMENTS]
+          The requirement for Perl 5.10 has been reverted to 5.6.1.
+
+  1.22    Tue Oct  6 22:03:55 CDT 2020
+          [ENHANCEMENTS]
+          Add assert_keys_are() for asserting an exact list of keys.
+
+-------------------------------------------------------------------

Old:
----
  Carp-Assert-More-1.20.tar.gz

New:
----
  Carp-Assert-More-1.24.tar.gz

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ perl-Carp-Assert-More.spec ++++++
--- /var/tmp/diff_new_pack.dBP6rf/_old  2020-10-10 00:28:35.061130204 +0200
+++ /var/tmp/diff_new_pack.dBP6rf/_new  2020-10-10 00:28:35.065130206 +0200
@@ -1,7 +1,7 @@
 #
 # spec file for package perl-Carp-Assert-More
 #
-# Copyright (c) 2019 SUSE LINUX GmbH, Nuernberg, Germany.
+# Copyright (c) 2020 SUSE LLC
 #
 # All modifications and additions to the file contributed by third parties
 # remain the property of their copyright owners, unless otherwise agreed
@@ -17,13 +17,13 @@
 
 
 Name:           perl-Carp-Assert-More
-Version:        1.20
+Version:        1.24
 Release:        0
 %define cpan_name Carp-Assert-More
 Summary:        Convenience wrappers around Carp::Assert
 License:        Artistic-2.0
 Group:          Development/Libraries/Perl
-Url:            https://metacpan.org/release/%{cpan_name}
+URL:            https://metacpan.org/release/%{cpan_name}
 Source0:        
https://cpan.metacpan.org/authors/id/P/PE/PETDANCE/%{cpan_name}-%{version}.tar.gz
 Source1:        cpanspec.yml
 BuildArch:      noarch

++++++ Carp-Assert-More-1.20.tar.gz -> Carp-Assert-More-1.24.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/Carp-Assert-More-1.20/Changes 
new/Carp-Assert-More-1.24/Changes
--- old/Carp-Assert-More-1.20/Changes   2019-08-09 17:13:48.000000000 +0200
+++ new/Carp-Assert-More-1.24/Changes   2020-10-07 05:37:17.000000000 +0200
@@ -1,5 +1,13 @@
 Revision history for Perl extension Carp::Assert::More.
 
+1.24    Tue Oct  6 22:37:06 CDT 2020
+        [ENHANCEMENTS]
+        The requirement for Perl 5.10 has been reverted to 5.6.1.
+
+1.22    Tue Oct  6 22:03:55 CDT 2020
+        [ENHANCEMENTS]
+        Add assert_keys_are() for asserting an exact list of keys.
+
 1.20    Fri Aug  9 10:10:06 CDT 2019
         [ENHANCEMENTS]
         Add assert_datetime() for asserting DateTime objects.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/Carp-Assert-More-1.20/MANIFEST 
new/Carp-Assert-More-1.24/MANIFEST
--- old/Carp-Assert-More-1.20/MANIFEST  2019-08-09 17:14:02.000000000 +0200
+++ new/Carp-Assert-More-1.24/MANIFEST  2020-10-07 05:43:49.000000000 +0200
@@ -21,6 +21,7 @@
 t/assert_isa.t
 t/assert_isa_in.t
 t/assert_isnt.t
+t/assert_keys_are.t
 t/assert_lacks.t
 t/assert_like.t
 t/assert_listref.t
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/Carp-Assert-More-1.20/META.json 
new/Carp-Assert-More-1.24/META.json
--- old/Carp-Assert-More-1.20/META.json 2019-08-09 17:14:02.000000000 +0200
+++ new/Carp-Assert-More-1.24/META.json 2020-10-07 05:43:49.000000000 +0200
@@ -4,13 +4,13 @@
       "unknown"
    ],
    "dynamic_config" : 1,
-   "generated_by" : "ExtUtils::MakeMaker version 7.16, CPAN::Meta::Converter 
version 2.150005",
+   "generated_by" : "ExtUtils::MakeMaker version 7.46, CPAN::Meta::Converter 
version 2.150010",
    "license" : [
       "artistic_2"
    ],
    "meta-spec" : {
       "url" : "http://search.cpan.org/perldoc?CPAN::Meta::Spec";,
-      "version" : "2"
+      "version" : 2
    },
    "name" : "Carp-Assert-More",
    "no_index" : {
@@ -52,6 +52,6 @@
          "url" : "https://github.com/petdance/carp-assert-more/tree/master";
       }
    },
-   "version" : "1.20",
-   "x_serialization_backend" : "JSON::PP version 2.27400"
+   "version" : "1.24",
+   "x_serialization_backend" : "JSON::PP version 4.05"
 }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/Carp-Assert-More-1.20/META.yml 
new/Carp-Assert-More-1.24/META.yml
--- old/Carp-Assert-More-1.20/META.yml  2019-08-09 17:14:02.000000000 +0200
+++ new/Carp-Assert-More-1.24/META.yml  2020-10-07 05:43:49.000000000 +0200
@@ -7,7 +7,7 @@
 configure_requires:
   ExtUtils::MakeMaker: '0'
 dynamic_config: 1
-generated_by: 'ExtUtils::MakeMaker version 7.16, CPAN::Meta::Converter version 
2.150005'
+generated_by: 'ExtUtils::MakeMaker version 7.46, CPAN::Meta::Converter version 
2.150010'
 license: artistic_2
 meta-spec:
   url: http://module-build.sourceforge.net/META-spec-v1.4.html
@@ -27,5 +27,5 @@
   bugtracker: 
https://rt.cpan.org/Public/Dist/Display.html?Name=Carp-Assert-More
   license: http://www.opensource.org/licenses/artistic-license-2.0.php
   repository: https://github.com/petdance/carp-assert-more/tree/master
-version: '1.20'
-x_serialization_backend: 'CPAN::Meta::YAML version 0.012'
+version: '1.24'
+x_serialization_backend: 'CPAN::Meta::YAML version 0.011'
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/Carp-Assert-More-1.20/More.pm 
new/Carp-Assert-More-1.24/More.pm
--- old/Carp-Assert-More-1.20/More.pm   2019-08-09 17:13:48.000000000 +0200
+++ new/Carp-Assert-More-1.24/More.pm   2020-10-07 05:38:49.000000000 +0200
@@ -15,12 +15,12 @@
 
 =head1 VERSION
 
-Version 1.20
+Version 1.24
 
 =cut
 
 BEGIN {
-    $VERSION = '1.20';
+    $VERSION = '1.24';
     @ISA = qw(Exporter);
     @EXPORT = qw(
         assert_all_keys_in
@@ -39,6 +39,7 @@
         assert_isa
         assert_isa_in
         assert_isnt
+        assert_keys_are
         assert_lacks
         assert_like
         assert_listref
@@ -690,9 +691,11 @@
 
 =cut
 
-sub assert_datetime {
+sub assert_datetime($;$) {
     my $datetime = shift;
-    my $desc     = shift // 'Must be a DateTime object';
+    my $desc     = shift;
+
+    $desc = 'Must be a DateTime object' unless defined($desc);
 
     assert_isa( $datetime, 'DateTime', $desc );
 
@@ -796,13 +799,13 @@
 
 =cut
 
-sub assert_all_keys_in {
+sub assert_all_keys_in($$;$) {
     my $hash       = shift;
     my $valid_keys = shift;
     my $name       = shift;
 
     assert_hashref( $hash );
-    assert_listref( $valid_keys );
+    assert_arrayref( $valid_keys );
 
     foreach my $key ( keys %{$hash} ) {
         assert_in( $key, $valid_keys, $name );
@@ -812,6 +815,29 @@
 }
 
 
+=head2 assert_keys_are( \%hash, \@keys [, $name ] )
+
+Asserts that the keys for C<%hash> are exactly C<@keys>, no more and no less.
+
+=cut
+
+sub assert_keys_are($$;$) {
+    my $hash       = shift;
+    my $valid_keys = shift;
+    my $name       = shift;
+
+    assert_hashref( $hash );
+    assert_arrayref( $valid_keys );
+
+    foreach my $key ( keys %{$hash} ) {
+        assert_in( $key, $valid_keys, $name );
+    }
+
+    assert_is(scalar keys %{$hash}, scalar @{$valid_keys}, 'There are the 
correct number of keys');
+
+    return;
+}
+
 
 =head1 UTILITY ASSERTIONS
 
@@ -839,7 +865,7 @@
 
 =head1 COPYRIGHT & LICENSE
 
-Copyright 2005-2019 Andy Lester.
+Copyright 2005-2020 Andy Lester.
 
 This program is free software; you can redistribute it and/or modify
 it under the terms of the Artistic License version 2.0.
@@ -859,4 +885,4 @@
 
 =cut
 
-"I stood on the porch in a tie."
+1;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/Carp-Assert-More-1.20/README.md 
new/Carp-Assert-More-1.24/README.md
--- old/Carp-Assert-More-1.20/README.md 2017-08-04 21:18:59.000000000 +0200
+++ new/Carp-Assert-More-1.24/README.md 2020-10-07 05:07:41.000000000 +0200
@@ -2,13 +2,331 @@
 
 [![Build 
Status](https://travis-ci.org/petdance/carp-assert-more.svg?branch=dev)](https://travis-ci.org/petdance/carp-assert-more)
 
-Carp::Assert::More is a set of handy assertion functions for Perl.
+# NAME
 
-For example, instead of writing
+Carp::Assert::More - convenience wrappers around Carp::Assert
 
-    assert( defined($foo), '$foo cannot be undefined' );
-    assert( $foo ne '', '$foo cannot be blank' );
+# VERSION
 
-you can write
+Version 1.20
 
-    assert_nonblank( $foo, '$foo cannot be blank' );
+# SYNOPSIS
+
+A set of convenience functions for common assertions.
+
+    use Carp::Assert::More;
+
+    my $obj = My::Object;
+    assert_isa( $obj, 'My::Object', 'Got back a correct object' );
+
+# DESCRIPTION
+
+Carp::Assert::More is a set of wrappers around the 
[Carp::Assert](https://metacpan.org/pod/Carp::Assert) functions
+to make the habit of writing assertions even easier.
+
+Everything in here is effectively syntactic sugar.  There's no technical
+reason to use
+
+    assert_isa( $foo, 'HTML::Lint' );
+
+instead of
+
+    assert( defined $foo );
+    assert( ref($foo) eq 'HTML::Lint' );
+
+other than readability and simplicity of the code.
+
+My intent here is to make common assertions easy so that we as programmers
+have no excuse to not use them.
+
+# CAVEATS
+
+I haven't specifically done anything to make Carp::Assert::More be
+backwards compatible with anything besides Perl 5.6.1, much less back
+to 5.004.  Perhaps someone with better testing resources in that area
+can help me out here.
+
+# SIMPLE ASSERTIONS
+
+## assert\_is( $string, $match \[,$name\] )
+
+Asserts that _$string_ matches _$match_.
+
+## assert\_isnt( $string, $unmatch \[,$name\] )
+
+Asserts that _$string_ does NOT match _$unmatch_.
+
+## assert\_like( $string, qr/regex/ \[,$name\] )
+
+Asserts that _$string_ matches _qr/regex/_.
+
+The assertion fails either the string or the regex are undef.
+
+## assert\_unlike( $string, qr/regex/ \[,$name\] )
+
+Asserts that _$string_ matches _qr/regex/_.
+
+The assertion fails if the regex is undef.
+
+## assert\_defined( $this \[, $name\] )
+
+Asserts that _$this_ is defined.
+
+## assert\_undefined( $this \[, $name\] )
+
+Asserts that _$this_ is not defined.
+
+## assert\_nonblank( $this \[, $name\] )
+
+Asserts that _$this_ is not blank and not a reference.
+
+# NUMERIC ASSERTIONS
+
+## assert\_numeric( $n \[, $name\] )
+
+Asserts that `$n` looks like a number, according to 
`Scalar::Util::looks_like_number`.
+
+## assert\_integer( $this \[, $name \] )
+
+Asserts that _$this_ is an integer, which may be zero or negative.
+
+    assert_integer( 0 );      # pass
+    assert_integer( 14 );     # pass
+    assert_integer( -14 );    # pass
+    assert_integer( '14.' );  # FAIL
+
+## assert\_nonzero( $this \[, $name \] )
+
+Asserts that the numeric value of _$this_ is not zero.
+
+    assert_nonzero( 0 );    # FAIL
+    assert_nonzero( -14 );  # pass
+    assert_nonzero( '14.' );  # pass
+
+Asserts that the numeric value of _$this_ is not zero.
+
+## assert\_positive( $this \[, $name \] )
+
+Asserts that the numeric value of _$this_ is greater than zero.
+
+    assert_positive( 0 );    # FAIL
+    assert_positive( -14 );  # FAIL
+    assert_positive( '14.' );  # pass
+
+## assert\_nonnegative( $this \[, $name \] )
+
+Asserts that the numeric value of _$this_ is greater than or equal
+to zero.  Since non-numeric strings evaluate to zero, this means that
+any non-numeric string will pass.
+
+    assert_nonnegative( 0 );      # pass
+    assert_nonnegative( -14 );    # FAIL
+    assert_nonnegative( '14.' );  # pass
+    assert_nonnegative( 'dog' );  # pass
+
+## assert\_negative( $this \[, $name \] )
+
+Asserts that the numeric value of _$this_ is less than zero.
+
+    assert_negative( 0 );       # FAIL
+    assert_negative( -14 );     # pass
+    assert_negative( '14.' );   # FAIL
+
+## assert\_nonzero\_integer( $this \[, $name \] )
+
+Asserts that the numeric value of _$this_ is not zero, and that _$this_
+is an integer.
+
+    assert_nonzero_integer( 0 );      # FAIL
+    assert_nonzero_integer( -14 );    # pass
+    assert_nonzero_integer( '14.' );  # FAIL
+
+## assert\_positive\_integer( $this \[, $name \] )
+
+Asserts that the numeric value of _$this_ is greater than zero, and
+that _$this_ is an integer.
+
+    assert_positive_integer( 0 );     # FAIL
+    assert_positive_integer( -14 );   # FAIL
+    assert_positive_integer( '14.' ); # FAIL
+    assert_positive_integer( '14' );  # pass
+
+## assert\_nonnegative\_integer( $this \[, $name \] )
+
+Asserts that the numeric value of _$this_ is not less than zero, and
+that _$this_ is an integer.
+
+    assert_nonnegative_integer( 0 );      # pass
+    assert_nonnegative_integer( -14 );    # pass
+    assert_nonnegative_integer( '14.' );  # FAIL
+
+## assert\_negative\_integer( $this \[, $name \] )
+
+Asserts that the numeric value of _$this_ is less than zero, and that
+_$this_ is an integer.
+
+    assert_negative_integer( 0 );      # FAIL
+    assert_negative_integer( -14 );    # pass
+    assert_negative_integer( '14.' );  # FAIL
+
+# REFERENCE ASSERTIONS
+
+## assert\_isa( $this, $type \[, $name \] )
+
+Asserts that _$this_ is an object of type _$type_.
+
+## assert\_isa\_in( $obj, \\@types \[, $description\] )
+
+Assert that the blessed `$obj` isa one of the types in `\@types`.
+
+    assert_isa_in( $obj, [ 'My::Foo', 'My::Bar' ], 'Must pass either a Foo or 
Bar object' );
+
+## assert\_empty( $this \[, $name \] )
+
+_$this_ must be a ref to either a hash or an array.  Asserts that that
+collection contains no elements.  Will assert (with its own message,
+not _$name_) unless given a hash or array ref.   It is OK if _$this_ has
+been blessed into objecthood, but the semantics of checking an object to see
+if it does not have keys (for a hashref) or returns 0 in scalar context (for
+an array ref) may not be what you want.
+
+    assert_empty( 0 );       # FAIL
+    assert_empty( 'foo' );   # FAIL
+    assert_empty( undef );   # FAIL
+    assert_empty( {} );      # pass
+    assert_empty( [] );      # pass
+    assert_empty( {foo=>1} );# FAIL
+    assert_empty( [1,2,3] ); # FAIL
+
+## assert\_nonempty( $this \[, $name \] )
+
+_$this_ must be a ref to either a hash or an array.  Asserts that that
+collection contains at least 1 element.  Will assert (with its own message,
+not _$name_) unless given a hash or array ref.   It is OK if _$this_ has
+been blessed into objecthood, but the semantics of checking an object to see
+if it has keys (for a hashref) or returns >0 in scalar context (for an array
+ref) may not be what you want.
+
+    assert_nonempty( 0 );       # FAIL
+    assert_nonempty( 'foo' );   # FAIL
+    assert_nonempty( undef );   # FAIL
+    assert_nonempty( {} );      # FAIL
+    assert_nonempty( [] );      # FAIL
+    assert_nonempty( {foo=>1} );# pass
+    assert_nonempty( [1,2,3] ); # pass
+
+## assert\_nonref( $this \[, $name \] )
+
+Asserts that _$this_ is not undef and not a reference.
+
+## assert\_hashref( $ref \[,$name\] )
+
+Asserts that _$ref_ is defined, and is a reference to a (possibly empty) hash.
+
+**NB:** This method returns _false_ for objects, even those whose underlying
+data is a hashref. This is as it should be, under the assumptions that:
+
+- (a)
+
+    you shouldn't rely on the underlying data structure of a particular class, 
and
+
+- (b)
+
+    you should use `assert_isa` instead.
+
+## assert\_arrayref( $ref \[, $name\] )
+
+## assert\_listref( $ref \[,$name\] )
+
+Asserts that _$ref_ is defined, and is a reference to a (possibly empty) list.
+
+**NB:** The same caveat about objects whose underlying structure is a
+hash (see `assert_hashref`) applies here; this method returns false
+even for objects whose underlying structure is an array.
+
+`assert_listref` is an alias for `assert_arrayref` and may go away in
+the future.  Use `assert_arrayref` instead.
+
+## assert\_aoh( $ref \[, $name \] )
+
+Verifies that `$array` is an arrayref, and that every element is a hashref.
+
+The array `$array` can be an empty arraref and the assertion will pass.
+
+## assert\_coderef( $ref \[,$name\] )
+
+Asserts that _$ref_ is defined, and is a reference to a closure.
+
+# TYPE-SPECIFIC ASSERTIONS
+
+## assert\_datetime( $date )
+
+Asserts that `$date` is a DateTime object.
+
+# SET AND HASH MEMBERSHIP
+
+## assert\_in( $string, \\@inlist \[,$name\] );
+
+Asserts that _$string_ is defined and matches one of the elements
+of _\\@inlist_.
+
+_\\@inlist_ must be an array reference of defined strings.
+
+## assert\_exists( \\%hash, $key \[,$name\] )
+
+## assert\_exists( \\%hash, \\@keylist \[,$name\] )
+
+Asserts that _%hash_ is indeed a hash, and that _$key_ exists in
+_%hash_, or that all of the keys in _@keylist_ exist in _%hash_.
+
+    assert_exists( \%custinfo, 'name', 'Customer has a name field' );
+
+    assert_exists( \%custinfo, [qw( name addr phone )],
+                            'Customer has name, address and phone' );
+
+## assert\_lacks( \\%hash, $key \[,$name\] )
+
+## assert\_lacks( \\%hash, \\@keylist \[,$name\] )
+
+Asserts that _%hash_ is indeed a hash, and that _$key_ does NOT exist
+in _%hash_, or that none of the keys in _@keylist_ exist in _%hash_.
+
+    assert_lacks( \%users, 'root', 'Root is not in the user table' );
+
+    assert_lacks( \%users, [qw( root admin nobody )], 'No bad usernames found' 
);
+
+## assert\_all\_keys\_in( \\%hash, \\@names \[, $name \] )
+
+Asserts that each key in `%hash` is in the list of `@names`.
+
+This is used to ensure that there are no extra keys in a given hash.
+
+    assert_all_keys_in( $obj, [qw( height width depth )], '$obj can only 
contain height, width and depth keys' );
+
+# UTILITY ASSERTIONS
+
+## assert\_fail( \[$name\] )
+
+Assertion that always fails.  `assert_fail($msg)` is exactly the same
+as calling `assert(0,$msg)`, but it eliminates that case where you
+accidentally use `assert($msg)`, which of course never fires.
+
+# COPYRIGHT & LICENSE
+
+Copyright 2005-2019 Andy Lester.
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the Artistic License version 2.0.
+
+# ACKNOWLEDGEMENTS
+
+Thanks to
+Eric A. Zarko,
+Bob Diss,
+Pete Krawczyk,
+David Storrs,
+Dan Friedman,
+Allard Hoeve,
+Thomas L. Shinnick,
+and Leland Johnson
+for code and fixes.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/Carp-Assert-More-1.20/t/assert_datetime.t 
new/Carp-Assert-More-1.24/t/assert_datetime.t
--- old/Carp-Assert-More-1.20/t/assert_datetime.t       2019-08-09 
17:13:48.000000000 +0200
+++ new/Carp-Assert-More-1.24/t/assert_datetime.t       2020-10-07 
05:07:41.000000000 +0200
@@ -7,9 +7,10 @@
 
 use Carp::Assert::More;
 
-my $rc = eval 'use DateTime; 1;';
-if ( !$rc ) {
-    plan skip_all => 'DateTime must be installed to test assert_datetime()';
+my $module = 'DateTime';
+
+if ( !eval "use $module; 1;" ) { ## no critic (ProhibitStringyEval)
+    plan skip_all => "$module required for testing assert_datetime()";
 }
 
 plan tests => 11;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/Carp-Assert-More-1.20/t/assert_isa_in.t 
new/Carp-Assert-More-1.24/t/assert_isa_in.t
--- old/Carp-Assert-More-1.20/t/assert_isa_in.t 2019-07-20 00:14:38.000000000 
+0200
+++ new/Carp-Assert-More-1.24/t/assert_isa_in.t 2020-10-07 05:07:41.000000000 
+0200
@@ -3,7 +3,7 @@
 use warnings;
 use strict;
 
-use Test::More tests => 13;
+use Test::More tests => 20;
 use Carp::Assert::More;
 
 use Test::Exception;
@@ -28,9 +28,7 @@
 dies_ok  { assert_isa_in( bless({}, 'x'), [ 'y' ] ) } 'Parent does not match 
child';
 
 
-subtest assert_isa_in => sub {
-    plan tests => 8;
-
+ASSERT_ISA_IN: {
     package a;
     sub foo {}
     package main;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/Carp-Assert-More-1.20/t/assert_keys_are.t 
new/Carp-Assert-More-1.24/t/assert_keys_are.t
--- old/Carp-Assert-More-1.20/t/assert_keys_are.t       1970-01-01 
01:00:00.000000000 +0100
+++ new/Carp-Assert-More-1.24/t/assert_keys_are.t       2020-10-07 
05:07:41.000000000 +0200
@@ -0,0 +1,61 @@
+#!perl -Tw
+
+use warnings;
+use strict;
+
+use Test::More tests => 1;
+
+use Carp::Assert::More;
+
+use Test::Exception;
+
+subtest assert_keys_are => sub {
+    plan tests => 8;
+
+    my $monolith = {
+        depth  => 1,
+        width  => 4,
+        height => 9,
+    };
+    my $shaq = {
+        firstname => 'Shaquille',
+        lastname  => 'O\'Neal',
+        height    => 85,
+    };
+
+    my @object_keys = qw( height width depth );
+    my @person_keys = qw( firstname lastname height );
+
+    lives_ok( sub { assert_keys_are( $monolith, \@object_keys ) }, 'Monolith 
object has valid keys' );
+    lives_ok( sub { assert_keys_are( $shaq,     \@person_keys ) }, 'Shaq 
object has valid keys' );
+    lives_ok( sub { assert_keys_are( {}, [] ) }, 'Empty hash + empty keys 
works fine' );
+
+    throws_ok(
+        sub { assert_keys_are( $monolith, \@person_keys ) },
+        qr/Assertion.*failed!/,
+        'Monolith fails on person keys'
+    );
+
+    throws_ok(
+        sub { assert_keys_are( $monolith, [@object_keys[0..1]] ) },
+        qr/Assertion.*failed/,
+        'Hash has too many keys'
+    );
+    throws_ok(
+        sub { assert_keys_are( $monolith, [@object_keys, 'wavelength'] ) },
+        qr/Assertion.*failed/,
+        'Hash has one key too many'
+    );
+    throws_ok(
+        sub { assert_keys_are( $monolith, [] ) },
+        qr/Assertion.*failed/,
+        'Empty key list fails for non-empty object'
+    );
+    throws_ok(
+        sub { assert_keys_are( {}, \@object_keys ) },
+        qr/Assertion.*failed/,
+        'Empty hash fails for non-empty key list'
+    );
+};
+
+exit 0;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/Carp-Assert-More-1.20/t/test-coverage.t 
new/Carp-Assert-More-1.24/t/test-coverage.t
--- old/Carp-Assert-More-1.20/t/test-coverage.t 2019-08-09 17:13:48.000000000 
+0200
+++ new/Carp-Assert-More-1.24/t/test-coverage.t 2020-10-07 05:07:41.000000000 
+0200
@@ -1,6 +1,6 @@
 #!perl -Tw
 
-use Test::More tests => 34;
+use Test::More tests => 35;
 
 use Carp::Assert::More;
 


Reply via email to