mirror of
				https://github.com/django/django.git
				synced 2025-10-31 09:41:08 +00:00 
			
		
		
		
	Dropped the needs_datetime_string_cast feature.
It has been superseded by the converter infrastructure.
This commit is contained in:
		| @@ -7,9 +7,6 @@ class BaseDatabaseFeatures(object): | ||||
|     gis_enabled = False | ||||
|     allows_group_by_pk = False | ||||
|     allows_group_by_selected_pks = False | ||||
|     # True if django.db.backends.utils.typecast_timestamp is used on values | ||||
|     # returned from dates() calls. | ||||
|     needs_datetime_string_cast = True | ||||
|     empty_fetchmany_value = [] | ||||
|     update_can_self_select = True | ||||
|  | ||||
|   | ||||
| @@ -9,7 +9,6 @@ except ImportError: | ||||
|  | ||||
| class DatabaseFeatures(BaseDatabaseFeatures): | ||||
|     empty_fetchmany_value = () | ||||
|     needs_datetime_string_cast = False | ||||
|     interprets_empty_strings_as_nulls = True | ||||
|     uses_savepoints = True | ||||
|     has_select_for_update = True | ||||
|   | ||||
| @@ -4,7 +4,6 @@ from django.db.utils import InterfaceError | ||||
|  | ||||
| class DatabaseFeatures(BaseDatabaseFeatures): | ||||
|     allows_group_by_selected_pks = True | ||||
|     needs_datetime_string_cast = False | ||||
|     can_return_id_from_insert = True | ||||
|     has_real_datatype = True | ||||
|     has_native_uuid_field = True | ||||
|   | ||||
| @@ -326,6 +326,8 @@ Database backend API | ||||
|   fetched from the database is to register a converter for ``DateTimeField`` | ||||
|   in ``DatabaseOperations.get_db_converters()``. | ||||
|  | ||||
|   The ``needs_datetime_string_cast`` database feature was removed. Database | ||||
|   backends that set it must register a converter instead, as explained above. | ||||
|  | ||||
| * The ``DatabaseOperations.value_to_db_<type>()`` methods were renamed to | ||||
|   ``adapt_<type>field_value()`` to mirror the ``convert_<type>field_value()`` | ||||
|   | ||||
| @@ -106,7 +106,6 @@ class LegacyDatabaseTests(TestCase): | ||||
|         self.assertEqual(event.dt.replace(tzinfo=EAT), dt.replace(microsecond=0)) | ||||
|  | ||||
|     @skipUnlessDBFeature('supports_timezones') | ||||
|     @skipIfDBFeature('needs_datetime_string_cast') | ||||
|     def test_aware_datetime_in_utc(self): | ||||
|         dt = datetime.datetime(2011, 9, 1, 10, 20, 30, tzinfo=UTC) | ||||
|         Event.objects.create(dt=dt) | ||||
| @@ -115,24 +114,7 @@ class LegacyDatabaseTests(TestCase): | ||||
|         # interpret the naive datetime in local time to get the correct value | ||||
|         self.assertEqual(event.dt.replace(tzinfo=EAT), dt) | ||||
|  | ||||
|     # This combination is no longer possible since timezone support | ||||
|     # was removed from the SQLite backend -- it didn't work. | ||||
|     @skipUnlessDBFeature('supports_timezones') | ||||
|     @skipUnlessDBFeature('needs_datetime_string_cast') | ||||
|     def test_aware_datetime_in_utc_unsupported(self): | ||||
|         dt = datetime.datetime(2011, 9, 1, 10, 20, 30, tzinfo=UTC) | ||||
|         Event.objects.create(dt=dt) | ||||
|         event = Event.objects.get() | ||||
|         self.assertIsNone(event.dt.tzinfo) | ||||
|         # django.db.backends.utils.typecast_dt will just drop the | ||||
|         # timezone, so a round-trip in the database alters the data (!) | ||||
|         # interpret the naive datetime in local time and you get a wrong value | ||||
|         self.assertNotEqual(event.dt.replace(tzinfo=EAT), dt) | ||||
|         # interpret the naive datetime in original time to get the correct value | ||||
|         self.assertEqual(event.dt.replace(tzinfo=UTC), dt) | ||||
|  | ||||
|     @skipUnlessDBFeature('supports_timezones') | ||||
|     @skipIfDBFeature('needs_datetime_string_cast') | ||||
|     def test_aware_datetime_in_other_timezone(self): | ||||
|         dt = datetime.datetime(2011, 9, 1, 17, 20, 30, tzinfo=ICT) | ||||
|         Event.objects.create(dt=dt) | ||||
| @@ -141,22 +123,6 @@ class LegacyDatabaseTests(TestCase): | ||||
|         # interpret the naive datetime in local time to get the correct value | ||||
|         self.assertEqual(event.dt.replace(tzinfo=EAT), dt) | ||||
|  | ||||
|     # This combination is no longer possible since timezone support | ||||
|     # was removed from the SQLite backend -- it didn't work. | ||||
|     @skipUnlessDBFeature('supports_timezones') | ||||
|     @skipUnlessDBFeature('needs_datetime_string_cast') | ||||
|     def test_aware_datetime_in_other_timezone_unsupported(self): | ||||
|         dt = datetime.datetime(2011, 9, 1, 17, 20, 30, tzinfo=ICT) | ||||
|         Event.objects.create(dt=dt) | ||||
|         event = Event.objects.get() | ||||
|         self.assertIsNone(event.dt.tzinfo) | ||||
|         # django.db.backends.utils.typecast_dt will just drop the | ||||
|         # timezone, so a round-trip in the database alters the data (!) | ||||
|         # interpret the naive datetime in local time and you get a wrong value | ||||
|         self.assertNotEqual(event.dt.replace(tzinfo=EAT), dt) | ||||
|         # interpret the naive datetime in original time to get the correct value | ||||
|         self.assertEqual(event.dt.replace(tzinfo=ICT), dt) | ||||
|  | ||||
|     @skipIfDBFeature('supports_timezones') | ||||
|     def test_aware_datetime_unspported(self): | ||||
|         dt = datetime.datetime(2011, 9, 1, 13, 20, 30, tzinfo=EAT) | ||||
|   | ||||
		Reference in New Issue
	
	Block a user