Skip to content
Snippets Groups Projects
Commit 0b67758d authored by Toumji Abdallah's avatar Toumji Abdallah
Browse files

Viewing tool missing data file handled

parent 3e195505
Branches
No related tags found
No related merge requests found
......@@ -24,6 +24,7 @@ from matplotlib.backends.backend_tkagg import FigureCanvasTkAgg
from matplotlib.figure import Figure
from nilearn import image, plotting
from pandastable import Table
from tkinter import messagebox as mb
from BIDSHandler.Tools import Tools, clean_frame, search_inheritance
......@@ -435,10 +436,15 @@ class FileHandler:
:param path: str
The path of the file for which to display the metadata
"""
metadata = self.tools.pybids_get_metadata_from_path(path)
if metadata.__len__() == 2:
mb.showinfo("Error", "No metadata file found")
return
metadata_window = self.create_top_window('Metadata')
metadata = self.tools.pybids_get_metadata_from_path(path)
metadata_label = tk.Text(metadata_window, height=50, width=100)
metadata_label.insert(tk.END, metadata)
metadata_label.configure(state='disabled')
......@@ -457,7 +463,13 @@ class FileHandler:
The path of the file for which to display the events
"""
events = search_inheritance(path, self.project, 'events')[0]
events = search_inheritance(path, self.project, 'events')
if len(events) == 0:
mb.showinfo("Error", "No events file found")
return
else:
events = events[0]
events_window = self.create_top_window('Events')
......@@ -493,7 +505,13 @@ class FileHandler:
The path of the file for which to display the channels
"""
channels = search_inheritance(path, self.project, 'channels')[0]
channels = search_inheritance(path, self.project, 'channels')
if len(channels) == 0:
mb.showinfo("Error", "No channels file found")
return
else:
channels = channels[0]
channels_window = self.create_top_window('Channels')
......
import os
import unittest
import BIDSHandler.CreationTool.Application as Application
import BIDSHandler.Tools as Tools
import tkinter as tk
class MyTestCase(unittest.TestCase):
def setUp(self):
self.app = Application.Application(root=tk.Tk())
self.app.project_directory = 'test'
self.app = Application.Application(root=tk.Toplevel())
self.app.project_directory = os.path.join(os.path.dirname(__file__), 'res', 'directory').replace('\\', '/')
......
......@@ -2,7 +2,10 @@ import os
import unittest
import BIDSHandler.Tools as Tools
# To Do : replace os.path.join(os.path.dirname(__file__), 'res/directory') by self.project_directory
class MyTestCase(unittest.TestCase):
def setUp(self):
......@@ -10,21 +13,25 @@ class MyTestCase(unittest.TestCase):
def test_get_entities(self):
result = {'sub-01': {'ses-2': [
os.path.join(os.path.dirname(__file__), 'res/directory/sub-01/ses-2/eeg/sub-01_ses-2_task-travail_run-01_eeg.edf').replace('\\', '/')]}}
os.path.join(os.path.dirname(__file__),
'res/directory/sub-01/ses-2/eeg/sub-01_ses-2_task-travail_run-01_eeg.edf').replace('\\',
'/')]}}
experiment_file = [os.path.join(self.project_directory, 'sub-01', 'ses-2', 'eeg',
'sub-01_ses-2_task-travail_run-01_eeg.edf').replace('\\', '/')]
self.assertEqual(result, Tools.get_entities(experiment_file, self.project_directory))
result = {'sub-01': {'ses-2': [
os.path.join(os.path.dirname(__file__), 'res/directory/sub-01/ses-2/eeg/sub-01_ses-2_task-travail_run-01_eeg.edf').replace('\\', '/')],},
os.path.join(os.path.dirname(__file__),
'res/directory/sub-01/ses-2/eeg/sub-01_ses-2_task-travail_run-01_eeg.edf').replace('\\',
'/')], },
'sub-02': {'ses-1': [
os.path.join(os.path.dirname(__file__), 'res/directory/sub-02/ses-1/eeg/sub-02_ses-1_task-travail_run-01_eeg.edf').replace('\\', '/')]}}
os.path.join(os.path.dirname(__file__),
'res/directory/sub-02/ses-1/eeg/sub-02_ses-1_task-travail_run-01_eeg.edf').replace('\\',
'/')]}}
experiment_file.append(os.path.join(self.project_directory, 'sub-02', 'ses-1', 'eeg',
'sub-02_ses-1_task-travail_run-01_eeg.edf').replace('\\', '/'))
self.assertEqual(result, Tools.get_entities(experiment_file, self.project_directory))
def test_get_entities_single_file(self):
result = {'sub': '01', 'ses': '2', 'task': 'travail', 'run': '01'}
experiment_file = [
......@@ -39,7 +46,9 @@ class MyTestCase(unittest.TestCase):
def test_get_metadata_files_from_directory(self):
result = [
os.path.join(os.path.dirname(__file__), 'res/directory/ses-1_task-travail_channels.tsv').replace('\\', '/'),
os.path.join(os.path.dirname(__file__), 'res/directory/sub-02/ses-1/eeg/sub-02_ses-1_task-travail_run-01_channels.tsv').replace('\\', '/')]
os.path.join(os.path.dirname(__file__),
'res/directory/sub-02/ses-1/eeg/sub-02_ses-1_task-travail_run-01_channels.tsv').replace('\\',
'/')]
self.assertEqual(result, Tools.get_metadata_files_from_directory(
os.path.join(os.path.dirname(__file__), 'res/directory/').replace('\\', '/'), 'channels', '.tsv'))
......@@ -66,11 +75,13 @@ class MyTestCase(unittest.TestCase):
self.project_directory + '/ses-1_task-travail_channels.tsv']
result = files
self.assertEqual(result, Tools.order_files(files, self.project_directory + '/sub-02/ses-1/eeg/sub-02_ses-1_task-travail_run-01_eeg.edf'))
self.assertEqual(result, Tools.order_files(files,
self.project_directory + '/sub-02/ses-1/eeg/sub-02_ses-1_task-travail_run-01_eeg.edf'))
files = [files[1], files[0]]
self.assertEqual(result, Tools.order_files(files, self.project_directory + '/sub-02/ses-1/eeg/sub-02_ses-1_task-travail_run-01_eeg.edf'))
self.assertEqual(result, Tools.order_files(files,
self.project_directory + '/sub-02/ses-1/eeg/sub-02_ses-1_task-travail_run-01_eeg.edf'))
def test_search_inheritance(self):
metadata_file = [self.project_directory + '/ses-1_task-travail_channels.tsv']
......@@ -90,7 +101,7 @@ class MyTestCase(unittest.TestCase):
self.assertEqual('eeg', Tools.get_type_from_extension('edf'))
def test_get_metadata_info_from_type(self):
dict = {'channels.json': ['task'],
result = {'channels.json': ['task'],
'channels.tsv': ['task'],
'coordsystem.json': [],
'eeg.json': ['task'],
......@@ -102,16 +113,16 @@ class MyTestCase(unittest.TestCase):
'physio.tsv.gz': ['task'],
'stim.json': ['task'],
'stim.tsv.gz': ['task']}
self.assertEqual(dict, Tools.get_metadata_info_from_type('eeg'))
self.assertEqual(result, Tools.get_metadata_info_from_type('eeg'))
def test_get_possible_metadata_files(self):
list = ['channels.tsv', 'channels.json', 'eeg.json', 'events.tsv', 'events.json', 'coordsystem.json',
result = ['channels.tsv', 'channels.json', 'eeg.json', 'events.tsv', 'events.json', 'coordsystem.json',
'electrodes.tsv', 'electrodes.json', 'physio.json', 'physio.tsv.gz', 'stim.json', 'stim.tsv.gz']
self.assertEqual(list, Tools.get_possible_metadata_files('eeg'))
self.assertEqual(result, Tools.get_possible_metadata_files('eeg'))
def test_get_possible_types(self):
list = ['eeg']
self.assertEqual(list, Tools.get_possible_types())
result = ['eeg']
self.assertEqual(result, Tools.get_possible_types())
def test_verify_inheritance(self):
metadata_file = self.project_directory + '/ses-1_task-travail_channels.tsv'
......@@ -119,7 +130,8 @@ class MyTestCase(unittest.TestCase):
self.project_directory + '/sub-03/ses-1/eeg/sub-03_ses-1_task-travail_run-02_eeg.edf']
self.assertTrue(
Tools.verify_inheritance(metadata_file, self.project_directory, self.project_directory, desired_impacted_files,
Tools.verify_inheritance(metadata_file, self.project_directory, self.project_directory,
desired_impacted_files,
'eeg'))
def test_find_shared_entities(self):
......@@ -133,9 +145,5 @@ class MyTestCase(unittest.TestCase):
self.assertEqual('', Tools.find_shared_entities(files))
if __name__ == '__main__':
unittest.main()
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment