Source code for ibllib.tests.test_widefield
# test the renaming of files
# test that you can't save unless you give the correct number of paths
import unittest
from pathlib import Path
import tempfile
from ibllib.io.extractors.widefield import Widefield
from ibllib.pipes.widefield_tasks import WidefieldRegisterRaw
[docs]
class TestWidefieldExtractor(unittest.TestCase):
[docs]
def setUp(self):
# make temp directory and store the results
self.td = tempfile.TemporaryDirectory()
self.session_path = Path(self.td.name).joinpath('CSK-im-001', '2018-04-01', '002')
self.widefield_path = self.session_path.joinpath('raw_widefield_data')
self.widefield_path.mkdir(parents=True)
self.wf = Widefield(session_path=self.session_path)
for fname in self.wf.raw_names:
self.widefield_path.joinpath(fname).touch()
[docs]
def test_save_files(self):
"""
Test extractor save method that renames all widefield files and moves them to alf folder
:return:
"""
self.wf._save()
for fname in self.wf.save_names:
if fname:
assert self.session_path.joinpath('alf/widefield', fname).exists()
[docs]
def test_remove_files(self):
"""
Test the removal of motion corrected files
:return:
"""
motion_files = list(self.widefield_path.glob('motion*'))
assert len(motion_files) == 3
self.wf.remove_files(file_prefix='motion')
for m_file in motion_files:
assert not m_file.exists()
[docs]
def test_timestamp_saving(self):
"""
Test that correct path must be provided to extract timestamps when specifying save paths
:return:
"""
with self.assertRaises(AssertionError):
self.wf.sync_timestamps(save=True, save_paths=['lala.npy'])
[docs]
class TestWidefieldRegister(unittest.TestCase):
[docs]
def setUp(self):
# make temp directory and store the results
self.td = tempfile.TemporaryDirectory()
self.session_path = Path(self.td.name).joinpath('CSK-im-001', '2018-04-01', '002')
self.widefield_path = self.session_path.joinpath('raw_widefield_data')
self.widefield_path.mkdir(parents=True)
self.wf = WidefieldRegisterRaw(session_path=self.session_path)
self.wf.get_signatures()
for fname in self.wf.signature['input_files']:
if 'camlog' in fname[0]:
name = 'lala.camlog'
else:
name = fname[0]
self.session_path.joinpath(fname[1], name).touch()
[docs]
def test_rename_files(self):
"""
Test register raw rename method that renames raw widefield files and moves them to alf folder
:return:
"""
self.wf.rename_files(symlink_old=False)
for fname in self.wf.signature['output_files']:
assert self.session_path.joinpath(fname[1], fname[0]).exists()