mirror of
				https://github.com/encode/django-rest-framework.git
				synced 2025-11-01 00:17:40 +03:00 
			
		
		
		
	remove pytz
This commit is contained in:
		
							parent
							
								
									001d6ec2c9
								
							
						
					
					
						commit
						393609dfaa
					
				|  | @ -29,7 +29,6 @@ from django.utils.encoding import is_protected_type, smart_str | ||||||
| from django.utils.formats import localize_input, sanitize_separators | from django.utils.formats import localize_input, sanitize_separators | ||||||
| from django.utils.ipv6 import clean_ipv6_address | from django.utils.ipv6 import clean_ipv6_address | ||||||
| from django.utils.translation import gettext_lazy as _ | from django.utils.translation import gettext_lazy as _ | ||||||
| from pytz.exceptions import InvalidTimeError |  | ||||||
| 
 | 
 | ||||||
| from rest_framework import ISO_8601 | from rest_framework import ISO_8601 | ||||||
| from rest_framework.exceptions import ErrorDetail, ValidationError | from rest_framework.exceptions import ErrorDetail, ValidationError | ||||||
|  | @ -1162,15 +1161,12 @@ class DateTimeField(Field): | ||||||
|                     return value.astimezone(field_timezone) |                     return value.astimezone(field_timezone) | ||||||
|                 except OverflowError: |                 except OverflowError: | ||||||
|                     self.fail('overflow') |                     self.fail('overflow') | ||||||
|             try: |  | ||||||
|             dt = timezone.make_aware(value, field_timezone) |             dt = timezone.make_aware(value, field_timezone) | ||||||
|             # When the resulting datetime is a ZoneInfo instance, it won't necessarily |             # When the resulting datetime is a ZoneInfo instance, it won't necessarily | ||||||
|             # throw given an invalid datetime, so we need to specifically check. |             # throw given an invalid datetime, so we need to specifically check. | ||||||
|             if not valid_datetime(dt): |             if not valid_datetime(dt): | ||||||
|                 self.fail('make_aware', timezone=field_timezone) |                 self.fail('make_aware', timezone=field_timezone) | ||||||
|             return dt |             return dt | ||||||
|             except InvalidTimeError: |  | ||||||
|                 self.fail('make_aware', timezone=field_timezone) |  | ||||||
|         elif (field_timezone is None) and timezone.is_aware(value): |         elif (field_timezone is None) and timezone.is_aware(value): | ||||||
|             return timezone.make_naive(value, datetime.timezone.utc) |             return timezone.make_naive(value, datetime.timezone.utc) | ||||||
|         return value |         return value | ||||||
|  |  | ||||||
							
								
								
									
										2
									
								
								setup.py
									
									
									
									
									
								
							
							
						
						
									
										2
									
								
								setup.py
									
									
									
									
									
								
							|  | @ -83,7 +83,7 @@ setup( | ||||||
|     author_email='tom@tomchristie.com',  # SEE NOTE BELOW (*) |     author_email='tom@tomchristie.com',  # SEE NOTE BELOW (*) | ||||||
|     packages=find_packages(exclude=['tests*']), |     packages=find_packages(exclude=['tests*']), | ||||||
|     include_package_data=True, |     include_package_data=True, | ||||||
|     install_requires=["django>=3.0", "pytz", 'backports.zoneinfo;python_version<"3.9"'], |     install_requires=["django>=3.0", 'backports.zoneinfo;python_version<"3.9"'], | ||||||
|     python_requires=">=3.6", |     python_requires=">=3.6", | ||||||
|     zip_safe=False, |     zip_safe=False, | ||||||
|     classifiers=[ |     classifiers=[ | ||||||
|  |  | ||||||
|  | @ -9,7 +9,6 @@ from enum import auto | ||||||
| from unittest.mock import patch | from unittest.mock import patch | ||||||
| 
 | 
 | ||||||
| import pytest | import pytest | ||||||
| import pytz |  | ||||||
| from django.core.exceptions import ValidationError as DjangoValidationError | from django.core.exceptions import ValidationError as DjangoValidationError | ||||||
| from django.db.models import IntegerChoices, TextChoices | from django.db.models import IntegerChoices, TextChoices | ||||||
| from django.http import QueryDict | from django.http import QueryDict | ||||||
|  | @ -1590,31 +1589,6 @@ class TestCustomTimezoneForDateTimeField(TestCase): | ||||||
|         assert rendered_date == rendered_date_in_timezone |         assert rendered_date == rendered_date_in_timezone | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
| @pytest.mark.skipif(pytz is None, reason="As Django 4.0 has deprecated pytz, this test should eventually be able to get removed.") |  | ||||||
| class TestPytzNaiveDayLightSavingTimeTimeZoneDateTimeField(FieldValues): |  | ||||||
|     """ |  | ||||||
|     Invalid values for `DateTimeField` with datetime in DST shift (non-existing or ambiguous) and timezone with DST. |  | ||||||
|     Timezone America/New_York has DST shift from 2017-03-12T02:00:00 to 2017-03-12T03:00:00 and |  | ||||||
|      from 2017-11-05T02:00:00 to 2017-11-05T01:00:00 in 2017. |  | ||||||
|     """ |  | ||||||
|     valid_inputs = {} |  | ||||||
|     invalid_inputs = { |  | ||||||
|         '2017-03-12T02:30:00': ['Invalid datetime for the timezone "America/New_York".'], |  | ||||||
|         '2017-11-05T01:30:00': ['Invalid datetime for the timezone "America/New_York".'] |  | ||||||
|     } |  | ||||||
|     outputs = {} |  | ||||||
| 
 |  | ||||||
|     class MockTimezone(pytz.BaseTzInfo): |  | ||||||
|         @staticmethod |  | ||||||
|         def localize(value, is_dst): |  | ||||||
|             raise pytz.InvalidTimeError() |  | ||||||
| 
 |  | ||||||
|         def __str__(self): |  | ||||||
|             return 'America/New_York' |  | ||||||
| 
 |  | ||||||
|     field = serializers.DateTimeField(default_timezone=MockTimezone()) |  | ||||||
| 
 |  | ||||||
| 
 |  | ||||||
| @patch('rest_framework.utils.timezone.datetime_ambiguous', return_value=True) | @patch('rest_framework.utils.timezone.datetime_ambiguous', return_value=True) | ||||||
| class TestNaiveDayLightSavingTimeTimeZoneDateTimeField(FieldValues): | class TestNaiveDayLightSavingTimeTimeZoneDateTimeField(FieldValues): | ||||||
|     """ |     """ | ||||||
|  |  | ||||||
		Loading…
	
		Reference in New Issue
	
	Block a user