def test_translator(self): header = self.header # Specify a translation class with self.assertWarns(UserWarning): # Since the translator is incomplete it should issue warnings v1 = ObservationInfo(header, translator_class=InstrumentTestTranslator) self.assertEqual(v1.instrument, "SCUBA_test") self.assertEqual(v1.telescope, "LSST") # Now automated class with self.assertWarns(UserWarning): # Since the translator is incomplete it should issue warnings v1 = ObservationInfo(header) self.assertEqual(v1.instrument, "SCUBA_test") self.assertEqual(v1.telescope, "LSST") location = v1.location.to_geodetic() self.assertAlmostEqual(location.height.to("m").to_value(), 4123.0, places=1) # Check that headers have been removed new_hdr = v1.stripped_header() self.assertNotIn("INSTRUME", new_hdr) self.assertNotIn("OBSGEO-X", new_hdr) self.assertIn("TELESCOP", new_hdr) # Check the list of cards that were used used = v1.cards_used self.assertIn("INSTRUME", used) self.assertIn("OBSGEO-Y", used) self.assertNotIn("TELESCOP", used)
def test_megaprime_stripping(self): header = read_test_file("fitsheader-megaprime.yaml", dir=self.datadir) v1 = ObservationInfo(header) # Check that headers have been removed new_hdr = v1.stripped_header() self.assertNotIn("INSTRUME", new_hdr) self.assertNotIn("TELESCOP", new_hdr) self.assertIn("CCD", new_hdr)
def test_translator(self): header = self.header # Specify a translation class with self.assertWarns(UserWarning): # Since the translator is incomplete it should issue warnings v1 = ObservationInfo(header, translator_class=InstrumentTestTranslator) self.assertEqual(v1.instrument, "SCUBA_test") self.assertEqual(v1.telescope, "LSST") self.assertEqual(v1.exposure_id, 22) self.assertIsInstance(v1.exposure_id, int) self.assertEqual(v1.detector_name, "76") self.assertEqual(v1.relative_humidity, 55.0) self.assertIsInstance(v1.relative_humidity, float) self.assertEqual(v1.physical_filter, "76_55") # Now automated class with self.assertWarns(UserWarning): # Since the translator is incomplete it should issue warnings v1 = ObservationInfo(header) self.assertEqual(v1.instrument, "SCUBA_test") self.assertEqual(v1.telescope, "LSST") location = v1.location.to_geodetic() self.assertAlmostEqual(location.height.to("m").to_value(), 4123.0, places=1) # Check that headers have been removed new_hdr = v1.stripped_header() self.assertNotIn("INSTRUME", new_hdr) self.assertNotIn("OBSGEO-X", new_hdr) self.assertIn("TELESCOP", new_hdr) # Check the list of cards that were used used = v1.cards_used self.assertIn("INSTRUME", used) self.assertIn("OBSGEO-Y", used) self.assertNotIn("TELESCOP", used) # Stringification summary = str(v1) self.assertIn("datetime_begin", summary) # Create with a subset of properties v2 = ObservationInfo( header, translator_class=InstrumentTestTranslator, subset={"telescope", "datetime_begin", "exposure_group"}) self.assertEqual(v2.telescope, v1.telescope) self.assertEqual(v2.datetime_begin, v2.datetime_begin) self.assertIsNone(v2.datetime_end) self.assertIsNone(v2.location) self.assertIsNone(v2.observation_id)