summaryrefslogtreecommitdiff
path: root/Lib/test/test_uuid.py
diff options
context:
space:
mode:
Diffstat (limited to 'Lib/test/test_uuid.py')
-rw-r--r--Lib/test/test_uuid.py83
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()