From a38d4dbf68793d93d22655e377f5df740ea81fe7 Mon Sep 17 00:00:00 2001 From: Ivan Pozdeev Date: Sat, 18 Nov 2017 06:35:07 +0300 Subject: [PATCH 1/2] Allows for all-zero MAC address (e.g. mobile modem) --- Lib/test/test_uuid.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Lib/test/test_uuid.py b/Lib/test/test_uuid.py index f21bd6dfa15235..d56abeb36f1b05 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.assertTrue(0 <= node1 < (1 << 48), '%012x' % node1) # Test it again to ensure consistency. node2 = self.uuid.getnode() @@ -518,7 +518,7 @@ def check_node(self, node, requires=None): hex = '%012x' % node if support.verbose >= 2: print(hex, end=' ') - self.assertTrue(0 < node < (1 << 48), + self.assertTrue(0 <= node < (1 << 48), "%s is not an RFC 4122 node ID" % hex) @unittest.skipUnless(os.name == 'posix', 'requires Posix') From b824c8a07dae7bfa9461e7c443fa728d4681c295 Mon Sep 17 00:00:00 2001 From: Ivan Pozdeev Date: Tue, 12 Dec 2017 02:27:05 +0300 Subject: [PATCH 2/2] eliminate duplication --- Lib/test/test_uuid.py | 30 ++++++++++++++++-------------- 1 file changed, 16 insertions(+), 14 deletions(-) diff --git a/Lib/test/test_uuid.py b/Lib/test/test_uuid.py index d56abeb36f1b05..32881e51a59a7c 100644 --- a/Lib/test/test_uuid.py +++ b/Lib/test/test_uuid.py @@ -18,10 +18,22 @@ def importable(name): except: return False - -class BaseTestUUID: +class _BaseTestShared: uuid = None + def check_node(self, node, requires=None): + if requires and node is None: + self.skipTest('requires ' + requires) + hex = '%012x' % node + if support.verbose >= 2: + print(hex, end=' ') + self.assertTrue(0 <= node < (1 << 48), + "%s is not an RFC 4122 node ID" % hex) + + + +class BaseTestUUID(_BaseTestShared): + def test_UUID(self): equal = self.assertEqual ascending = [] @@ -305,7 +317,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() @@ -485,8 +497,7 @@ class TestUUIDWithExtModule(BaseTestUUID, unittest.TestCase): uuid = c_uuid -class BaseTestInternals: - uuid = None +class BaseTestInternals(_BaseTestShared): @unittest.skipUnless(os.name == 'posix', 'requires Posix') def test_find_mac(self): @@ -512,15 +523,6 @@ def test_find_mac(self): self.assertEqual(mac, 0x1234567890ab) - def check_node(self, node, requires=None): - if requires and node is None: - self.skipTest('requires ' + requires) - hex = '%012x' % node - if support.verbose >= 2: - print(hex, end=' ') - self.assertTrue(0 <= node < (1 << 48), - "%s is not an RFC 4122 node ID" % hex) - @unittest.skipUnless(os.name == 'posix', 'requires Posix') def test_ifconfig_getnode(self): node = self.uuid._ifconfig_getnode()