From e9353feea58299448ff64c45475085a1b093f47b Mon Sep 17 00:00:00 2001 From: Stefano Borini <sborini@enthought.com> Date: Tue, 1 Aug 2017 13:30:44 +0100 Subject: [PATCH] Tested CSV extractor for exceptions --- .../csv_extractor/csv_extractor_data_source.py | 10 ++++------ .../tests/test_csv_extractor_data_source.py | 17 +++++++++++++++++ 2 files changed, 21 insertions(+), 6 deletions(-) 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 72bcdec..471f3ac 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 0df1be2..f619f45 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) + + -- GitLab