Completed
Push — master ( d09250...b67a9c )
by Alexandre M.
9s
created

readme_proj3_data_crumb_args()   A

Complexity

Conditions 2

Size

Total Lines 9

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
cc 2
c 0
b 0
f 0
dl 0
loc 9
rs 9.6666
1
import pathlib
2
import shutil
3
4
import pytest
5
6
from hansel.tests.conftest import make_tree_from_crumb
7
from hansel.utils import ParameterGrid
8
9
10
@pytest.fixture(scope='session')
11
def readme_base_dir():
12
    base_dir = pathlib.Path('/tmp/hansel/data')
13
    if base_dir.exists():
14
        shutil.rmtree(str(base_dir), ignore_errors=True)
15
        base_dir.mkdir()
16
    yield str(base_dir)
17
    shutil.rmtree(str(base_dir), ignore_errors=True)
18
19
20
def readme_brain_data_crumb_args():
21
    crumb_path = "{base_dir}/raw/{subject_id}/{session_id}/{image_type}/{image}"
22
    values_dict = {
23
        'session_id': ['session_1'],
24
        'subject_id': ['004000{}'.format(i) for i in range(10)],
25
        'image_type': ['anat_1', 'rest_1'],
26
        'image': ['mprage.nii.gz'],
27
    }
28
    return crumb_path, values_dict
29
30
31
def readme_proj1_data_crumb_args():
32
    crumb_path = "{base_dir}/proj1/{subject_id}/{session_id}/{image_type}/{image}"
33
    values_dict = {
34
        'session_id': ['session_1'],
35
        'subject_id': ['004000{}'.format(i) for i in range(10)],
36
        'image_type': ['anat_1', 'rest_1'],
37
        'image': ['mprage.nii.gz', 'rest.nii.gz'],
38
    }
39
    return crumb_path, values_dict
40
41
42
def readme_proj2_data_crumb_args():
43
    crumb_path = "{base_dir}/proj2/{subject_id}/{session_id}/{image_type}/{image}"
44
    values_dict = {
45
        'session_id': ['session_1'],
46
        'subject_id': ['00400{:02}'.format(i + 6) for i in range(10)],
47
        'image_type': ['anat_1', 'rest_1'],
48
        'image': ['mprage.nii.gz', 'rest.nii.gz'],
49
    }
50
    return crumb_path, values_dict
51
52
53
def readme_proj3_data_crumb_args():
54
    crumb_path = "{base_dir}/proj3/{subject_id}/{session_id}/{image_type}/{image}"
55
    values_dict = {
56
        'session_id': ['session_1'],
57
        'subject_id': ['00400{:02}'.format(i) for i in range(10)],
58
        'image_type': ['anat_1'],
59
        'image': ['mprage.nii.gz'],
60
    }
61
    return crumb_path, values_dict
62
63
64
def readme_proj4_data_crumb_args():
65
    crumb_path = "{base_dir}/proj4/{subject_id}/{session_id}/{image_type}/{image}"
66
    values_dict = {
67
        'session_id': ['session_1'],
68
        'subject_id': ['00400{:02}'.format(i + 1) for i in range(9)],
69
        'image_type': ['anat_1'],
70
        'image': ['mprage.nii.gz'],
71
    }
72
73
    subject1 = dict(
74
        image='anatomical.nii.gz',
75
        image_type='anat_1',
76
        session_id='session_1',
77
        subject_id='00400000'
78
    )
79
80
    values_map = [subject1]
81
    values_map.extend(list(ParameterGrid(values_dict)))
82
    return crumb_path, values_map
83
84
85
@pytest.fixture(scope='session')
86
def readme_tree_crumbs():
87
    return [
88
        readme_brain_data_crumb_args,
89
        readme_proj1_data_crumb_args,
90
        readme_proj2_data_crumb_args,
91
        readme_proj3_data_crumb_args,
92
        readme_proj4_data_crumb_args,
93
    ]
94
95
96
@pytest.fixture(scope='session')
97
def built_readme_tree_crumbs(readme_base_dir, readme_tree_crumbs):
98
    crumbs = []
99
    for crumb_func in readme_tree_crumbs:
100
        crumb_path, values_dict = crumb_func()
101
        make_tree_from_crumb(readme_base_dir, crumb_path, values_dict)
102
    yield crumbs
103
    shutil.rmtree(readme_base_dir)
104
105
106
@pytest.fixture(autouse=True)
107
def add_base_crumbs(doctest_namespace, built_readme_tree_crumbs):
108
    pass
109