1
0
mirror of https://github.com/django/django.git synced 2025-03-31 19:46:42 +00:00

Fixed #33014 -- Made ProjectState raise exception when real_apps argument is not a set.

This commit is contained in:
Chris Jerdonek 2021-08-12 01:50:54 -04:00 committed by Mariusz Felisiak
parent 4e8121e8e4
commit 7800596924
3 changed files with 12 additions and 3 deletions

View File

@ -91,10 +91,11 @@ class ProjectState:
def __init__(self, models=None, real_apps=None): def __init__(self, models=None, real_apps=None):
self.models = models or {} self.models = models or {}
# Apps to include from main registry, usually unmigrated ones # Apps to include from main registry, usually unmigrated ones
if real_apps: if real_apps is None:
self.real_apps = real_apps if isinstance(real_apps, set) else set(real_apps) real_apps = set()
else: else:
self.real_apps = set() assert isinstance(real_apps, set)
self.real_apps = real_apps
self.is_delayed = False self.is_delayed = False
# {remote_model_key: {model_key: [(field_name, field)]}} # {remote_model_key: {model_key: [(field_name, field)]}}
self.relations = None self.relations = None

View File

@ -544,6 +544,10 @@ Miscellaneous
* The undocumented ``TRANSLATOR_COMMENT_MARK`` constant is moved from * The undocumented ``TRANSLATOR_COMMENT_MARK`` constant is moved from
``django.template.base`` to ``django.utils.translation.template``. ``django.template.base`` to ``django.utils.translation.template``.
* The ``real_apps`` argument of the undocumented
``django.db.migrations.state.ProjectState.__init__()`` method must now be a
set if provided.
.. _deprecated-features-4.0: .. _deprecated-features-4.0:
Features deprecated in 4.0 Features deprecated in 4.0

View File

@ -924,6 +924,10 @@ class StateTests(SimpleTestCase):
1, 1,
) )
def test_real_apps_non_set(self):
with self.assertRaises(AssertionError):
ProjectState(real_apps=['contenttypes'])
def test_ignore_order_wrt(self): def test_ignore_order_wrt(self):
""" """
Makes sure ProjectState doesn't include OrderWrt fields when Makes sure ProjectState doesn't include OrderWrt fields when