def test_returns_self(self): temp_fs = fsopendir('temp://') parent = MagicMock() filename = temp_fs.getsyspath('temp.h5') _create_h5(filename) reader = HDFReader(parent, filename) self.assertEqual(reader, reader.__enter__())
def test_raises_ValueError_if_file_like_given(self): temp_fs = fsopendir('temp://') parent = MagicMock() try: HDFReader(parent, temp_fs.open('temp.h5', 'w')) raise AssertionError('ValueError was not raised.') except ValueError: pass
def test_closes_reader(self, fake_close): temp_fs = fsopendir('temp://') parent = MagicMock() filename = temp_fs.getsyspath('temp.h5') _create_h5(filename) reader = HDFReader(parent, filename) reader.__exit__(None, None, None) fake_close.assert_called_once_with()
def test_reads_meta_if_cache_is_empty(self, fake_read): temp_fs = fsopendir('temp://') parent = MagicMock() filename = temp_fs.getsyspath('temp.h5') _create_h5(filename) reader = HDFReader(parent, filename) reader.meta self.assertEqual(len(fake_read.mock_calls), 1)
def test_uses_cached_meta(self, fake_read): temp_fs = fsopendir('temp://') parent = MagicMock() filename = temp_fs.getsyspath('temp.h5') _create_h5(filename) reader = HDFReader(parent, filename) reader._meta = {} reader.meta fake_read.assert_not_called()
def test_contains_all_rows(self, fake_read): fake_read.return_value = {} temp_fs = fsopendir('temp://') parent = MagicMock() # save meta.about to the file. filename = temp_fs.getsyspath('temp.h5') _create_h5(filename) # now read it from file. reader = HDFReader(parent, filename) raw_iter = reader.raw first = next(raw_iter) self.assertEqual(first, [0.0, 0.0, 0.0]) self.assertTrue(reader._in_iteration) rows = list(raw_iter) self.assertEqual(len(rows), 4) self.assertFalse(reader._in_iteration)
def test_generates_rows_as_RowProxy_instances(self): temp_fs = fsopendir('temp://') parent = MagicMock() filename = temp_fs.getsyspath('temp.h5') _create_h5(filename) reader = HDFReader(parent, filename) with patch.object(HDFReader, 'headers', ['field1', 'field2', 'field3']): rows_iter = iter(reader) first = next(rows_iter) self.assertIsInstance(first, RowProxy) self.assertEqual(first.field1, 0.0) self.assertEqual(first.field2, 0.0) self.assertEqual(first.field3, 0.0) self.assertTrue(reader._in_iteration) rows = [] for row in rows_iter: self.assertIsInstance(row, RowProxy) rows.append(row) self.assertEqual(len(rows), 4) self.assertFalse(reader._in_iteration)