fix an UnboundLocalError when the release file is empty #7773

This commit is contained in:
Benjamin Peterson 2010-01-25 03:31:13 +00:00
parent aab2401977
commit a43f34cc2a
4 changed files with 11 additions and 2 deletions

View file

@ -263,6 +263,12 @@ _supported_dists = (
def _parse_release_file(firstline): def _parse_release_file(firstline):
# Default to empty 'version' and 'id' strings. Both defaults are used
# when 'firstline' is empty. 'id' defaults to empty when an id can not
# be deduced.
version = ''
id = ''
# Parse the first line # Parse the first line
m = _lsb_release_version.match(firstline) m = _lsb_release_version.match(firstline)
if m is not None: if m is not None:
@ -280,8 +286,6 @@ def _parse_release_file(firstline):
version = l[0] version = l[0]
if len(l) > 1: if len(l) > 1:
id = l[1] id = l[1]
else:
id = ''
return '', version, id return '', version, id
def linux_distribution(distname='', version='', id='', def linux_distribution(distname='', version='', id='',

View file

@ -198,6 +198,7 @@ class PlatformTest(unittest.TestCase):
('Red Hat Enterprise Linux release 4 (Nahant)', ('Red Hat Enterprise Linux', '4', 'Nahant')), ('Red Hat Enterprise Linux release 4 (Nahant)', ('Red Hat Enterprise Linux', '4', 'Nahant')),
('CentOS release 4', ('CentOS', '4', None)), ('CentOS release 4', ('CentOS', '4', None)),
('Rocks release 4.2.1 (Cydonia)', ('Rocks', '4.2.1', 'Cydonia')), ('Rocks release 4.2.1 (Cydonia)', ('Rocks', '4.2.1', 'Cydonia')),
('', ('', '', '')), # If there's nothing there.
): ):
self.assertEqual(platform._parse_release_file(input), output) self.assertEqual(platform._parse_release_file(input), output)

View file

@ -357,6 +357,7 @@ Jeremy Hylton
Gerhard Häring Gerhard Häring
Mihai Ibanescu Mihai Ibanescu
Lars Immisch Lars Immisch
Meador Inge
Tony Ingraldi Tony Ingraldi
John Interrante John Interrante
Bob Ippolito Bob Ippolito

View file

@ -42,6 +42,9 @@ Core and Builtins
Library Library
------- -------
- Issue #7773: Fix an UnboundLocalError in platform.linux_distribution() when
the release file is empty.
- Issue #7748: Since unicode values are supported for some metadata options - Issue #7748: Since unicode values are supported for some metadata options
in Distutils, the DistributionMetadata get_* methods will now return an utf-8 in Distutils, the DistributionMetadata get_* methods will now return an utf-8
encoded string for them. This ensure that the upload and register commands encoded string for them. This ensure that the upload and register commands