Newer
Older
Hobbs, Alexandra (Contractor)
committed
import datetime
from dateutil import tz
from pydantic import BaseModel
from obspy import UTCDateTime
from numpy.testing import assert_equal
from geomagio.pydantic_utcdatetime import CustomUTCDateTimeType
Hobbs, Alexandra (Contractor)
committed
starttime: CustomUTCDateTimeType
def test_UTCDateTime_string():
t = TimeClass(starttime="2024-11-05T00:00:00.00Z")
Hobbs, Alexandra (Contractor)
committed
assert_equal(t.starttime, UTCDateTime(2024, 11, 5, 0, 0))
Hobbs, Alexandra (Contractor)
committed
def test_UTCDateTime_ISO860_string():
# `ISO8601:2004`_ string from obspy docs
t = TimeClass(starttime="2024-11-05T00:00:00.00")
assert_equal(t.starttime, UTCDateTime(2024, 11, 5, 0, 0))
Hobbs, Alexandra (Contractor)
committed
def test_UTCDateTime_datetime():
t = TimeClass(starttime=datetime.datetime(2024, 11, 5, tzinfo=tz.tzutc()))
Hobbs, Alexandra (Contractor)
committed
assert_equal(t.starttime, UTCDateTime(2024, 11, 5, 0, 0))
def test_UTCDateTime_datetime_unaware():
t = TimeClass(starttime=datetime.datetime(2024, 11, 5))
assert_equal(t.starttime, UTCDateTime(2024, 11, 5, 0, 0))
Hobbs, Alexandra (Contractor)
committed
def test_UTCDateTime_unix_timestamp():
Hobbs, Alexandra (Contractor)
committed
assert_equal(t.starttime, UTCDateTime(2024, 11, 5, 0, 0))
Hobbs, Alexandra (Contractor)
committed
def test_invalid():
t = None
try:
t = TimeClass(starttime="November 8th 2024 12:00pm")
Hobbs, Alexandra (Contractor)
committed
except Exception as e:
err = e.errors()
assert "Input should be an instance of UTCDateTime" == err[0]["msg"]
assert (
"Value error, Invalid time type. See obspy UTCDateTime for more information."
== err[1]["msg"]
)
Hobbs, Alexandra (Contractor)
committed
assert_equal(t, None)