diff options
author | Tom Forbes <tom@tomforb.es> | 2020-07-12 13:59:57 +0100 |
---|---|---|
committer | Mariusz Felisiak <felisiak.mariusz@gmail.com> | 2020-12-15 11:25:46 +0100 |
commit | b5e12d490af3debca8c55ab3c1698189fdedbbdb (patch) | |
tree | 5fe3005ac567f3addf78b81ae033191e2fa642f4 /tests/apps | |
parent | b960e4ed722a04a9db0d35293f76e253eedf9126 (diff) | |
download | django-b5e12d490af3debca8c55ab3c1698189fdedbbdb.tar.gz |
Fixed #31007 -- Allowed specifying type of auto-created primary keys.
This also changes the default type of auto-created primary keys
for new apps and projects to BigAutoField.
Diffstat (limited to 'tests/apps')
-rw-r--r-- | tests/apps/apps.py | 5 | ||||
-rw-r--r-- | tests/apps/tests.py | 28 |
2 files changed, 31 insertions, 2 deletions
diff --git a/tests/apps/apps.py b/tests/apps/apps.py index d322b28f2b..efd2983779 100644 --- a/tests/apps/apps.py +++ b/tests/apps/apps.py @@ -31,3 +31,8 @@ class PlainAppsConfig(AppConfig): class RelabeledAppsConfig(AppConfig): name = 'apps' label = 'relabeled' + + +class ModelPKAppsConfig(AppConfig): + name = 'apps' + default_auto_field = 'django.db.models.BigAutoField' diff --git a/tests/apps/tests.py b/tests/apps/tests.py index 26d135f244..0e1f918bcc 100644 --- a/tests/apps/tests.py +++ b/tests/apps/tests.py @@ -102,8 +102,8 @@ class AppsTests(SimpleTestCase): def test_no_such_app_config_with_choices(self): msg = ( "Module 'apps.apps' does not contain a 'NoSuchConfig' class. " - "Choices are: 'BadConfig', 'MyAdmin', 'MyAuth', 'NoSuchApp', " - "'PlainAppsConfig', 'RelabeledAppsConfig'." + "Choices are: 'BadConfig', 'ModelPKAppsConfig', 'MyAdmin', " + "'MyAuth', 'NoSuchApp', 'PlainAppsConfig', 'RelabeledAppsConfig'." ) with self.assertRaisesMessage(ImportError, msg): with self.settings(INSTALLED_APPS=['apps.apps.NoSuchConfig']): @@ -436,6 +436,30 @@ class AppConfigTests(SimpleTestCase): ac = AppConfig('label', Stub(__path__=['a'])) self.assertEqual(repr(ac), '<AppConfig: label>') + @override_settings( + INSTALLED_APPS=['apps.apps.ModelPKAppsConfig'], + DEFAULT_AUTO_FIELD='django.db.models.SmallAutoField', + ) + def test_app_default_auto_field(self): + apps_config = apps.get_app_config('apps') + self.assertEqual( + apps_config.default_auto_field, + 'django.db.models.BigAutoField', + ) + self.assertIs(apps_config._is_default_auto_field_overridden, True) + + @override_settings( + INSTALLED_APPS=['apps.apps.PlainAppsConfig'], + DEFAULT_AUTO_FIELD='django.db.models.SmallAutoField', + ) + def test_default_auto_field_setting(self): + apps_config = apps.get_app_config('apps') + self.assertEqual( + apps_config.default_auto_field, + 'django.db.models.SmallAutoField', + ) + self.assertIs(apps_config._is_default_auto_field_overridden, False) + class NamespacePackageAppTests(SimpleTestCase): # We need nsapp to be top-level so our multiple-paths tests can add another |