Commit a43f34cc authored by Benjamin Peterson's avatar Benjamin Peterson

fix an UnboundLocalError when the release file is empty #7773

parent aab24019
...@@ -263,6 +263,12 @@ _supported_dists = ( ...@@ -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): ...@@ -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='',
......
...@@ -198,6 +198,7 @@ class PlatformTest(unittest.TestCase): ...@@ -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)
......
...@@ -357,6 +357,7 @@ Jeremy Hylton ...@@ -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
......
...@@ -42,6 +42,9 @@ Core and Builtins ...@@ -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
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment