def _parse_value(v: str) -> Union[str, int, datetime.date]: if len(v) >= 2 and v.startswith("'") and v.endswith("'"): return v[1:-1] try: return parse_iso_date(v) except ValueError: pass return int(v)
def parse_value(self, v: str) -> datetime.date: return parse_iso_date(v)
def test_empty(self) -> None: with assert_raises_regex(ValueError, "invalid date ''"): parse_iso_date("")
def test_out_of_range(self) -> None: with assert_raises_regex(ValueError, "invalid date '20151304'"): parse_iso_date("20151304")
def test_without_dashes(self) -> None: date = parse_iso_date("20150413") assert_equal(datetime.date(2015, 4, 13), date)
def test_invalid(self) -> None: with assert_raises_regex(ValueError, "invalid date 'INVALID'"): parse_iso_date("INVALID")