def test_write(self): # Without GTI self.events.write("test.fits", overwrite=True) read_again = EventList.read("test.fits") # the meta dictionaries match because the input one # already has the EXTNAME keyword assert self.events.table.meta == read_again.table.meta assert (self.events.table == read_again.table).all() dummy_events = EventList(Table()) dummy_events.write("test.fits", overwrite=True) read_again = EventList.read("test.fits") assert read_again.table.meta['EXTNAME'] == "EVENTS" assert read_again.table.meta['HDUCLASS'] == "GADF" assert read_again.table.meta['HDUCLAS1'] == "EVENTS" # With GTI gti = GTI.read( "$GAMMAPY_DATA/hess-dl3-dr1/data/hess_dl3_dr1_obs_id_020136.fits.gz" ) self.events.write("test.fits", overwrite=True, gti=gti) read_again_ev = EventList.read("test.fits") read_again_gti = GTI.read("test.fits") assert self.events.table.meta == read_again_ev.table.meta assert (self.events.table == read_again_ev.table).all() assert gti.table.meta == read_again_gti.table.meta assert (gti.table == read_again_gti.table).all() # test that it won't work if gti is not a GTI with pytest.raises(TypeError): self.events.write("test.fits", overwrite=True, gti=gti.table) # test that it won't work if format is not "gadf" with pytest.raises(ValueError): self.events.write("test.fits", overwrite=True, format='something') # test that it won't work if the basic headers are wrong with pytest.raises(ValueError): dummy_events = EventList(Table()) dummy_events.table.meta['HDUCLAS1'] = 'response' dummy_events.write("test.fits", overwrite=True) with pytest.raises(ValueError): dummy_events = EventList(Table()) dummy_events.table.meta['HDUCLASS'] = "ogip" dummy_events.write("test.fits", overwrite=True) # test that it works when the srings are right but lowercase dummy_events = EventList(Table()) dummy_events.table.meta['HDUCLASS'] = "gadf" dummy_events.table.meta['HDUCLAS1'] = "events" dummy_events.write("test.fits", overwrite=True)