|
11 | 11 |
|
12 | 12 | from pandas import (Index, Series, TimeSeries, DataFrame,
|
13 | 13 | isnull, date_range, Timestamp, Period, DatetimeIndex,
|
14 |
| - Int64Index, to_datetime, bdate_range, Float64Index, TimedeltaIndex) |
| 14 | + Int64Index, to_datetime, bdate_range, Float64Index, TimedeltaIndex, NaT) |
15 | 15 |
|
16 | 16 | import pandas.core.datetools as datetools
|
17 | 17 | import pandas.tseries.offsets as offsets
|
@@ -4461,6 +4461,28 @@ def test_second(self):
|
4461 | 4461 | self.assertIsInstance(r2, Float64Index)
|
4462 | 4462 | tm.assert_index_equal(r1, r2)
|
4463 | 4463 |
|
| 4464 | +class TestDaysInMonth(tm.TestCase): |
| 4465 | + |
| 4466 | + # tests for issue #10154 |
| 4467 | + |
| 4468 | + def test_day_not_in_month_coerce_true_NaT(self): |
| 4469 | + self.assertTrue(isnull(to_datetime('2015-02-29', coerce=True))) |
| 4470 | + self.assertTrue(isnull(to_datetime('2015-02-29', format="%Y-%m-%d", coerce=True))) |
| 4471 | + self.assertTrue(isnull(to_datetime('2015-02-32', format="%Y-%m-%d", coerce=True))) |
| 4472 | + self.assertTrue(isnull(to_datetime('2015-04-31', format="%Y-%m-%d", coerce=True))) |
| 4473 | + |
| 4474 | + def test_day_not_in_month_coerce_false_raise(self): |
| 4475 | + self.assertRaises(ValueError, to_datetime, '2015-02-29', errors='raise', coerce=False) |
| 4476 | + self.assertRaises(ValueError, to_datetime, '2015-02-29', errors='raise', format="%Y-%m-%d", coerce=False) |
| 4477 | + self.assertRaises(ValueError, to_datetime, '2015-02-32', errors='raise', format="%Y-%m-%d", coerce=False) |
| 4478 | + self.assertRaises(ValueError, to_datetime, '2015-04-31', errors='raise', format="%Y-%m-%d", coerce=False) |
| 4479 | + |
| 4480 | + def test_day_not_in_month_coerce_false_ignore(self): |
| 4481 | + self.assertEqual(to_datetime('2015-02-29', errors='ignore', coerce=False), '2015-02-29') |
| 4482 | + self.assertRaises(ValueError, to_datetime, '2015-02-29', errors='ignore', format="%Y-%m-%d", coerce=False) |
| 4483 | + self.assertRaises(ValueError, to_datetime, '2015-02-32', errors='ignore', format="%Y-%m-%d", coerce=False) |
| 4484 | + self.assertRaises(ValueError, to_datetime, '2015-04-31', errors='ignore', format="%Y-%m-%d", coerce=False) |
| 4485 | + |
4464 | 4486 | if __name__ == '__main__':
|
4465 | 4487 | nose.runmodule(argv=[__file__, '-vvs', '-x', '--pdb', '--pdb-failure'],
|
4466 | 4488 | exit=False)
|
0 commit comments