diff --git a/force_bdss/core_plugins/dummy/csv_extractor/csv_extractor_data_source.py b/force_bdss/core_plugins/dummy/csv_extractor/csv_extractor_data_source.py index 72bcdec142f15a4530c6fd00be971dd6b14d6acf..471f3ac6c18592ed248d6a18d12559bdc6359340 100644 --- a/force_bdss/core_plugins/dummy/csv_extractor/csv_extractor_data_source.py +++ b/force_bdss/core_plugins/dummy/csv_extractor/csv_extractor_data_source.py @@ -9,16 +9,14 @@ class CSVExtractorDataSource(BaseDataSource): for rowindex, row in enumerate(reader): if rowindex < model.row: continue - - if rowindex == model.row: + elif rowindex == model.row: return [ DataValue( type=model.cuba_type, value=float(row[model.column]) ) ] + else: + break - raise IndexError("Could not find specified data. " - "Unexistent column.") - - raise IndexError("Could not find specified data. Unexistent row.") + raise IndexError("Could not find specified data.") diff --git a/force_bdss/core_plugins/dummy/csv_extractor/tests/test_csv_extractor_data_source.py b/force_bdss/core_plugins/dummy/csv_extractor/tests/test_csv_extractor_data_source.py index 0df1be2d814261327462b7e82a070325b088a9a2..f619f45cddb48a9b76b4e373d07f68a145b32d01 100644 --- a/force_bdss/core_plugins/dummy/csv_extractor/tests/test_csv_extractor_data_source.py +++ b/force_bdss/core_plugins/dummy/csv_extractor/tests/test_csv_extractor_data_source.py @@ -35,3 +35,20 @@ class TestCSVExtractorDataSource(unittest.TestCase): self.assertEqual(len(result), 1) self.assertIsInstance(result[0], DataValue) self.assertEqual(result[0].value, 42) + + def test_run_with_exception(self): + ds = CSVExtractorDataSource(self.bundle) + model = CSVExtractorModel(self.bundle) + model.filename = fixtures.get("foo.csv") + mock_params = [] + model.row = 30 + model.column = 5 + with self.assertRaises(IndexError): + ds.run(model, mock_params) + + model.row = 3 + model.column = 50 + with self.assertRaises(IndexError): + ds.run(model, mock_params) + +