def test_require_unambiguous_formats_with_ambiguous_formats(): datetime_str = ambiguous_datetime.format(ambiguous_formats[0]) datetime_config = DatetimeConfig(require_unambiguous_formats=True) with pytest.raises(AmbiguousDatetimeFormatsError): parse_with_formats(datetime_str, formats=ambiguous_formats, config=datetime_config)
def test_forgiving_require_unambiguous_formats_with_ambiguous_formats(): datetime_str = forgiving_ambiguous_datetime.format(ambiguous_formats[0]) datetime_config = DatetimeConfig(require_unambiguous_formats=True) parsed_datetime = parse_with_formats(datetime_str, formats=ambiguous_formats, config=datetime_config) assert parsed_datetime._datetime.ctime( ) == forgiving_ambiguous_datetime.ctime()
def test_require_unambiguous_formats_with_ambiguous_formats_with_zz(): datetime_str = ambiguous_datetime.format(ambiguous_formats_with_zz[0]) datetime_config = DatetimeConfig(require_unambiguous_formats=True, tz_dict={"UTC": "+00:00"}) with pytest.raises(AmbiguousDatetimeFormatsError): parse_with_formats( datetime_str, formats=ambiguous_formats_with_zz, config=datetime_config, )
def test_require_unambiguous_formats_with_unambiguous_formats(): datetime_str = "Saturday, February 3rd 2001 04:05:06 AM UTC" expected = "2001-02-03T04:05:06Z" datetime_config = DatetimeConfig(require_unambiguous_formats=True) result = parse_with_formats(datetime_str, formats=unambiguous_formats, config=datetime_config) assert expected == result.tsformat() if datetime_config.require_unambiguous_formats: parse_with_formats(datetime_str, formats=unambiguous_formats) else: assert False
def test_parse( input_: str, year_first: Optional[bool], day_first: Optional[bool], expected: Optional[str], ): datetime_config = DatetimeConfig(year_first=year_first, day_first=day_first) try: parsed_datetime = parse( datetime_raw_str=input_, config=datetime_config, ) parsed_datetime = parsed_datetime.isoformat() except DatetimeParserError: parsed_datetime = None assert parsed_datetime == expected
def test_parse_with_formats( input_: str, formats: Optional[Sequence[str]], expected: Optional[str], raises_error: bool, ): datetime_config = DatetimeConfig() if raises_error: with pytest.raises(DatetimeParserError): parsed_datetime = parse_with_formats( datetime_raw_str=input_, formats=formats, config=datetime_config, ) else: parsed_datetime = parse_with_formats( datetime_raw_str=input_, formats=formats, config=datetime_config, ) assert parsed_datetime.isoformat() == expected