def test_running_state(): """Test serialization/deserialization of running states.""" s = state.StateRunning(created_at=util.to_datetime(CREATED_AT), started_at=util.to_datetime(STARTED_AT)) s = state.deserialize_state(state.serialize_state(s)) assert s.is_running() validate_date(s.created_at, util.to_datetime(CREATED_AT)) validate_date(s.started_at, util.to_datetime(STARTED_AT))
def test_datetime(): """Ensure that timestamp conversion works for ISO strings with or without milliseconds. """ dates = [ '2019-09-15T11:23:19.044133', '2019-09-15T11:23:19', '20190915T11:23:19' ] for ts in dates: dt = util.to_datetime(ts) assert dt.year == 2019 assert dt.month == 9 assert dt.day == 15 assert dt.hour == 11 assert dt.minute == 23 assert dt.second == 19
def test_error_state(): """Test serialization/deserialization of error states.""" s = state.StateError(created_at=util.to_datetime(CREATED_AT), started_at=util.to_datetime(STARTED_AT), stopped_at=util.to_datetime(FINISHED_AT), messages=['there', 'were', 'errors']) s = state.deserialize_state(state.serialize_state(s)) assert s.is_error() assert s.messages == ['there', 'were', 'errors'] validate_date(s.created_at, util.to_datetime(CREATED_AT)) validate_date(s.started_at, util.to_datetime(STARTED_AT)) validate_date(s.stopped_at, util.to_datetime(FINISHED_AT))
def test_success_state(tmpdir): """Test serialization/deserialization of success states.""" filename = os.path.join(str(tmpdir), 'results.json') util.write_object(filename=filename, obj={'A': 1}) s = state.StateSuccess(created_at=util.to_datetime(CREATED_AT), started_at=util.to_datetime(STARTED_AT), finished_at=util.to_datetime(FINISHED_AT), files=['myfile1', 'myfile2']) s = state.deserialize_state(state.serialize_state(s)) assert s.is_success() assert len(s.files) == 2 assert 'myfile1' in s.files assert 'myfile2' in s.files validate_date(s.created_at, util.to_datetime(CREATED_AT)) validate_date(s.started_at, util.to_datetime(STARTED_AT)) validate_date(s.finished_at, util.to_datetime(FINISHED_AT))
def test_pending_state(): """Test serialization/deserialization of pending states.""" s = state.StatePending(created_at=util.to_datetime(CREATED_AT)) s = state.deserialize_state(state.serialize_state(s)) assert s.is_pending() validate_date(s.created_at, util.to_datetime(CREATED_AT))