summaryrefslogtreecommitdiff
path: root/tests/apps
diff options
context:
space:
mode:
authorTom Forbes <tom@tomforb.es>2020-07-12 13:59:57 +0100
committerMariusz Felisiak <felisiak.mariusz@gmail.com>2020-12-15 11:25:46 +0100
commitb5e12d490af3debca8c55ab3c1698189fdedbbdb (patch)
tree5fe3005ac567f3addf78b81ae033191e2fa642f4 /tests/apps
parentb960e4ed722a04a9db0d35293f76e253eedf9126 (diff)
downloaddjango-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.py5
-rw-r--r--tests/apps/tests.py28
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