From 710778bc9d6cedc6ceb26ac0725b11b01445d9d1 Mon Sep 17 00:00:00 2001
From: jlaura <jlaura@usgs.gov>
Date: Wed, 26 Oct 2022 16:04:23 -0700
Subject: [PATCH] Adds fast fail instrument_id lookup on driver (#502)

* Adds fast fail instrument_id lookup on driver

* Removes import gifted by the IDE
---
 ale/drivers/selene_drivers.py        | 7 +++++++
 tests/pytests/test_kaguya_drivers.py | 8 ++++++++
 2 files changed, 15 insertions(+)

diff --git a/ale/drivers/selene_drivers.py b/ale/drivers/selene_drivers.py
index 13a5f8d..ebce66c 100644
--- a/ale/drivers/selene_drivers.py
+++ b/ale/drivers/selene_drivers.py
@@ -12,6 +12,13 @@ from ale.base.type_sensor import LineScanner
 class KaguyaTcIsisLabelIsisSpiceDriver(LineScanner, IsisLabel, IsisSpice, KaguyaSeleneDistortion, Driver):
     """
     """
+    VALID_INSTRUMENT_IDS = ['TC1', 'TC2']
+    @property
+    def instrument_id(self):
+      iid = self.label['IsisCube']['Instrument']['InstrumentId']
+      if iid not in self.VALID_INSTRUMENT_IDS:
+        raise ValueError(f"Instrument ID: '{iid}' not in VALID_INSTRUMENT_IDS list. Failing.")
+      return iid
 
     @property
     def spacecraft_name(self):
diff --git a/tests/pytests/test_kaguya_drivers.py b/tests/pytests/test_kaguya_drivers.py
index 79cb734..d33ed98 100644
--- a/tests/pytests/test_kaguya_drivers.py
+++ b/tests/pytests/test_kaguya_drivers.py
@@ -199,6 +199,14 @@ class test_isis_isis(unittest.TestCase):
         label = get_image_label("TC1S2B0_01_06691S820E0465", "isis")
         self.driver = KaguyaTcIsisLabelIsisSpiceDriver(label)
 
+    def test_instrument_id(self):
+        assert self.driver.instrument_id == 'TC1'
+
+    def test_bad_instrument_id(self):
+        self.driver.label['IsisCube']['Instrument']['InstrumentId'] = 'FAIL'
+        with self.assertRaises(ValueError):
+            self.driver.instrument_id
+
     def test_spacecraft_name(self):
         assert self.driver.spacecraft_name == 'KAGUYA'
 
-- 
GitLab