Closes #13258: Use callable() built-in in the standard library.
diff --git a/Lib/unittest/loader.py b/Lib/unittest/loader.py
index afdff67..cb92fd2 100644
--- a/Lib/unittest/loader.py
+++ b/Lib/unittest/loader.py
@@ -113,7 +113,7 @@
                 return self.suiteClass([inst])
         elif isinstance(obj, suite.TestSuite):
             return obj
-        if hasattr(obj, '__call__'):
+        if callable(obj):
             test = obj()
             if isinstance(test, suite.TestSuite):
                 return test
@@ -138,7 +138,7 @@
         def isTestMethod(attrname, testCaseClass=testCaseClass,
                          prefix=self.testMethodPrefix):
             return attrname.startswith(prefix) and \
-                hasattr(getattr(testCaseClass, attrname), '__call__')
+                callable(getattr(testCaseClass, attrname))
         testFnNames = testFnNames = list(filter(isTestMethod,
                                                 dir(testCaseClass)))
         if self.sortTestMethodsUsing:
diff --git a/Lib/unittest/suite.py b/Lib/unittest/suite.py
index 38bd6b8..cde5d38 100644
--- a/Lib/unittest/suite.py
+++ b/Lib/unittest/suite.py
@@ -42,7 +42,7 @@
 
     def addTest(self, test):
         # sanity checks
-        if not hasattr(test, '__call__'):
+        if not callable(test):
             raise TypeError("{} is not callable".format(repr(test)))
         if isinstance(test, type) and issubclass(test,
                                                  (case.TestCase, TestSuite)):