1
- import importlib
2
1
import subprocess
3
2
import sys
4
- from pathlib import Path
5
3
6
- # Add wrapper package to path
7
- sys .path .insert (0 , str (Path (__file__ ).resolve ().parents [3 ] / 'wrapper' / 'src' ))
4
+ import petprep_docker .__main__ as ppd
8
5
9
6
10
7
def test_docker_get_parser ():
11
- module = importlib . import_module ( 'petprep_docker.__main__' )
12
- parser = module .get_parser ()
8
+
9
+ parser = ppd .get_parser ()
13
10
assert parser is not None
14
11
15
12
16
13
def test_docker_main_help (monkeypatch , capsys ):
17
- module = importlib .import_module ('petprep_docker.__main__' )
18
- monkeypatch .setattr (module , 'check_docker' , lambda : 1 )
19
- monkeypatch .setattr (module , 'check_image' , lambda img : True )
20
- monkeypatch .setattr (module , 'check_memory' , lambda img : 16000 )
14
+ monkeypatch .setattr (ppd , 'check_docker' , lambda : 1 )
15
+ monkeypatch .setattr (ppd , 'check_image' , lambda img : True )
16
+ monkeypatch .setattr (ppd , 'check_memory' , lambda img : 16000 )
21
17
22
18
captured = {}
23
19
@@ -31,24 +27,23 @@ def fake_check_output(cmd):
31
27
captured ['cmd' ] = cmd
32
28
return b'usage: petprep bids_dir output_dir {participant}\n \n optional arguments:'
33
29
34
- monkeypatch .setattr (module .subprocess , 'run' , fake_run )
35
- monkeypatch .setattr (module .subprocess , 'check_output' , fake_check_output )
36
- monkeypatch .setattr (module , 'merge_help' , lambda a , b : 'merged' )
30
+ monkeypatch .setattr (ppd .subprocess , 'run' , fake_run )
31
+ monkeypatch .setattr (ppd .subprocess , 'check_output' , fake_check_output )
32
+ monkeypatch .setattr (ppd , 'merge_help' , lambda a , b : 'merged' )
37
33
38
34
sys .argv = ['petprep-docker' , '--help' ]
39
- ret = module .main ()
35
+ ret = ppd .main ()
40
36
assert ret == 0
41
37
assert captured ['cmd' ][:3 ] == ['docker' , 'run' , '--rm' ]
42
38
assert '-h' in captured ['cmd' ]
43
39
assert '-i' in captured ['cmd' ]
44
- assert module .__name__
40
+ assert ppd .__name__
45
41
46
42
47
43
def test_docker_main_version (monkeypatch ):
48
- module = importlib .import_module ('petprep_docker.__main__' )
49
- monkeypatch .setattr (module , 'check_docker' , lambda : 1 )
50
- monkeypatch .setattr (module , 'check_image' , lambda img : True )
51
- monkeypatch .setattr (module , 'check_memory' , lambda img : 16000 )
44
+ monkeypatch .setattr (ppd , 'check_docker' , lambda : 1 )
45
+ monkeypatch .setattr (ppd , 'check_image' , lambda img : True )
46
+ monkeypatch .setattr (ppd , 'check_memory' , lambda img : 16000 )
52
47
53
48
calls = []
54
49
@@ -58,21 +53,20 @@ def fake_run(cmd, *args, **kwargs):
58
53
return subprocess .CompletedProcess (cmd , 0 , stdout = b'20.10' )
59
54
return subprocess .CompletedProcess (cmd , 0 )
60
55
61
- monkeypatch .setattr (module .subprocess , 'run' , fake_run )
56
+ monkeypatch .setattr (ppd .subprocess , 'run' , fake_run )
62
57
63
58
sys .argv = ['petprep-docker' , '--version' ]
64
- ret = module .main ()
59
+ ret = ppd .main ()
65
60
assert ret == 0
66
61
cmd = calls [- 1 ]
67
62
assert cmd [:3 ] == ['docker' , 'run' , '--rm' ]
68
63
assert '--version' in cmd
69
64
70
65
71
66
def test_docker_command_options (monkeypatch , tmp_path ):
72
- module = importlib .import_module ('petprep_docker.__main__' )
73
- monkeypatch .setattr (module , 'check_docker' , lambda : 1 )
74
- monkeypatch .setattr (module , 'check_image' , lambda img : True )
75
- monkeypatch .setattr (module , 'check_memory' , lambda img : 16000 )
67
+ monkeypatch .setattr (ppd , 'check_docker' , lambda : 1 )
68
+ monkeypatch .setattr (ppd , 'check_image' , lambda img : True )
69
+ monkeypatch .setattr (ppd , 'check_memory' , lambda img : 16000 )
76
70
77
71
bids_dir = tmp_path / 'bids'
78
72
out_dir = tmp_path / 'out'
@@ -89,7 +83,7 @@ def fake_run(cmd, *args, **kwargs):
89
83
return subprocess .CompletedProcess (cmd , 0 , stdout = b'20.10' )
90
84
return subprocess .CompletedProcess (cmd , 0 )
91
85
92
- monkeypatch .setattr (module .subprocess , 'run' , fake_run )
86
+ monkeypatch .setattr (ppd .subprocess , 'run' , fake_run )
93
87
94
88
sys .argv = [
95
89
'petprep-docker' ,
@@ -101,7 +95,7 @@ def fake_run(cmd, *args, **kwargs):
101
95
'--output-spaces' ,
102
96
'MNI152Lin' ,
103
97
]
104
- ret = module .main ()
98
+ ret = ppd .main ()
105
99
assert ret == 0
106
100
cmd = calls [- 1 ]
107
101
joined = ' ' .join (cmd )
0 commit comments