diff options
| author | Salvo Polizzi <plzslv03a25c351k@studium.unict.it> | 2023-12-31 10:07:13 +0100 |
|---|---|---|
| committer | Mariusz Felisiak <felisiak.mariusz@gmail.com> | 2024-01-02 08:42:33 +0100 |
| commit | 3915d4c70d0d7673abe675525b58117a5099afd3 (patch) | |
| tree | 21f8f95cf8d816d91ed76d5f260c365a8551d17d /tests/basic/tests.py | |
| parent | e29d1870dd2b44f1b12c4ddf29b3fd24a903f7fd (diff) | |
Fixed #35060 -- Deprecated passing positional arguments to Model.save()/asave().
Diffstat (limited to 'tests/basic/tests.py')
| -rw-r--r-- | tests/basic/tests.py | 46 |
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): |
