@@ -29,12 +29,21 @@ def setUpModule():
29
29
raise unittest .SkipTest ('Need pydicom for dft tests, skipping' )
30
30
31
31
32
- def test_init ():
32
+ @pytest .fixture
33
+ def db (monkeypatch ):
34
+ """Build a dft database in memory to avoid cross-process races
35
+ and not modify the host filesystem."""
36
+ database = dft ._DB (fname = ":memory:" )
37
+ monkeypatch .setattr (dft , "DB" , database )
38
+ yield database
39
+
40
+
41
+ def test_init (db ):
33
42
dft .clear_cache ()
34
43
dft .update_cache (data_dir )
35
44
36
45
37
- def test_study ():
46
+ def test_study (db ):
38
47
studies = dft .get_studies (data_dir )
39
48
assert len (studies ) == 1
40
49
assert (studies [0 ].uid ==
@@ -48,7 +57,7 @@ def test_study():
48
57
assert studies [0 ].patient_sex == 'F'
49
58
50
59
51
- def test_series ():
60
+ def test_series (db ):
52
61
studies = dft .get_studies (data_dir )
53
62
assert len (studies [0 ].series ) == 1
54
63
ser = studies [0 ].series [0 ]
@@ -62,7 +71,7 @@ def test_series():
62
71
assert ser .bits_stored == 12
63
72
64
73
65
- def test_storage_instances ():
74
+ def test_storage_instances (db ):
66
75
studies = dft .get_studies (data_dir )
67
76
sis = studies [0 ].series [0 ].storage_instances
68
77
assert len (sis ) == 2
@@ -74,19 +83,19 @@ def test_storage_instances():
74
83
'1.3.12.2.1107.5.2.32.35119.2010011420300180088599504.1' )
75
84
76
85
77
- def test_storage_instance ():
86
+ def test_storage_instance (db ):
78
87
pass
79
88
80
89
81
90
@unittest .skipUnless (have_pil , 'could not import PIL.Image' )
82
- def test_png ():
91
+ def test_png (db ):
83
92
studies = dft .get_studies (data_dir )
84
93
data = studies [0 ].series [0 ].as_png ()
85
94
im = PImage .open (BytesIO (data ))
86
95
assert im .size == (256 , 256 )
87
96
88
97
89
- def test_nifti ():
98
+ def test_nifti (db ):
90
99
studies = dft .get_studies (data_dir )
91
100
data = studies [0 ].series [0 ].as_nifti ()
92
101
assert len (data ) == 352 + 2 * 256 * 256 * 2
0 commit comments