Mercurial > cpython-lru_cache-weakref
changeset 87599:cbf30e9aa586 2.7
Merge heads
| author | Zachary Ware <zachary.ware@gmail.com> |
|---|---|
| date | Tue, 26 Nov 2013 14:55:46 -0600 |
| parents | c8e138646be1 (current diff) 72951ffbdc76 (diff) |
| children | e5b7f140ae30 |
| files | Misc/ACKS Misc/NEWS |
| diffstat | 4 files changed, 34 insertions(+), 2 deletions(-) [+] |
line wrap: on
line diff
--- a/Lib/test/test_uuid.py Tue Nov 26 14:49:42 2013 -0600 +++ b/Lib/test/test_uuid.py Tue Nov 26 14:55:46 2013 -0600 @@ -1,5 +1,6 @@ import unittest from test import test_support +import io import os import uuid @@ -346,6 +347,25 @@ self.assertEqual(node1, node2) + def test_find_mac(self): + data = '''\ + +fake hwaddr +cscotun0 Link encap:UNSPEC HWaddr 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00 +eth0 Link encap:Ethernet HWaddr 12:34:56:78:90:ab +''' + def mock_popen(cmd): + return io.BytesIO(data) + + with test_support.swap_attr(os, 'popen', mock_popen): + mac = uuid._find_mac( + command='ifconfig', + args='', + hw_identifiers=['hwaddr'], + get_index=lambda x: x + 1, + ) + self.assertEqual(mac, 0x1234567890ab) + @unittest.skipUnless(importable('ctypes'), 'requires ctypes') def test_uuid1(self): equal = self.assertEqual
--- a/Lib/uuid.py Tue Nov 26 14:49:42 2013 -0600 +++ b/Lib/uuid.py Tue Nov 26 14:55:46 2013 -0600 @@ -307,8 +307,16 @@ words = line.lower().split() for i in range(len(words)): if words[i] in hw_identifiers: - return int( - words[get_index(i)].replace(':', ''), 16) + try: + return int( + words[get_index(i)].replace(':', ''), 16) + except (ValueError, IndexError): + # Virtual interfaces, such as those provided by + # VPNs, do not have a colon-delimited MAC address + # as expected, but a 16-byte HWAddr separated by + # dashes. These should be ignored in favor of a + # real MAC address + pass except IOError: continue return None
--- a/Misc/ACKS Tue Nov 26 14:49:42 2013 -0600 +++ b/Misc/ACKS Tue Nov 26 14:55:46 2013 -0600 @@ -324,6 +324,7 @@ John Fouhy Stefan Franke Martin Franklin +Kent Frazier Bruce Frederiksen Robin Friedrich Bradley Froehle
--- a/Misc/NEWS Tue Nov 26 14:49:42 2013 -0600 +++ b/Misc/NEWS Tue Nov 26 14:55:46 2013 -0600 @@ -15,6 +15,9 @@ Library ------- +- Issue #11508: Fixed uuid.getnode() and uuid.uuid1() on environment with + virtual interface. Original patch by Kent Frazier. + - Issue #11489: JSON decoder now accepts lone surrogates. - Fix test.test_support.bind_port() to not cause an error when Python was
