Skip to content

Commit 2e3d153

Browse files
committed
Add tests for to_datetime with invalid day day of month. issue #10154 Not all tests pass there are other issues.
1 parent 9d77ffe commit 2e3d153

File tree

1 file changed

+18
-1
lines changed

1 file changed

+18
-1
lines changed

pandas/tseries/tests/test_timeseries.py

+18-1
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@
1111

1212
from pandas import (Index, Series, TimeSeries, DataFrame,
1313
isnull, date_range, Timestamp, Period, DatetimeIndex,
14-
Int64Index, to_datetime, bdate_range, Float64Index, TimedeltaIndex)
14+
Int64Index, to_datetime, bdate_range, Float64Index, TimedeltaIndex, NaT)
1515

1616
import pandas.core.datetools as datetools
1717
import pandas.tseries.offsets as offsets
@@ -4461,6 +4461,23 @@ def test_second(self):
44614461
self.assertIsInstance(r2, Float64Index)
44624462
tm.assert_index_equal(r1, r2)
44634463

4464+
class TestDaysInMonth(tm.TestCase):
4465+
def test_day_not_in_month_coerce_true_NaT(self):
4466+
self.assertTrue(isnull(to_datetime('2015-02-29', coerce=True)))
4467+
self.assertTrue(isnull(to_datetime('2015-02-29', format="%Y-%m-%d", coerce=True)))
4468+
self.assertTrue(isnull(to_datetime('2015-02-32', format="%Y-%m-%d", coerce=True)))
4469+
self.assertTrue(isnull(to_datetime('2015-04-31', format="%Y-%m-%d", coerce=True)))
4470+
def test_day_not_in_month_coerce_false_raise(self):
4471+
self.assertRaises(ValueError, to_datetime, '2015-02-29', errors='raise', coerce=False)
4472+
self.assertRaises(ValueError, to_datetime, '2015-02-29', errors='raise', format="%Y-%m-%d", coerce=False)
4473+
self.assertRaises(ValueError, to_datetime, '2015-02-32', errors='raise', format="%Y-%m-%d", coerce=False)
4474+
self.assertRaises(ValueError, to_datetime, '2015-04-31', errors='raise', format="%Y-%m-%d", coerce=False)
4475+
def test_day_not_in_month_coerce_false_ignore(self):
4476+
self.assertRaises(ValueError, to_datetime, '2015-02-29', errors='ignore', coerce=False)
4477+
self.assertRaises(ValueError, to_datetime, '2015-02-29', errors='ignore', format="%Y-%m-%d", coerce=False)
4478+
self.assertRaises(ValueError, to_datetime, '2015-02-32', errors='ignore', format="%Y-%m-%d", coerce=False)
4479+
self.assertRaises(ValueError, to_datetime, '2015-04-31', errors='ignore', format="%Y-%m-%d", coerce=False)
4480+
44644481
if __name__ == '__main__':
44654482
nose.runmodule(argv=[__file__, '-vvs', '-x', '--pdb', '--pdb-failure'],
44664483
exit=False)

0 commit comments

Comments
 (0)