From 2f5ad22864b9eb79e981d105c4b80240f6d12431 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Felipe=20Sodr=C3=A9?= Date: Mon, 11 Dec 2023 15:43:30 -0300 Subject: [PATCH] possibilita occurrences receber datetime ou date nos parametros de data --- crossfire/clients/occurrences.py | 12 ++++++++---- tests/test_occurrences_client.py | 14 ++++++++++++++ 2 files changed, 22 insertions(+), 4 deletions(-) diff --git a/crossfire/clients/occurrences.py b/crossfire/clients/occurrences.py index 1c76c33..3a3dfa8 100644 --- a/crossfire/clients/occurrences.py +++ b/crossfire/clients/occurrences.py @@ -1,6 +1,6 @@ import re from asyncio import Semaphore, gather, sleep -from datetime import datetime +from datetime import date, datetime from urllib.parse import urlencode from httpx import ReadTimeout @@ -30,12 +30,16 @@ NOT_NUMBER = re.compile("\D") -def date_formatter(date): - date_cleaned = re.sub(NOT_NUMBER, "", date) +def date_formatter(date_parameter): + if isinstance(date_parameter, datetime): + return date_parameter.date() + elif isinstance(date_parameter, date): + return date_parameter + date_cleaned = re.sub(NOT_NUMBER, "", date_parameter) try: date_cleaned = datetime.strptime(date_cleaned, "%Y%m%d").date() except ValueError: - raise DateFormatError(date) + raise DateFormatError(date_parameter) return date_cleaned diff --git a/tests/test_occurrences_client.py b/tests/test_occurrences_client.py index 4f851ad..d6314f0 100644 --- a/tests/test_occurrences_client.py +++ b/tests/test_occurrences_client.py @@ -213,3 +213,17 @@ def test_date_formatter_with_correct_date_format_doted(): formated_date = date_formatter("2023.01.23") assert isinstance(formated_date, datetime.date) assert str(formated_date) == "2023-01-23" + + +def test_date_formatter_with_python_date_format(): + date = datetime.datetime(2023, 1, 23).date() + formated_date = date_formatter(date) + assert isinstance(formated_date, datetime.date) + assert str(formated_date) == "2023-01-23" + + +def test_date_formatter_with_python_datetime_format(): + date = datetime.datetime(2023, 1, 23) + formated_date = date_formatter(date) + assert isinstance(formated_date, datetime.date) + assert str(formated_date) == "2023-01-23"