mirror of
https://github.com/Hopiu/django-model-utils.git
synced 2026-05-25 10:13:43 +00:00
Rewrite test with subTest and remove parameterized from requirements-test.
This commit is contained in:
parent
f9fae60551
commit
22cbfb6aeb
2 changed files with 30 additions and 27 deletions
|
|
@ -2,4 +2,3 @@ pytest==6.0.2
|
||||||
pytest-django==3.10.0
|
pytest-django==3.10.0
|
||||||
psycopg2-binary==2.8.6
|
psycopg2-binary==2.8.6
|
||||||
pytest-cov==2.10.1
|
pytest-cov==2.10.1
|
||||||
parameterized==0.7.4
|
|
||||||
|
|
|
||||||
|
|
@ -2,7 +2,6 @@ from datetime import datetime, timedelta
|
||||||
|
|
||||||
from django.test import TestCase
|
from django.test import TestCase
|
||||||
from freezegun import freeze_time
|
from freezegun import freeze_time
|
||||||
from parameterized import parameterized
|
|
||||||
|
|
||||||
from tests.models import TimeStamp, TimeStampWithStatusModel
|
from tests.models import TimeStamp, TimeStampWithStatusModel
|
||||||
|
|
||||||
|
|
@ -91,41 +90,46 @@ class TimeStampedModelTests(TestCase):
|
||||||
self.assertNotEqual(t1.modified, different_date2)
|
self.assertNotEqual(t1.modified, different_date2)
|
||||||
self.assertNotEqual(t1.modified, different_date)
|
self.assertNotEqual(t1.modified, different_date)
|
||||||
|
|
||||||
@parameterized.expand([
|
def test_save_with_update_fields_overrides_modified_provided_within_a(self):
|
||||||
('list', ['modified']),
|
|
||||||
('tuple', ('modified',)),
|
|
||||||
('set', {'modified'}),
|
|
||||||
])
|
|
||||||
def test_save_with_update_fields_overrides_modified_provided_within_a(self, _, update_fields):
|
|
||||||
"""
|
"""
|
||||||
Tests if the save method updated modified field
|
Tests if the save method updated modified field
|
||||||
accordingly when update_fields is used as an argument
|
accordingly when update_fields is used as an argument
|
||||||
and modified is provided
|
and modified is provided
|
||||||
"""
|
"""
|
||||||
with freeze_time(datetime(2020, 1, 1)):
|
tests = (
|
||||||
t1 = TimeStamp.objects.create()
|
['modified'], # list
|
||||||
|
('modified',), # tuple
|
||||||
|
{'modified'}, # set
|
||||||
|
)
|
||||||
|
|
||||||
with freeze_time(datetime(2020, 1, 2)):
|
for update_fields in tests:
|
||||||
t1.save(update_fields=update_fields)
|
with self.subTest(update_fields=update_fields):
|
||||||
|
with freeze_time(datetime(2020, 1, 1)):
|
||||||
|
t1 = TimeStamp.objects.create()
|
||||||
|
|
||||||
self.assertEqual(t1.modified, datetime(2020, 1, 2))
|
with freeze_time(datetime(2020, 1, 2)):
|
||||||
|
t1.save(update_fields=update_fields)
|
||||||
|
self.assertEqual(t1.modified, datetime(2020, 1, 2))
|
||||||
|
|
||||||
@parameterized.expand([
|
def test_save_is_skipped_for_empty_update_fields_iterable(self):
|
||||||
('list', []),
|
tests = (
|
||||||
('tuple', ()),
|
[], # list
|
||||||
('set', set()),
|
(), # tuple
|
||||||
])
|
set(), # set
|
||||||
def test_save_is_skipped_for_empty_update_fields_iterable(self, _, update_fields):
|
)
|
||||||
with freeze_time(datetime(2020, 1, 1)):
|
|
||||||
t1 = TimeStamp.objects.create()
|
|
||||||
|
|
||||||
with freeze_time(datetime(2020, 1, 2)):
|
for update_fields in tests:
|
||||||
t1.test_field = 1
|
with self.subTest(update_fields=update_fields):
|
||||||
t1.save(update_fields=update_fields)
|
with freeze_time(datetime(2020, 1, 1)):
|
||||||
|
t1 = TimeStamp.objects.create()
|
||||||
|
|
||||||
t1.refresh_from_db()
|
with freeze_time(datetime(2020, 1, 2)):
|
||||||
self.assertEqual(t1.test_field, 0)
|
t1.test_field = 1
|
||||||
self.assertEqual(t1.modified, datetime(2020, 1, 1))
|
t1.save(update_fields=update_fields)
|
||||||
|
|
||||||
|
t1.refresh_from_db()
|
||||||
|
self.assertEqual(t1.test_field, 0)
|
||||||
|
self.assertEqual(t1.modified, datetime(2020, 1, 1))
|
||||||
|
|
||||||
def test_save_updates_modified_value_when_update_fields_explicitly_set_to_none(self):
|
def test_save_updates_modified_value_when_update_fields_explicitly_set_to_none(self):
|
||||||
with freeze_time(datetime(2020, 1, 1)):
|
with freeze_time(datetime(2020, 1, 1)):
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue