From 03740d075e170123b1520959b976d494afb8e6dc Mon Sep 17 00:00:00 2001 From: Ben Dichter Date: Mon, 5 Dec 2022 14:09:39 -0500 Subject: [PATCH] SpikeEventSeries: add test for timestamp check (#1507) Co-authored-by: Ryan Ly --- src/pynwb/ecephys.py | 6 +++--- tests/unit/test_ecephys.py | 8 +++++++- 2 files changed, 10 insertions(+), 4 deletions(-) diff --git a/src/pynwb/ecephys.py b/src/pynwb/ecephys.py index 70bc4d3a2..3187cca4a 100644 --- a/src/pynwb/ecephys.py +++ b/src/pynwb/ecephys.py @@ -31,8 +31,8 @@ def __init__(self, **kwargs): args_to_set = popargs_to_dict(('description', 'location', 'device', 'position'), kwargs) super().__init__(**kwargs) if args_to_set['position'] and len(args_to_set['position']) != 3: - raise Exception('ElectrodeGroup position argument must have three elements: x, y, z, but received: %s' - % args_to_set['position']) + raise ValueError('ElectrodeGroup position argument must have three elements: x, y, z, but received: %s' + % str(args_to_set['position'])) for key, val in args_to_set.items(): setattr(self, key, val) @@ -122,7 +122,7 @@ def __init__(self, **kwargs): if not (isinstance(data, TimeSeries) or isinstance(timestamps, TimeSeries)): if not (isinstance(data, DataChunkIterator) or isinstance(timestamps, DataChunkIterator)): if len(data) != len(timestamps): - raise Exception('Must provide the same number of timestamps and spike events') + raise ValueError('Must provide the same number of timestamps and spike events') else: # TODO: add check when we have DataChunkIterators pass diff --git a/tests/unit/test_ecephys.py b/tests/unit/test_ecephys.py index feda0fa0d..6cdfcd59e 100644 --- a/tests/unit/test_ecephys.py +++ b/tests/unit/test_ecephys.py @@ -133,6 +133,12 @@ def test_no_rate(self): with self.assertRaises(TypeError): SpikeEventSeries(name='test_sES', data=data, electrodes=region, rate=1.) + def test_incorrect_timestamps(self): + table, region = self._create_table_and_region() + data = ((1, 1, 1), (2, 2, 2)) + with self.assertRaisesWith(ValueError, "Must provide the same number of timestamps and spike events"): + SpikeEventSeries(name='test_sES', data=data, electrodes=region, timestamps=[1.0, 2.0, 3.0]) + class ElectrodeGroupConstructor(TestCase): @@ -156,7 +162,7 @@ def test_init_position_none(self): def test_init_position_bad(self): dev1 = Device('dev1') - with self.assertRaises(TypeError): + with self.assertRaises(ValueError): ElectrodeGroup('elec1', 'electrode description', 'electrode location', dev1, (1, 2))