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
113 | 113 |
return $release;
|
114 | 114 |
}
|
115 | 115 |
|
|
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 |
|
116 | 127 |
sub devel {
|
117 | 128 |
my ($self, $date) = @_;
|
118 | 129 |
$date = $self->{'date'} if (!defined($date));
|
15 | 15 |
use strict;
|
16 | 16 |
use warnings;
|
17 | 17 |
|
18 | |
use Test::Simple tests => 28;
|
|
18 |
use Test::Simple tests => 32;
|
19 | 19 |
|
20 | 20 |
use lib '.';
|
21 | 21 |
use Debian::DistroInfo;
|
|
85 | 85 |
ok($deb->codename('testing', $date) eq $deb->testing($date),
|
86 | 86 |
'Debian codename');
|
87 | 87 |
|
|
88 |
ok(!defined($deb->version('foo')), 'Debian version, invalid');
|
|
89 |
ok($deb->version('lenny') eq '5.0', 'Debian version');
|
88 | 90 |
|
89 | 91 |
my $ubu = UbuntuDistroInfo->new();
|
90 | 92 |
@all = ('warty', 'hoary', 'breezy', 'dapper', 'edgy', 'feisty', 'gutsy',
|
91 | 93 |
'hardy', 'intrepid', 'jaunty', 'karmic', 'lucid', 'maverick', 'natty');
|
92 | 94 |
@returned = $ubu->all($date);
|
93 | 95 |
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');
|
94 | 99 |
|
95 | 100 |
ok($ubu->devel($date) eq 'natty', 'Ubuntu devel');
|
96 | 101 |
ok($ubu->lts($date) eq 'lucid', 'Ubuntu LTS');
|
115 | 115 |
# pylint: disable=no-self-use,unused-argument
|
116 | 116 |
return release
|
117 | 117 |
|
|
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 |
|
118 | 125 |
def devel(self, date=None, result="codename"):
|
119 | 126 |
"""Get latest development distribution based on the given date."""
|
120 | 127 |
if date is None:
|
73 | 73 |
self.assertIsNone(self._distro_info.codename('foobar'))
|
74 | 74 |
self.assertEqual(self._distro_info.codename('testing', self._date),
|
75 | 75 |
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')
|
76 | 81 |
|
77 | 82 |
def test_codename_result(self):
|
78 | 83 |
"""Test: Check result set to codename."""
|
|
157 | 162 |
self.assertEqual(self._distro_info.devel(self._date, result="codename"),
|
158 | 163 |
"natty")
|
159 | 164 |
|
|
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 |
|
160 | 170 |
def test_fullname(self):
|
161 | 171 |
"""Test: Check result set to fullname."""
|
162 | 172 |
self.assertEqual(self._distro_info.stable(self._date, "fullname"),
|