1
0
mirror of https://github.com/django/django.git synced 2025-10-23 21:59:11 +00:00

Fixed #35060 -- Deprecated passing positional arguments to Model.save()/asave().

This commit is contained in:
Salvo Polizzi
2023-12-31 10:07:13 +01:00
committed by Mariusz Felisiak
parent e29d1870dd
commit 3915d4c70d
8 changed files with 142 additions and 30 deletions

View File

@@ -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):