import datetime as dt import pytest import pytz from conftest import patch_import with patch_import(): from utils.timestamp import Timestamp, TimestampError @pytest.mark.parametrize( "timestamp, expected_timestamp", ( ("1663160947", dt.datetime(2022, 9, 14, 13, 9, 7, tzinfo=pytz.utc)), ("-1663160947", dt.datetime(1917, 4, 19, 10, 50, 53, tzinfo=pytz.utc)), pytest.param("1663160947.123", None, marks=pytest.mark.xfail(raises=TimestampError)), pytest.param("123123123888888", None, marks=pytest.mark.xfail(raises=TimestampError)), pytest.param("-123123123888888", None, marks=pytest.mark.xfail(raises=TimestampError)), pytest.param("9999999999999999", None, marks=pytest.mark.xfail(raises=TimestampError)), pytest.param("foo", None, marks=pytest.mark.xfail(raises=TimestampError)), pytest.param("", None, marks=pytest.mark.xfail(raises=TimestampError)), ), ) def test_from_string(timestamp, expected_timestamp): t = Timestamp.from_string(timestamp) assert t._value == expected_timestamp