Codebase list distro-info / aeb43d5
Support getting release version by codename in the Perl and Python API Closes: #896640 Balint Reczey authored 5 years ago Benjamin Drung committed 5 years ago
4 changed file(s) with 34 addition(s) and 1 deletion(s). Raw diff Collapse all Expand all
113113 return $release;
114114 }
115115
116 sub version {
117 my ($self, $codename, $default) = @_;
118 for my $row (@{$self->{'rows'}}) {
119 if ($row->{'codename'} eq $codename
120 || $row->{'series'} eq $codename) {
121 return $row->{'version'};
122 }
123 }
124 return $default;
125 }
126
116127 sub devel {
117128 my ($self, $date) = @_;
118129 $date = $self->{'date'} if (!defined($date));
1515 use strict;
1616 use warnings;
1717
18 use Test::Simple tests => 28;
18 use Test::Simple tests => 32;
1919
2020 use lib '.';
2121 use Debian::DistroInfo;
8585 ok($deb->codename('testing', $date) eq $deb->testing($date),
8686 'Debian codename');
8787
88 ok(!defined($deb->version('foo')), 'Debian version, invalid');
89 ok($deb->version('lenny') eq '5.0', 'Debian version');
8890
8991 my $ubu = UbuntuDistroInfo->new();
9092 @all = ('warty', 'hoary', 'breezy', 'dapper', 'edgy', 'feisty', 'gutsy',
9193 'hardy', 'intrepid', 'jaunty', 'karmic', 'lucid', 'maverick', 'natty');
9294 @returned = $ubu->all($date);
9395 ok(unique(\@all, \@returned) == 0, 'Ubuntu all');
96
97 ok($ubu->version('Maverick Meerkat') eq '10.10', 'Ubuntu version');
98 ok($ubu->version('lucid') eq '10.04 LTS', 'Ubuntu LTS version');
9499
95100 ok($ubu->devel($date) eq 'natty', 'Ubuntu devel');
96101 ok($ubu->lts($date) eq 'lucid', 'Ubuntu LTS');
115115 # pylint: disable=no-self-use,unused-argument
116116 return release
117117
118 def version(self, name, default=None):
119 """Map codename or series to version"""
120 for release in self._releases:
121 if name in (release.codename, release.series):
122 return release.version
123 return default
124
118125 def devel(self, date=None, result="codename"):
119126 """Get latest development distribution based on the given date."""
120127 if date is None:
7373 self.assertIsNone(self._distro_info.codename('foobar'))
7474 self.assertEqual(self._distro_info.codename('testing', self._date),
7575 self._distro_info.testing(self._date))
76
77 def test_version(self):
78 """Test: Version decoding"""
79 self.assertIsNone(self._distro_info.version('foobar'))
80 self.assertEqual(self._distro_info.version('lenny'), '5.0')
7681
7782 def test_codename_result(self):
7883 """Test: Check result set to codename."""
157162 self.assertEqual(self._distro_info.devel(self._date, result="codename"),
158163 "natty")
159164
165 def test_version(self):
166 """Test: Check result set to version."""
167 self.assertEqual(self._distro_info.version("lucid"), '10.04 LTS')
168 self.assertEqual(self._distro_info.version("Maverick Meerkat"), '10.10')
169
160170 def test_fullname(self):
161171 """Test: Check result set to fullname."""
162172 self.assertEqual(self._distro_info.stable(self._date, "fullname"),