summaryrefslogtreecommitdiff
path: root/tests/basic/tests.py
diff options
context:
space:
mode:
authorSalvo Polizzi <plzslv03a25c351k@studium.unict.it>2023-12-31 10:07:13 +0100
committerMariusz Felisiak <felisiak.mariusz@gmail.com>2024-01-02 08:42:33 +0100
commit3915d4c70d0d7673abe675525b58117a5099afd3 (patch)
tree21f8f95cf8d816d91ed76d5f260c365a8551d17d /tests/basic/tests.py
parente29d1870dd2b44f1b12c4ddf29b3fd24a903f7fd (diff)
Fixed #35060 -- Deprecated passing positional arguments to Model.save()/asave().
Diffstat (limited to 'tests/basic/tests.py')
-rw-r--r--tests/basic/tests.py46
1 files changed, 46 insertions, 0 deletions
diff --git a/tests/basic/tests.py b/tests/basic/tests.py
index ad82cffe8c..990549edfc 100644
--- a/tests/basic/tests.py
+++ b/tests/basic/tests.py
@@ -13,6 +13,8 @@ from django.test import (
TransactionTestCase,
skipUnlessDBFeature,
)
+from django.test.utils import ignore_warnings
+from django.utils.deprecation import RemovedInDjango60Warning
from django.utils.translation import gettext_lazy
from .models import (
@@ -187,6 +189,50 @@ class ModelInstanceCreationTests(TestCase):
with self.assertNumQueries(2):
ChildPrimaryKeyWithDefault().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):
+ a.save(False, False, None, None)
+ self.assertEqual(Article.objects.count(), 1)
+
+ 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):
+ await a.asave(False, False, None, None)
+ self.assertEqual(await Article.objects.acount(), 1)
+
+ @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):