Youri-Package-RPM-Updater
view release on metacpan or search on metacpan
#!/usr/bin/perl
# $Id$
use strict;
use DateTime;
use File::Basename;
use File::Copy;
use File::Temp qw/tempdir/;
use Test::More tests => 25;
use Test::Exception;
use Youri::Package::RPM;
my $wrapper_class = Youri::Package::RPM->get_wrapper_class();
my $spec_class =
$wrapper_class eq 'Youri::Package::RPM::RPM4' ? 'RPM4::Spec' :
$wrapper_class eq 'Youri::Package::RPM::RPM' ? 'RPM::Spec' :
undef ;
BEGIN {
use_ok('Youri::Package::RPM::Updater');
}
my $spec_file = dirname($0) . '/perl-File-HomeDir.spec';
my $topdir = tempdir(CLEANUP => $ENV{TEST_DEBUG} ? 0 : 1);
# force default packager
my $packager = (getpwuid($<))[0];
$wrapper_class->add_macro("packager $packager");
# ensure changelog is not truncated
$wrapper_class->add_macro("_changelog_truncate 0");
$wrapper_class->add_macro("_changelog_trimtime 0");
my $updater = Youri::Package::RPM::Updater->new();
isa_ok($updater, 'Youri::Package::RPM::Updater');
my $new_version_spec_file = $topdir . '/new_version.spec';
copy($spec_file, $new_version_spec_file);
lives_ok {
$updater->update_from_spec($new_version_spec_file, '0.60', download => 0);
} 'updating to a new version';
my $new_version_spec = $wrapper_class->new_spec($new_version_spec_file, force => 1);
isa_ok($new_version_spec, $spec_class, 'spec syntax');
my $new_version_header = $new_version_spec->srcheader();
is($new_version_header->tag('version'), '0.60', 'new version');
is($new_version_header->tag('release'), '1' , 'new release');
is(
($new_version_header->tag('changelogname'))[0],
"$packager 0.60-1",
'new changelog entry author'
);
is(
DateTime->from_epoch(epoch =>
($new_version_header->tag('changelogtime'))[0]
)->strftime('%a %b %d %Y'),
DateTime->now()->strftime('%a %b %d %Y'),
'new changelog entry date'
);
is(
($new_version_header->tag('changelogtext'))[0],
'- New version 0.60',
'new changelog entry text'
);
my $new_release_spec_file = $topdir . '/new_release.spec';
copy($spec_file, $new_release_spec_file);
lives_ok {
$updater->update_from_spec($new_release_spec_file);
} 'updating to a new release';
my $new_release_spec = $wrapper_class->new_spec($new_release_spec_file, force => 1);
isa_ok($new_release_spec, $spec_class, 'spec syntax');
my $new_release_header = $new_release_spec->srcheader();
is($new_release_header->tag('version'), '0.58', 'new version');
is($new_release_header->tag('release'), '2' , 'new release');
is(
($new_release_header->tag('changelogname'))[0],
"$packager 0.58-2",
'new changelog entry author'
);
( run in 0.858 second using v1.01-cache-2.11-cpan-39bf76dae61 )