Skip to content

Commit ee6fbde

Browse files
committed
catch warnings
1 parent e6557c7 commit ee6fbde

File tree

1 file changed

+33
-6
lines changed

1 file changed

+33
-6
lines changed

pandas/tests/io/parser/test_parse_dates.py

Lines changed: 33 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@
88
datetime,
99
)
1010
from io import StringIO
11+
import warnings
1112

1213
from dateutil.parser import parse as du_parse
1314
from hypothesis import (
@@ -1556,16 +1557,16 @@ def test_invalid_parse_delimited_date(all_parsers, date_string):
15561557
"date_string,dayfirst,expected",
15571558
[
15581559
# %d/%m/%Y; month > 12 thus replacement
1559-
("13/02/2019", False, datetime(2019, 2, 13)),
15601560
("13/02/2019", True, datetime(2019, 2, 13)),
15611561
# %m/%d/%Y; day > 12 thus there will be no replacement
15621562
("02/13/2019", False, datetime(2019, 2, 13)),
1563-
("02/13/2019", True, datetime(2019, 2, 13)),
15641563
# %d/%m/%Y; dayfirst==True thus replacement
15651564
("04/02/2019", True, datetime(2019, 2, 4)),
15661565
],
15671566
)
1568-
def test_parse_delimited_date_swap(all_parsers, date_string, dayfirst, expected):
1567+
def test_parse_delimited_date_swap_no_warning(
1568+
all_parsers, date_string, dayfirst, expected
1569+
):
15691570
parser = all_parsers
15701571
expected = DataFrame({0: [expected]}, dtype="datetime64[ns]")
15711572
result = parser.read_csv(
@@ -1574,6 +1575,30 @@ def test_parse_delimited_date_swap(all_parsers, date_string, dayfirst, expected)
15741575
tm.assert_frame_equal(result, expected)
15751576

15761577

1578+
@pytest.mark.parametrize(
1579+
"date_string,dayfirst,expected",
1580+
[
1581+
# %d/%m/%Y; month > 12 thus replacement
1582+
("13/02/2019", False, datetime(2019, 2, 13)),
1583+
# %m/%d/%Y; day > 12 thus there will be no replacement
1584+
("02/13/2019", True, datetime(2019, 2, 13)),
1585+
],
1586+
)
1587+
def test_parse_delimited_date_swap_with_warning(
1588+
all_parsers, date_string, dayfirst, expected
1589+
):
1590+
parser = all_parsers
1591+
expected = DataFrame({0: [expected]}, dtype="datetime64[ns]")
1592+
warning_msg = (
1593+
"Provide format or specify infer_datetime_format=True for consistent parsing"
1594+
)
1595+
with tm.assert_produces_warning(UserWarning, match=warning_msg):
1596+
result = parser.read_csv(
1597+
StringIO(date_string), header=None, dayfirst=dayfirst, parse_dates=[0]
1598+
)
1599+
tm.assert_frame_equal(result, expected)
1600+
1601+
15771602
def _helper_hypothesis_delimited_date(call, date_string, **kwargs):
15781603
msg, result = None, None
15791604
try:
@@ -1602,9 +1627,11 @@ def test_hypothesis_delimited_date(date_format, dayfirst, delimiter, test_dateti
16021627
except_in_dateutil, except_out_dateutil = None, None
16031628
date_string = test_datetime.strftime(date_format.replace(" ", delimiter))
16041629

1605-
except_out_dateutil, result = _helper_hypothesis_delimited_date(
1606-
parse_datetime_string, date_string, dayfirst=dayfirst
1607-
)
1630+
with warnings.catch_warnings():
1631+
warnings.filterwarnings("ignore", category=UserWarning)
1632+
except_out_dateutil, result = _helper_hypothesis_delimited_date(
1633+
parse_datetime_string, date_string, dayfirst=dayfirst
1634+
)
16081635
except_in_dateutil, expected = _helper_hypothesis_delimited_date(
16091636
du_parse,
16101637
date_string,

0 commit comments

Comments
 (0)