Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Commit e69fbb6

Browse files
Fix a regression in uuid added in bpo-32107. (#4677)
uuid.get_node() always must return a stable result. Also added a test for non-reproducibility of _random_getnode(). Original patch by Xavier de Gaye.
1 parent 85d5c18 commit e69fbb6

2 files changed

Lines changed: 5 additions & 2 deletions

File tree

Lib/test/test_uuid.py

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -565,6 +565,9 @@ def test_random_getnode(self):
565565
self.assertTrue(node & (1 << 40), '%012x' % node)
566566
self.check_node(node)
567567

568+
node2 = self.uuid._random_getnode()
569+
self.assertNotEqual(node2, node, '%012x' % node)
570+
568571
@unittest.skipUnless(os.name == 'posix', 'requires Posix')
569572
def test_unix_getnode(self):
570573
if not importable('_uuid') and not importable('ctypes'):

Lib/uuid.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -674,14 +674,14 @@ def getnode():
674674
getters = [_unix_getnode, _ifconfig_getnode, _ip_getnode,
675675
_arp_getnode, _lanscan_getnode, _netstat_getnode]
676676

677-
for getter in getters:
677+
for getter in getters + [_random_getnode]:
678678
try:
679679
_node = getter()
680680
except:
681681
continue
682682
if _node is not None:
683683
return _node
684-
return _random_getnode()
684+
assert False, '_random_getnode() returned None'
685685

686686

687687
_last_timestamp = None

0 commit comments

Comments
 (0)