def test_datetime_str_with_Z(input_: str, dt_formats: Optional[Sequence[str]],
                             expected: Optional[str]):
    try:
        result = parse(input_, formats=list(dt_formats))
        result = result.tsformat()
    except DatetimeParserError:
        result = None
    assert result == expected
def test_convert_to_iso_with_fold(input_: str, fold: Optional[int],
                                  expected: Optional[str]):
    config = DatetimeConfig(fold=fold, day_first=False)
    try:
        result = parse(input_, config=config)
        result = result.tsformat()
    except DatetimeParserError:
        result = None
    assert result == expected
def test_convert_to_ts_format_for_padding(
    input_: str,
    year_first: Optional[bool],
    day_first: Optional[bool],
    expected: Optional[str],
):
    config = DatetimeConfig(year_first=year_first, day_first=day_first)
    try:
        result = parse(input_, config=config)
        result = result.tsformat()
    except DatetimeParserError:
        result = None
    assert result == expected
def test_parse(input_: str, expected: Optional[str]):
    datetime_config_dict = {"tz_dict": tz_dict}

    datetime_config = DatetimeConfig(**datetime_config_dict)
    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, expected: Optional[str]):
    datetime_config_dict = {"tz_dict": tz_dict}

    datetime_config = DatetimeConfig(**datetime_config_dict)
    try:
        parsed_datetime = parse(
            input_,
            formats,
            datetime_config,
        )
    except DatetimeParserError:
        parsed_datetime = None

    if parsed_datetime is None:
        assert parsed_datetime == expected
    else:
        assert parsed_datetime.isoformat() == expected
def test_empty_formats():
    datetime_str = "02/23/2001 04:05:06 AM"
    parse(datetime_str, formats=empty_formats)