Commits

jdunck committed e488160

stderr, verbosity.

Comments (0)

Files changed (1)

south/management/commands/migrationcheck.py

-from django.core.management import call_command
+from django.core.management import call_command, CommandError
 from django.core.management.base import BaseCommand
 from django.conf import settings
 from django.db.models import loading
 
     def handle(self, **options):
         runner = simple.DjangoTestSuiteRunner(verbosity=0)
-        err_msg = "Failed to migrate %s; see output for hints at missing dependencies:"
+        err_msg = "Failed to migrate %s; see output for hints at missing dependencies:\n"
         hacks.patch_flush_during_test_db_creation()
+        failures = 0
         for app_name in settings.INSTALLED_APPS:
             app_label = app_name.split(".")[-1]
             if app_name == 'south':
             except NoMigrations:
                 continue
             app = loading.get_app(app_label)
-            print "processing %s" % app_name
+
+            verbosity = int(options.get('verbosity', 1))
+            if verbosity >= 1:
+                self.stderr.write("processing %s\n" % app_name)
 
             old_config = runner.setup_databases()
             try:
             except (KeyboardInterrupt, SystemExit):
                 raise
             except Exception, e:
-                print err_msg % app_name
-                print e
-
+                failures += 1
+                if verbosity >= 1:
+                    self.stderr.write(err_msg % app_name)
+                    self.stderr.write("%s\n" % e)
             finally:
                 runner.teardown_databases(old_config)
+        if failures > 0:
+            raise CommandError("Missing depends_on found in %s app(s)." % failures)
 #
 #for each app:
 #    start with blank db.
Tip: Filter by directory path e.g. /media app.js to search for public/media/app.js.
Tip: Use camelCasing e.g. ProjME to search for ProjectModifiedEvent.java.
Tip: Filter by extension type e.g. /repo .js to search for all .js files in the /repo directory.
Tip: Separate your search with spaces e.g. /ssh pom.xml to search for src/ssh/pom.xml.
Tip: Use ↑ and ↓ arrow keys to navigate and return to view the file.
Tip: You can also navigate files with Ctrl+j (next) and Ctrl+k (previous) and view the file with Ctrl+o.
Tip: You can also navigate files with Alt+j (next) and Alt+k (previous) and view the file with Alt+o.