Skip to content

Commit

Permalink
more tests
Browse files Browse the repository at this point in the history
  • Loading branch information
bdworth committed Jan 29, 2024
1 parent 9cfec0f commit 4b5f915
Showing 1 changed file with 27 additions and 13 deletions.
40 changes: 27 additions & 13 deletions tests/parsers/agilent_gen5/plate_number_test.py
Original file line number Diff line number Diff line change
@@ -1,34 +1,48 @@
from datetime import timedelta, timezone
from typing import Optional

import pytest

from allotropy.exceptions import AllotropeConversionError
from allotropy.parser_factory import get_parser, Vendor
from allotropy.parsers.agilent_gen5.plate_data import PlateNumber
from allotropy.parsers.utils.timestamp_parser import TimestampParser

TIMESTAMP_PARSER = get_parser(Vendor.AGILENT_GEN5).timestamp_parser
PARSER_UTC = get_parser(Vendor.AGILENT_GEN5).timestamp_parser
PARSER_UTC_MINUS_5 = get_parser(
Vendor.AGILENT_GEN5, timezone(timedelta(hours=-5))
).timestamp_parser


@pytest.mark.parametrize(
"date_,time_,expected",
"date_,time_,expected,timestamp_parser",
[
("1/2/2024", "10:48:38 AM", "2024-01-02T10:48:38+00:00"),
("1/31/2024", "10:48:38 AM", "2024-01-31T10:48:38+00:00"),
("2/1/2024", "10:48:38 AM", "2024-02-01T10:48:38+00:00"),
("1/31/2024", "10:48:38", "2024-01-31T10:48:38+00:00"),
("31/1/2024", "10:48:38", "2024-01-31T10:48:38+00:00"),
("2/1/2024", "10:48:38", "2024-02-01T10:48:38+00:00"),
("2/1/2024", "10:48:38 EST", "2024-02-01T10:48:38-05:00"),
("mydate", "mytime", None),
("1/2/2024", "10:48:38 AM", "2024-01-02T10:48:38+00:00", PARSER_UTC),
("1/31/2024", "10:48:38 AM", "2024-01-31T10:48:38+00:00", PARSER_UTC),
("2/1/2024", "10:48:38 AM", "2024-02-01T10:48:38+00:00", PARSER_UTC),
("1/31/2024", "10:48:38", "2024-01-31T10:48:38+00:00", PARSER_UTC),
("31/1/2024", "10:48:38", "2024-01-31T10:48:38+00:00", PARSER_UTC),
("2/1/2024", "10:48:38", "2024-02-01T10:48:38+00:00", PARSER_UTC),
("2/1/2024", "10:48:38 EST", "2024-02-01T10:48:38-05:00", PARSER_UTC),
("mydate", "mytime", None, PARSER_UTC),
("1/2/2024", "10:48:38 AM", "2024-01-02T10:48:38-05:00", PARSER_UTC_MINUS_5),
("1/31/2024", "10:48:38 AM", "2024-01-31T10:48:38-05:00", PARSER_UTC_MINUS_5),
("2/1/2024", "10:48:38 AM", "2024-02-01T10:48:38-05:00", PARSER_UTC_MINUS_5),
("1/31/2024", "10:48:38", "2024-01-31T10:48:38-05:00", PARSER_UTC_MINUS_5),
("31/1/2024", "10:48:38", "2024-01-31T10:48:38-05:00", PARSER_UTC_MINUS_5),
("2/1/2024", "10:48:38", "2024-02-01T10:48:38-05:00", PARSER_UTC_MINUS_5),
("2/1/2024", "10:48:38 EST", "2024-02-01T10:48:38-05:00", PARSER_UTC_MINUS_5),
("mydate", "mytime", None, PARSER_UTC),
("mydate", "mytime", None, PARSER_UTC_MINUS_5),
],
)
def test_plate_number_parse_datetime(
date_: str, time_: str, expected: Optional[str]
date_: str, time_: str, expected: Optional[str], timestamp_parser: TimestampParser
) -> None:
if expected:
datetime_ = PlateNumber._parse_datetime(date_, time_, TIMESTAMP_PARSER)
datetime_ = PlateNumber._parse_datetime(date_, time_, timestamp_parser)
assert datetime_ == expected
else:
expected_error_message = f"Could not parse time '{date_} {time_}'"
with pytest.raises(AllotropeConversionError, match=expected_error_message):
PlateNumber._parse_datetime(date_, time_, TIMESTAMP_PARSER)
PlateNumber._parse_datetime(date_, time_, PARSER_UTC)

0 comments on commit 4b5f915

Please sign in to comment.