From 05f017d8456c51f74a6f59a3a560024efabdc619 Mon Sep 17 00:00:00 2001 From: Kelvin Rodriguez <kr788@nau.edu> Date: Wed, 25 Sep 2019 15:39:03 -0700 Subject: [PATCH] ISIS ideal now fails if inst id is not ISIS Ideal (#284) * ISIS ideal now fails if inst id is not ISIS Ideal * redo super * updated ideal test --- ale/drivers/__init__.py | 10 +++++++--- ale/drivers/isis_ideal_drivers.py | 8 ++++++++ tests/pytests/test_ideal_drivers.py | 4 ++-- 3 files changed, 17 insertions(+), 5 deletions(-) diff --git a/ale/drivers/__init__.py b/ale/drivers/__init__.py index 7676ca3..c08b4af 100644 --- a/ale/drivers/__init__.py +++ b/ale/drivers/__init__.py @@ -44,7 +44,7 @@ class AleJsonEncoder(json.JSONEncoder): return obj.isoformat() return json.JSONEncoder.default(self, obj) -def load(label, props={}, formatter='usgscsm', verbose=True): +def load(label, props={}, formatter='usgscsm', verbose=False): """ Attempt to load a given label from all possible drivers @@ -68,13 +68,17 @@ def load(label, props={}, formatter='usgscsm', verbose=True): res.instrument_id with res as driver: - return formatter(driver) + isd = formatter(driver) + if verbose: + print("Success with: ", driver) + print("ISD:\n", isd) + return isd except Exception as e: if verbose: print(f'Failed: {e}\n') traceback.print_exc() raise Exception('No Such Driver for Label') -def loads(label, props='', formatter='usgscsm', verbose=True): +def loads(label, props='', formatter='usgscsm', verbose=False): res = load(label, props, formatter, verbose=verbose) return json.dumps(res, cls=AleJsonEncoder) diff --git a/ale/drivers/isis_ideal_drivers.py b/ale/drivers/isis_ideal_drivers.py index 6cadc99..b93ce91 100644 --- a/ale/drivers/isis_ideal_drivers.py +++ b/ale/drivers/isis_ideal_drivers.py @@ -18,6 +18,14 @@ class IdealLsIsisLabelIsisSpiceDriver(LineScanner, IsisSpice, IsisLabel, NoDisto """ return self.instrument_id + @property + def instrument_id(self): + instrument_id = super().instrument_id + + if instrument_id != "IdealCamera": + raise Exception(f"Instrument ID is {instrument_id} when it should be \"IdealCamera\"") + + return instrument_id @property def ephemeris_start_time(self): diff --git a/tests/pytests/test_ideal_drivers.py b/tests/pytests/test_ideal_drivers.py index e8589b4..a4371fa 100644 --- a/tests/pytests/test_ideal_drivers.py +++ b/tests/pytests/test_ideal_drivers.py @@ -8,9 +8,9 @@ def IdealDriver(): return IdealLsIsisLabelIsisSpiceDriver("") -@patch('ale.base.label_isis.IsisLabel.instrument_id', 1) +@patch('ale.base.label_isis.IsisLabel.instrument_id', "IdealCamera") def test_sensor_name(IdealDriver): - assert IdealDriver.sensor_name == 1 + assert IdealDriver.sensor_name == "IdealCamera" @patch('ale.drivers.isis_ideal_drivers.IdealLsIsisLabelIsisSpiceDriver.ephemeris_start_time', 451262458.99571) -- GitLab