Skip to content
Snippets Groups Projects
pydantic_utcdatetime_test.py 1.48 KiB
Newer Older
  • Learn to ignore specific revisions
  • 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
    
    
    
    class TimeClass(BaseModel):
    
        starttime: CustomUTCDateTimeType
    
    
    def test_UTCDateTime_string():
    
        t = TimeClass(starttime="2024-11-05T00:00:00.00Z")
    
    
        assert_equal(t.starttime, UTCDateTime(2024, 11, 5, 0, 0))
    
    
    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))
    
    
    def test_UTCDateTime_datetime():
    
        t = TimeClass(starttime=datetime.datetime(2024, 11, 5, tzinfo=tz.tzutc()))
    
    
        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))
    
    
    
        t = TimeClass(starttime=1730764800)
    
    
        assert_equal(t.starttime, UTCDateTime(2024, 11, 5, 0, 0))
    
    
            t = TimeClass(starttime="November 8th 2024 12:00pm")
    
        except Exception as e:
            err = e.errors()
            assert "Input should be an instance of UTCDateTime" == err[0]["msg"]
    
    Hobbs, Alexandra (Contractor)'s avatar
    Hobbs, Alexandra (Contractor) committed
            assert (
                "Value error, Invalid time type. See obspy UTCDateTime for more information."
                == err[1]["msg"]
            )