unittest.TestLoader creates a TestSuite before calling load_tests. Issue 7799.
diff --git a/Lib/unittest/loader.py b/Lib/unittest/loader.py
index 31c343b..c04de06 100644
--- a/Lib/unittest/loader.py
+++ b/Lib/unittest/loader.py
@@ -71,9 +71,10 @@
                 tests.append(self.loadTestsFromTestCase(obj))
 
         load_tests = getattr(module, 'load_tests', None)
+        tests = self.suiteClass(tests)
         if use_load_tests and load_tests is not None:
             return load_tests(self, tests, None)
-        return self.suiteClass(tests)
+        return tests
 
     def loadTestsFromName(self, name, module=None):
         """Return a suite of all tests cases given a string specifier.