Index: django/test/simple.py
===================================================================
--- django/test/simple.py	(revision 6507)
+++ django/test/simple.py	(working copy)
@@ -42,18 +42,29 @@
     
     # Load unit and doctests in the models.py module. If module has
     # a suite() method, use it. Otherwise build the test suite ourselves.
-    if hasattr(app_module, 'suite'):
-        suite.addTest(app_module.suite())
+    if app_module.__file__.endswith(('/models/__init__.py', '/models/__init__.pyc')):
+        from types import ModuleType
+        import os.path
+        app_locals = [getattr(app_module, x) for x in dir(app_module)]
+        app_dirname = os.path.dirname(app_module.__file__)
+        submodules = [x for x in app_locals
+                      if isinstance(x, ModuleType)
+                      and os.path.dirname(x.__file__) == app_dirname]
     else:
-        suite.addTest(unittest.defaultTestLoader.loadTestsFromModule(app_module))
-        try:
-            suite.addTest(doctest.DocTestSuite(app_module,
-                                               checker=doctestOutputChecker,
-                                               runner=DocTestRunner))
-        except ValueError:
-            # No doc tests in models.py
-            pass
-    
+        submodules = []
+    for module in [app_module] + submodules:
+        if hasattr(module, 'suite'):
+            suite.addTest(module.suite())
+        else:
+            suite.addTest(unittest.defaultTestLoader.loadTestsFromModule(module))
+            try:
+                suite.addTest(doctest.DocTestSuite(module,
+                                                   checker=doctestOutputChecker,
+                                                   runner=DocTestRunner))
+            except ValueError:
+                # No doc tests in models.py
+                pass
+
     # Check to see if a separate 'tests' module exists parallel to the 
     # models module
     test_module = get_tests(app_module)
