diff --git a/tests/test_recipe_overflow.py b/tests/test_recipe_overflow.py new file mode 100644 index 0000000..0d920eb --- /dev/null +++ b/tests/test_recipe_overflow.py @@ -0,0 +1,24 @@ +import pytest + +from sqlite_utils import recipes + + +OVERFLOWING_DATE = "999999999999999999999999999999-01-01" + + +@pytest.mark.parametrize("fn", ("parsedate", "parsedatetime")) +def test_dateparse_overflow_raises_by_default(fn): + with pytest.raises(OverflowError): + getattr(recipes, fn)(OVERFLOWING_DATE) + + +@pytest.mark.parametrize("fn", ("parsedate", "parsedatetime")) +@pytest.mark.parametrize( + "errors,expected", + ( + (recipes.IGNORE, OVERFLOWING_DATE), + (recipes.SET_NULL, None), + ), +) +def test_dateparse_overflow_respects_errors(fn, errors, expected): + assert getattr(recipes, fn)(OVERFLOWING_DATE, errors=errors) == expected