diff --git a/planet/data_filter.py b/planet/data_filter.py index 86db69a0..6bc44862 100644 --- a/planet/data_filter.py +++ b/planet/data_filter.py @@ -149,7 +149,7 @@ def date_range_filter(field_name: str, def _datetime_to_rfc3339(value: datetime) -> str: """Converts the datetime to an RFC3339 string""" iso = value.isoformat() - if not value.utcoffset(): + if value.utcoffset() is None: # rfc3339 needs a Z if there is no timezone offset iso += 'Z' return iso diff --git a/planet/subscription_request.py b/planet/subscription_request.py index e6c179d0..574a4edc 100644 --- a/planet/subscription_request.py +++ b/planet/subscription_request.py @@ -358,7 +358,7 @@ def planetary_variable_source( def _datetime_to_rfc3339(value: datetime) -> str: """Converts the datetime to an RFC3339 string""" iso = value.isoformat() - if not value.utcoffset(): + if value.utcoffset() is None: # rfc3339 needs a Z if there is no timezone offset iso += 'Z' return iso diff --git a/tests/unit/test_data_filter.py b/tests/unit/test_data_filter.py index 4e173a21..e782dc00 100644 --- a/tests/unit/test_data_filter.py +++ b/tests/unit/test_data_filter.py @@ -12,7 +12,7 @@ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. -from datetime import datetime, timedelta, tzinfo +from datetime import datetime, timedelta, timezone import logging import pytest @@ -98,24 +98,16 @@ def _test_callback(x): # pragma: no cover callback=_test_callback) -class TZTest(tzinfo): - - def __init__(self, offset=None): - self.offset = offset - super().__init__() - - def utcoffset(self, dt): - return timedelta(hours=self.offset) if self.offset else None - - @pytest.mark.parametrize( "dtime,expected", [(datetime(2022, 5, 1, 1, 0, 0, 1), '2022-05-01T01:00:00.000001Z'), (datetime(2022, 5, 1, 1, 0, 1), '2022-05-01T01:00:01Z'), (datetime(2022, 6, 1, 1, 1), '2022-06-01T01:01:00Z'), (datetime(2022, 6, 1, 1), '2022-06-01T01:00:00Z'), - (datetime(2022, 6, 1, 1, tzinfo=TZTest(0)), '2022-06-01T01:00:00Z'), - (datetime(2022, 6, 1, 1, tzinfo=TZTest(1)), '2022-06-01T01:00:00+01:00')]) + (datetime(2022, 6, 1, 1, tzinfo=timezone(timedelta(hours=1))), + '2022-06-01T01:00:00+01:00'), + (datetime(2022, 6, 1, 1, tzinfo=timezone(timedelta(0))), + '2022-06-01T01:00:00+00:00')]) def test__datetime_to_rfc3339_basic(dtime, expected): assert data_filter._datetime_to_rfc3339(dtime) == expected