mirror of
https://github.com/django/django.git
synced 2025-08-30 23:37:50 +00:00
Fixed #24742 -- Made runserver.check_migrations ignore read-only databases
Thanks Luis Del Giudice for the report, and Aymeric Augustin and Markus Holtermann for the reviews.
This commit is contained in:
parent
3c8fe5dddf
commit
f61c4f490d
4 changed files with 51 additions and 8 deletions
|
@ -22,6 +22,9 @@ from django.conf import settings
|
|||
from django.core.management import (
|
||||
BaseCommand, CommandError, call_command, color,
|
||||
)
|
||||
from django.db import ConnectionHandler
|
||||
from django.db.migrations.exceptions import MigrationSchemaMissing
|
||||
from django.db.migrations.recorder import MigrationRecorder
|
||||
from django.test import LiveServerTestCase, TestCase, mock, override_settings
|
||||
from django.test.runner import DiscoverRunner
|
||||
from django.utils._os import npath, upath
|
||||
|
@ -1247,7 +1250,8 @@ class ManageRunserver(AdminScriptTestCase):
|
|||
def monkey_run(*args, **options):
|
||||
return
|
||||
|
||||
self.cmd = Command()
|
||||
self.output = StringIO()
|
||||
self.cmd = Command(stdout=self.output)
|
||||
self.cmd.run = monkey_run
|
||||
|
||||
def assertServerSettings(self, addr, port, ipv6=None, raw_ipv6=False):
|
||||
|
@ -1298,6 +1302,26 @@ class ManageRunserver(AdminScriptTestCase):
|
|||
self.cmd.handle(addrport="deadbeef:7654")
|
||||
self.assertServerSettings('deadbeef', '7654')
|
||||
|
||||
def test_no_database(self):
|
||||
"""
|
||||
Ensure runserver.check_migrations doesn't choke on empty DATABASES.
|
||||
"""
|
||||
tested_connections = ConnectionHandler({})
|
||||
with mock.patch('django.core.management.commands.runserver.connections', new=tested_connections):
|
||||
self.cmd.check_migrations()
|
||||
|
||||
def test_readonly_database(self):
|
||||
"""
|
||||
Ensure runserver.check_migrations doesn't choke when a database is read-only
|
||||
(with possibly no django_migrations table).
|
||||
"""
|
||||
with mock.patch.object(
|
||||
MigrationRecorder, 'ensure_schema',
|
||||
side_effect=MigrationSchemaMissing()):
|
||||
self.cmd.check_migrations()
|
||||
# Check a warning is emitted
|
||||
self.assertIn("Not checking migrations", self.output.getvalue())
|
||||
|
||||
|
||||
class ManageRunserverEmptyAllowedHosts(AdminScriptTestCase):
|
||||
def setUp(self):
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue