From 2992f428614349b0dfe0f4183905f492fd3f62c2 Mon Sep 17 00:00:00 2001 From: Claude Paroz Date: Wed, 16 Oct 2013 17:58:05 +0200 Subject: Fixed #19657 -- Made sql commands honor allow_migrate Thanks Manel Clos for the report and the initial patch, and Marc Tamlyn and Tim Graham for the review. --- tests/commands_sql/tests.py | 22 +++++++++++++++++++++- 1 file changed, 21 insertions(+), 1 deletion(-) (limited to 'tests/commands_sql') diff --git a/tests/commands_sql/tests.py b/tests/commands_sql/tests.py index e083d3977a..1a1a190ec5 100644 --- a/tests/commands_sql/tests.py +++ b/tests/commands_sql/tests.py @@ -3,7 +3,7 @@ from __future__ import unicode_literals from django.core.management.color import no_style from django.core.management.sql import (sql_create, sql_delete, sql_indexes, sql_destroy_indexes, sql_all) -from django.db import connections, DEFAULT_DB_ALIAS, models +from django.db import connections, DEFAULT_DB_ALIAS, models, router from django.test import TestCase from django.utils import six @@ -52,3 +52,23 @@ class SQLCommandsTestCase(TestCase): self.assertEqual(self.count_ddl(output, 'CREATE TABLE'), 3) # PostgreSQL creates one additional index for CharField self.assertIn(self.count_ddl(output, 'CREATE INDEX'), [3, 4]) + + +class TestRouter(object): + def allow_migrate(self, db, model): + return False + +class SQLCommandsRouterTestCase(TestCase): + def setUp(self): + self._old_routers = router.routers + router.routers = [TestRouter()] + + def tearDown(self): + router.routers = self._old_routers + + def test_router_honored(self): + app = models.get_app('commands_sql') + for sql_command in (sql_all, sql_create, sql_delete, sql_indexes, sql_destroy_indexes): + output = sql_command(app, no_style(), connections[DEFAULT_DB_ALIAS]) + self.assertEqual(len(output), 0, + "%s command is not honoring routers" % sql_command.__name__) -- cgit v1.2.1