summaryrefslogtreecommitdiff
path: root/tests
diff options
context:
space:
mode:
authorHasan Ramezani <hasan.r67@gmail.com>2020-11-10 23:22:30 +0100
committerMariusz Felisiak <felisiak.mariusz@gmail.com>2020-11-11 08:33:30 +0100
commit50c3ac6fa9b7c8a94a6d1dc87edf775e3bc4d575 (patch)
treeda9c99b9f278b67a14aff80109c79a3f607cd1dc /tests
parentc9e85443211715993d7b27af2bf772380e26f6de (diff)
Fixed #31762 -- Made reloading the database for tests use the base manager.
Co-authored-by: Eugene Kulak <kulak.eugene@gmail.com>
Diffstat (limited to 'tests')
-rw-r--r--tests/backends/base/test_creation.py13
-rw-r--r--tests/backends/models.py7
2 files changed, 20 insertions, 0 deletions
diff --git a/tests/backends/base/test_creation.py b/tests/backends/base/test_creation.py
index 3d22cabd0f..3e29961d21 100644
--- a/tests/backends/base/test_creation.py
+++ b/tests/backends/base/test_creation.py
@@ -1,4 +1,5 @@
import copy
+import datetime
from unittest import mock
from django.db import DEFAULT_DB_ALIAS, connection, connections
@@ -10,6 +11,7 @@ from django.test.utils import override_settings
from ..models import (
CircularA, CircularB, Object, ObjectReference, ObjectSelfReference,
+ SchoolClass,
)
@@ -175,3 +177,14 @@ class TestDeserializeDbFromString(TransactionTestCase):
obj_b = CircularB.objects.get()
self.assertEqual(obj_a.obj, obj_b)
self.assertEqual(obj_b.obj, obj_a)
+
+ def test_serialize_db_to_string_base_manager(self):
+ SchoolClass.objects.create(year=1000, last_updated=datetime.datetime.now())
+ with mock.patch('django.db.migrations.loader.MigrationLoader') as loader:
+ # serialize_db_to_string() serializes only migrated apps, so mark
+ # the backends app as migrated.
+ loader_instance = loader.return_value
+ loader_instance.migrated_apps = {'backends'}
+ data = connection.creation.serialize_db_to_string()
+ self.assertIn('"model": "backends.schoolclass"', data)
+ self.assertIn('"year": 1000', data)
diff --git a/tests/backends/models.py b/tests/backends/models.py
index 096fdb57cc..5368e8d903 100644
--- a/tests/backends/models.py
+++ b/tests/backends/models.py
@@ -21,11 +21,18 @@ class Person(models.Model):
return '%s %s' % (self.first_name, self.last_name)
+class SchoolClassManager(models.Manager):
+ def get_queryset(self):
+ return super().get_queryset().exclude(year=1000)
+
+
class SchoolClass(models.Model):
year = models.PositiveIntegerField()
day = models.CharField(max_length=9, blank=True)
last_updated = models.DateTimeField()
+ objects = SchoolClassManager()
+
class VeryLongModelNameZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZ(models.Model):
primary_key_is_quite_long_zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz = models.AutoField(primary_key=True)