From c72dde41e603093ab0bb12fa24fa69cfda0d35f9 Mon Sep 17 00:00:00 2001 From: Tim Graham Date: Thu, 26 Jul 2018 15:04:58 -0400 Subject: Fixed #29595 -- Allowed using timedelta in migrations questioner. Refs #29600 -- Removed usage of django.utils.datetime_safe in migrations. --- tests/migrations/test_questioner.py | 16 ++++++++++++++-- tests/migrations/test_writer.py | 15 --------------- 2 files changed, 14 insertions(+), 17 deletions(-) (limited to 'tests') diff --git a/tests/migrations/test_questioner.py b/tests/migrations/test_questioner.py index 45536410bb..e17dd04ab6 100644 --- a/tests/migrations/test_questioner.py +++ b/tests/migrations/test_questioner.py @@ -1,6 +1,11 @@ -from django.db.migrations.questioner import MigrationQuestioner +import datetime +from unittest import mock + +from django.db.migrations.questioner import ( + InteractiveMigrationQuestioner, MigrationQuestioner, +) from django.test import SimpleTestCase -from django.test.utils import override_settings +from django.test.utils import captured_stdout, override_settings class QuestionerTests(SimpleTestCase): @@ -11,3 +16,10 @@ class QuestionerTests(SimpleTestCase): def test_ask_initial_with_disabled_migrations(self): questioner = MigrationQuestioner() self.assertIs(False, questioner.ask_initial('migrations')) + + @mock.patch('builtins.input', return_value='datetime.timedelta(days=1)') + def test_timedelta_default(self, mock): + questioner = InteractiveMigrationQuestioner() + with captured_stdout(): + value = questioner._ask_default() + self.assertEqual(value, datetime.timedelta(days=1)) diff --git a/tests/migrations/test_writer.py b/tests/migrations/test_writer.py index 946306c325..c656f95666 100644 --- a/tests/migrations/test_writer.py +++ b/tests/migrations/test_writer.py @@ -19,7 +19,6 @@ from django.db.migrations.writer import ( MigrationWriter, OperationWriter, SettingsReference, ) from django.test import SimpleTestCase -from django.utils import datetime_safe from django.utils.deconstruct import deconstructible from django.utils.functional import SimpleLazyObject from django.utils.timezone import get_default_timezone, get_fixed_timezone, utc @@ -364,20 +363,6 @@ class WriterTests(SimpleTestCase): ) ) - def test_serialize_datetime_safe(self): - self.assertSerializedResultEqual( - datetime_safe.date(2014, 3, 31), - ("datetime.date(2014, 3, 31)", {'import datetime'}) - ) - self.assertSerializedResultEqual( - datetime_safe.time(10, 25), - ("datetime.time(10, 25)", {'import datetime'}) - ) - self.assertSerializedResultEqual( - datetime_safe.datetime(2014, 3, 31, 16, 4, 31), - ("datetime.datetime(2014, 3, 31, 16, 4, 31)", {'import datetime'}) - ) - def test_serialize_fields(self): self.assertSerializedFieldEqual(models.CharField(max_length=255)) self.assertSerializedResultEqual( -- cgit v1.3