mirror of
https://github.com/qdrant/qdrant-client.git
synced 2026-07-30 14:41:03 -05:00
* fix: handle tzinfo in HH format in local mode * fix: fix mypy * fix: replace dt split by trying adding minutes to tz (#540) * refactoring: remove redundant import
58 lines
2.4 KiB
Python
58 lines
2.4 KiB
Python
from datetime import datetime, timedelta, timezone
|
|
|
|
import pytest
|
|
|
|
from qdrant_client.local.datetime_utils import parse
|
|
|
|
|
|
@pytest.mark.parametrize( # type: ignore
|
|
"date_str, expected",
|
|
[
|
|
("2021-01-01T00:00:00", datetime(2021, 1, 1, 0, 0, 0, tzinfo=timezone.utc)),
|
|
("2021-01-01T00:00:00Z", datetime(2021, 1, 1, 0, 0, 0, tzinfo=timezone.utc)),
|
|
("2021-01-01T00:00:00+00:00", datetime(2021, 1, 1, 0, 0, 0, tzinfo=timezone.utc)),
|
|
("2021-01-01T00:00:00.000000", datetime(2021, 1, 1, 0, 0, 0, tzinfo=timezone.utc)),
|
|
("2021-01-01T00:00:00.000000Z", datetime(2021, 1, 1, 0, 0, 0, tzinfo=timezone.utc)),
|
|
(
|
|
"2021-01-01T00:00:00.000000+01:00",
|
|
datetime(2021, 1, 1, 0, 0, 0, tzinfo=timezone(timedelta(hours=1))),
|
|
),
|
|
(
|
|
"2021-01-01T00:00:00.000000-10:00",
|
|
datetime(2021, 1, 1, 0, 0, 0, tzinfo=timezone(timedelta(hours=-10))),
|
|
),
|
|
("2021-01-01", datetime(2021, 1, 1, 0, 0, 0, tzinfo=timezone.utc)),
|
|
("2021-01-01 00:00:00", datetime(2021, 1, 1, 0, 0, 0, tzinfo=timezone.utc)),
|
|
("2021-01-01 00:00:00Z", datetime(2021, 1, 1, 0, 0, 0, tzinfo=timezone.utc)),
|
|
(
|
|
"2021-01-01 00:00:00+0200",
|
|
datetime(2021, 1, 1, 0, 0, 0, tzinfo=timezone(timedelta(hours=2))),
|
|
),
|
|
("2021-01-01 00:00:00.000000", datetime(2021, 1, 1, 0, 0, 0, tzinfo=timezone.utc)),
|
|
("2021-01-01 00:00:00.000000Z", datetime(2021, 1, 1, 0, 0, 0, tzinfo=timezone.utc)),
|
|
(
|
|
"2021-01-01 00:00:00.000000+00:30",
|
|
datetime(2021, 1, 1, 0, 0, 0, tzinfo=timezone(timedelta(minutes=30))),
|
|
),
|
|
(
|
|
"2021-01-01 00:00:00.000009+00:30",
|
|
datetime(2021, 1, 1, 0, 0, 0, 9, tzinfo=timezone(timedelta(minutes=30))),
|
|
),
|
|
# this is accepted in core but not here, there is no specifier for only-hour offset
|
|
(
|
|
"2021-01-01 00:00:00.000+01",
|
|
datetime(2021, 1, 1, 0, 0, 0, tzinfo=timezone(timedelta(hours=1))),
|
|
),
|
|
(
|
|
"2021-01-01 00:00:00.000-10",
|
|
datetime(2021, 1, 1, 0, 0, 0, tzinfo=timezone(timedelta(hours=-10))),
|
|
),
|
|
(
|
|
"2021-01-01 00:00:00-03:00",
|
|
datetime(2021, 1, 1, 0, 0, 0, tzinfo=timezone(timedelta(hours=-3))),
|
|
),
|
|
],
|
|
)
|
|
def test_parse_dates(date_str: str, expected: datetime):
|
|
assert parse(date_str) == expected
|