summaryrefslogtreecommitdiff
path: root/tests/basic
diff options
context:
space:
mode:
Diffstat (limited to 'tests/basic')
-rw-r--r--tests/basic/tests.py141
1 files changed, 1 insertions, 140 deletions
diff --git a/tests/basic/tests.py b/tests/basic/tests.py
index 6c2f9f2bd2..f6eabfaed7 100644
--- a/tests/basic/tests.py
+++ b/tests/basic/tests.py
@@ -20,9 +20,8 @@ from django.test import (
TransactionTestCase,
skipUnlessDBFeature,
)
-from django.test.utils import CaptureQueriesContext, ignore_warnings
+from django.test.utils import CaptureQueriesContext
from django.utils.connection import ConnectionDoesNotExist
-from django.utils.deprecation import RemovedInDjango60Warning
from django.utils.translation import gettext_lazy
from .models import (
@@ -213,144 +212,6 @@ class ModelInstanceCreationTests(TestCase):
with self.assertNumQueries(1):
PrimaryKeyWithFalseyDbDefault().save()
- def test_save_deprecation(self):
- a = Article(headline="original", pub_date=datetime(2014, 5, 16))
- msg = "Passing positional arguments to save() is deprecated"
- with self.assertWarnsMessage(RemovedInDjango60Warning, msg) as ctx:
- a.save(False, False, None, None)
- self.assertEqual(Article.objects.count(), 1)
- self.assertEqual(ctx.filename, __file__)
-
- def test_save_deprecation_positional_arguments_used(self):
- a = Article()
- fields = ["headline"]
- with (
- self.assertWarns(RemovedInDjango60Warning),
- mock.patch.object(a, "save_base") as mock_save_base,
- ):
- a.save(None, 1, 2, fields)
- self.assertEqual(
- mock_save_base.mock_calls,
- [
- mock.call(
- using=2,
- force_insert=None,
- force_update=1,
- update_fields=frozenset(fields),
- )
- ],
- )
-
- def test_save_too_many_positional_arguments(self):
- a = Article()
- msg = "Model.save() takes from 1 to 5 positional arguments but 6 were given"
- with (
- self.assertWarns(RemovedInDjango60Warning),
- self.assertRaisesMessage(TypeError, msg),
- ):
- a.save(False, False, None, None, None)
-
- def test_save_conflicting_positional_and_named_arguments(self):
- a = Article()
- cases = [
- ("force_insert", True, [42]),
- ("force_update", None, [42, 41]),
- ("using", "some-db", [42, 41, 40]),
- ("update_fields", ["foo"], [42, 41, 40, 39]),
- ]
- for param_name, param_value, args in cases:
- with self.subTest(param_name=param_name):
- msg = f"Model.save() got multiple values for argument '{param_name}'"
- with (
- self.assertWarns(RemovedInDjango60Warning),
- self.assertRaisesMessage(TypeError, msg),
- ):
- a.save(*args, **{param_name: param_value})
-
- async def test_asave_deprecation(self):
- a = Article(headline="original", pub_date=datetime(2014, 5, 16))
- msg = "Passing positional arguments to asave() is deprecated"
- with self.assertWarnsMessage(RemovedInDjango60Warning, msg) as ctx:
- await a.asave(False, False, None, None)
- self.assertEqual(await Article.objects.acount(), 1)
- self.assertEqual(ctx.filename, __file__)
-
- async def test_asave_deprecation_positional_arguments_used(self):
- a = Article()
- fields = ["headline"]
- with (
- self.assertWarns(RemovedInDjango60Warning),
- mock.patch.object(a, "save_base") as mock_save_base,
- ):
- await a.asave(None, 1, 2, fields)
- self.assertEqual(
- mock_save_base.mock_calls,
- [
- mock.call(
- using=2,
- force_insert=None,
- force_update=1,
- update_fields=frozenset(fields),
- )
- ],
- )
-
- async def test_asave_too_many_positional_arguments(self):
- a = Article()
- msg = "Model.asave() takes from 1 to 5 positional arguments but 6 were given"
- with (
- self.assertWarns(RemovedInDjango60Warning),
- self.assertRaisesMessage(TypeError, msg),
- ):
- await a.asave(False, False, None, None, None)
-
- async def test_asave_conflicting_positional_and_named_arguments(self):
- a = Article()
- cases = [
- ("force_insert", True, [42]),
- ("force_update", None, [42, 41]),
- ("using", "some-db", [42, 41, 40]),
- ("update_fields", ["foo"], [42, 41, 40, 39]),
- ]
- for param_name, param_value, args in cases:
- with self.subTest(param_name=param_name):
- msg = f"Model.asave() got multiple values for argument '{param_name}'"
- with (
- self.assertWarns(RemovedInDjango60Warning),
- self.assertRaisesMessage(TypeError, msg),
- ):
- await a.asave(*args, **{param_name: param_value})
-
- @ignore_warnings(category=RemovedInDjango60Warning)
- def test_save_positional_arguments(self):
- a = Article.objects.create(headline="original", pub_date=datetime(2014, 5, 16))
- a.headline = "changed"
-
- a.save(False, False, None, ["pub_date"])
- a.refresh_from_db()
- self.assertEqual(a.headline, "original")
-
- a.headline = "changed"
- a.save(False, False, None, ["pub_date", "headline"])
- a.refresh_from_db()
- self.assertEqual(a.headline, "changed")
-
- @ignore_warnings(category=RemovedInDjango60Warning)
- async def test_asave_positional_arguments(self):
- a = await Article.objects.acreate(
- headline="original", pub_date=datetime(2014, 5, 16)
- )
- a.headline = "changed"
-
- await a.asave(False, False, None, ["pub_date"])
- await a.arefresh_from_db()
- self.assertEqual(a.headline, "original")
-
- a.headline = "changed"
- await a.asave(False, False, None, ["pub_date", "headline"])
- await a.arefresh_from_db()
- self.assertEqual(a.headline, "changed")
-
class ModelTest(TestCase):
def test_objects_attribute_is_only_available_on_the_class_itself(self):