diff --git a/Lib/test/test_uuid.py b/Lib/test/test_uuid.py
index 27cdbe8..4400ebc 100644
--- a/Lib/test/test_uuid.py
+++ b/Lib/test/test_uuid.py
@@ -340,9 +340,10 @@
         equal(((u.clock_seq_hi_variant & 0x3f) << 8) |
                          u.clock_seq_low, 0x3fff)
 
-    @unittest.skipUnless(uuid._uuid_generate_time is not None,
-                         'requires uuid_generate_time_safe(3)')
-    @unittest.skipUnless(importable('ctypes'), 'requires ctypes')
+    requires_ugt = unittest.skipUnless(uuid._uuid_generate_time is not None,
+                                       'requires uuid_generate_time_safe(3)')
+
+    @requires_ugt
     def test_uuid1_safe(self):
         u = uuid.uuid1()
         # uuid_generate_time_safe() may return 0 or -1 but what it returns is
@@ -350,7 +351,7 @@
         # unknown (unless I suppose the platform is buggy).
         self.assertNotEqual(u.is_safe, uuid.SafeUUID.unknown)
 
-    @unittest.skipUnless(importable('ctypes'), 'requires ctypes')
+    @requires_ugt
     def test_uuid1_unknown(self):
         # Even if the platform has uuid_generate_time_safe(), let's mock it to
         # be uuid_generate_time() and ensure the safety is unknown.
@@ -359,21 +360,21 @@
             u = uuid.uuid1()
             self.assertEqual(u.is_safe, uuid.SafeUUID.unknown)
 
-    @unittest.skipUnless(importable('ctypes'), 'requires ctypes')
+    @requires_ugt
     def test_uuid1_is_safe(self):
         with unittest.mock.patch.object(uuid._uuid_generate_time,
                                         'restype', lambda x: 0):
             u = uuid.uuid1()
             self.assertEqual(u.is_safe, uuid.SafeUUID.safe)
 
-    @unittest.skipUnless(importable('ctypes'), 'requires ctypes')
+    @requires_ugt
     def test_uuid1_is_unsafe(self):
         with unittest.mock.patch.object(uuid._uuid_generate_time,
                                         'restype', lambda x: -1):
             u = uuid.uuid1()
             self.assertEqual(u.is_safe, uuid.SafeUUID.unsafe)
 
-    @unittest.skipUnless(importable('ctypes'), 'requires ctypes')
+    @requires_ugt
     def test_uuid1_bogus_return_value(self):
         with unittest.mock.patch.object(uuid._uuid_generate_time,
                                         'restype', lambda x: 3):
