diff --git a/Lib/test/test_uuid.py b/Lib/test/test_uuid.py index f21bd6dfa15235..2d22de87655618 100644 --- a/Lib/test/test_uuid.py +++ b/Lib/test/test_uuid.py @@ -305,7 +305,7 @@ def test_exceptions(self): def test_getnode(self): node1 = self.uuid.getnode() - self.assertTrue(0 < node1 < (1 << 48), '%012x' % node1) + self.check_node(node1) # Test it again to ensure consistency. node2 = self.uuid.getnode() @@ -518,7 +518,11 @@ def check_node(self, node, requires=None): hex = '%012x' % node if support.verbose >= 2: print(hex, end=' ') - self.assertTrue(0 < node < (1 << 48), + if network: + # 47 bit will never be set in IEEE 802 addresses obtained + # from network cards. + self.assertFalse(node & 0x010000000000, hex) + self.assertTrue(0 <= node < (1 << 48), "%s is not an RFC 4122 node ID" % hex) @unittest.skipUnless(os.name == 'posix', 'requires Posix') @@ -582,7 +586,7 @@ def test_unix_getnode(self): @unittest.skipUnless(importable('ctypes'), 'requires ctypes') def test_windll_getnode(self): node = self.uuid._windll_getnode() - self.check_node(node) + self.check_node(node, network=True) class TestInternalsWithoutExtModule(BaseTestInternals, unittest.TestCase):