diff options
Diffstat (limited to 'Lib/test/test_uuid.py')
-rw-r--r-- | Lib/test/test_uuid.py | 83 |
1 files changed, 33 insertions, 50 deletions
diff --git a/Lib/test/test_uuid.py b/Lib/test/test_uuid.py index 9f7d606238..72648089b7 100644 --- a/Lib/test/test_uuid.py +++ b/Lib/test/test_uuid.py @@ -3,6 +3,7 @@ from test import support import builtins import io import os +import shutil import uuid def importable(name): @@ -312,24 +313,22 @@ class TestUUID(unittest.TestCase): else: TestUUID.last_node = node + @unittest.skipUnless(os.name == 'posix', 'requires Posix') def test_ifconfig_getnode(self): - import sys - import os - if os.name == 'posix': - node = uuid._ifconfig_getnode() - if node is not None: - self.check_node(node, 'ifconfig') + node = uuid._ifconfig_getnode() + if node is not None: + self.check_node(node, 'ifconfig') + @unittest.skipUnless(os.name == 'nt', 'requires Windows') def test_ipconfig_getnode(self): - import os - if os.name == 'nt': - node = uuid._ipconfig_getnode() - if node is not None: - self.check_node(node, 'ipconfig') + node = uuid._ipconfig_getnode() + if node is not None: + self.check_node(node, 'ipconfig') + @unittest.skipUnless(importable('win32wnet'), 'requires win32wnet') + @unittest.skipUnless(importable('netbios'), 'requires netbios') def test_netbios_getnode(self): - if importable('win32wnet') and importable('netbios'): - self.check_node(uuid._netbios_getnode(), 'netbios') + self.check_node(uuid._netbios_getnode(), 'netbios') def test_random_getnode(self): node = uuid._random_getnode() @@ -337,22 +336,20 @@ class TestUUID(unittest.TestCase): self.assertTrue(node & 0x010000000000) self.assertTrue(node < (1 << 48)) + @unittest.skipUnless(os.name == 'posix', 'requires Posix') + @unittest.skipUnless(importable('ctypes'), 'requires ctypes') def test_unixdll_getnode(self): - import sys - import os - if importable('ctypes') and os.name == 'posix': - try: # Issues 1481, 3581: _uuid_generate_time() might be None. - self.check_node(uuid._unixdll_getnode(), 'unixdll') - except TypeError: - pass + try: # Issues 1481, 3581: _uuid_generate_time() might be None. + self.check_node(uuid._unixdll_getnode(), 'unixdll') + except TypeError: + pass + @unittest.skipUnless(os.name == 'nt', 'requires Windows') + @unittest.skipUnless(importable('ctypes'), 'requires ctypes') def test_windll_getnode(self): - import os - if importable('ctypes') and os.name == 'nt': - self.check_node(uuid._windll_getnode(), 'windll') + self.check_node(uuid._windll_getnode(), 'windll') def test_getnode(self): - import sys node1 = uuid.getnode() self.check_node(node1, "getnode1") @@ -373,6 +370,11 @@ eth0 Link encap:Ethernet HWaddr 12:34:56:78:90:ab def mock_popen(cmd): return io.StringIO(data) + if shutil.which('ifconfig') is None: + path = os.pathsep.join(('/sbin', '/usr/sbin')) + if shutil.which('ifconfig', path=path) is None: + self.skipTest('requires ifconfig') + with support.swap_attr(os, 'popen', mock_popen): mac = uuid._find_mac( command='ifconfig', @@ -382,13 +384,8 @@ eth0 Link encap:Ethernet HWaddr 12:34:56:78:90:ab ) self.assertEqual(mac, 0x1234567890ab) + @unittest.skipUnless(importable('ctypes'), 'requires ctypes') def test_uuid1(self): - # uuid1 requires ctypes. - try: - import ctypes - except ImportError: - return - equal = self.assertEqual # Make sure uuid1() generates UUIDs that are actually version 1. @@ -441,13 +438,8 @@ eth0 Link encap:Ethernet HWaddr 12:34:56:78:90:ab equal(u, uuid.UUID(v)) equal(str(u), v) + @unittest.skipUnless(importable('ctypes'), 'requires ctypes') def test_uuid4(self): - # uuid4 requires ctypes. - try: - import ctypes - except ImportError: - return - equal = self.assertEqual # Make sure uuid4() generates UUIDs that are actually version 4. @@ -479,12 +471,8 @@ eth0 Link encap:Ethernet HWaddr 12:34:56:78:90:ab equal(u, uuid.UUID(v)) equal(str(u), v) + @unittest.skipUnless(os.name == 'posix', 'requires Posix') def testIssue8621(self): - import os - import sys - if os.name != 'posix': - return - # On at least some versions of OSX uuid.uuid4 generates # the same sequence of UUIDs in the parent and any # children started using fork. @@ -493,23 +481,18 @@ eth0 Link encap:Ethernet HWaddr 12:34:56:78:90:ab if pid == 0: os.close(fds[0]) value = uuid.uuid4() - os.write(fds[1], value.hex.encode('latin1')) + os.write(fds[1], value.hex.encode('latin-1')) os._exit(0) else: os.close(fds[1]) + self.addCleanup(os.close, fds[0]) parent_value = uuid.uuid4().hex os.waitpid(pid, 0) - child_value = os.read(fds[0], 100).decode('latin1') + child_value = os.read(fds[0], 100).decode('latin-1') self.assertNotEqual(parent_value, child_value) - - - -def test_main(): - support.run_unittest(TestUUID) - if __name__ == '__main__': - test_main() + unittest.main() |