Completed
Push — master ( 6d6a7d...e4617d )
by Jasper
8s
created

FifTests.test_Determines_modality()   A

Complexity

Conditions 1

Size

Total Lines 3

Duplication

Lines 0
Ratio 0 %

Importance

Changes 1
Bugs 0 Features 0
Metric Value
cc 1
dl 0
loc 3
rs 10
c 1
b 0
f 0
1
import unittest
2
from mock import Mock
3
from datetime import datetime, timedelta
4
from tests.test_basefile import BaseFileTests
5
6
7
class FifTests(BaseFileTests):
8
9
    def setUp(self):
10
        super(FifTests, self).setUp()
11
        self.libs = Mock()
12
        self.dependencies.getLibraries.return_value = self.libs
13
        self.setupMne()
14
        from niprov.fif import FifFile
15
        self.constructor = FifFile
16
        self.file = FifFile(self.path, dependencies=self.dependencies)
17
18
    def test_Gets_basic_info_from_mne_and_returns_it(self):
19
        out = self.file.inspect()
20
        self.assertEqual(out['subject'], 'John Doeish')
21
        self.assertEqual(out['project'], 'worlddom')
22
        self.assertEqual(out['acquired'], self.acquired)
23
24
    def test_Gets_dimensions(self):
25
        out = self.file.inspect()
26
        self.assertEqual(out['dimensions'], [123, 91])
27
        self.assertEqual(out['sampling-frequency'], 200)
28
        self.assertEqual(out['duration'], timedelta(seconds=91/200.))
29
30
    def test_Attach_method(self):
31
        self.file.getProvenance = Mock()
32
        self.file.getProvenance.return_value = 'serial prov'
33
        self.file.attach('json')
34
        self.file.getProvenance.assert_called_with('json')
35
        self.assertIn('existing bla bla ', #original string+added space 
36
            self.img.info['description'])
37
        self.assertIn('NIPROV:'+'serial prov', 
38
            self.img.info['description'])
39
        self.libs.mne.io.write_info.assert_called_with(self.file.path, 
40
            self.img.info)
41
42
    def test_Determines_modality(self):
43
        out = self.file.inspect()
44
        self.assertEqual(out['modality'], 'MEG')
45
46
    def test_Preserves_modality_if_inherited(self):
47
        pass # Doesn't have to preserve
48
49
    def setupMne(self):
50
        TS = 1422522595.76096
51
        self.acquired = datetime.fromtimestamp(TS)
52
        self.img = Mock()
53
        self.img.info = {
54
            'meas_date':(TS,),
55
            'proj_name':'worlddom',
56
            'subject_info':{'first_name':'John','last_name':'Doeish'},
57
            'nchan':123,
58
            'sfreq':200,
59
            'description':'existing bla bla'}
60
        self.img.first_samp = 10
61
        self.img.last_samp = 100
62
        self.libs.mne.io.Raw.return_value = self.img
63
        self.libs.mne.io.read_info.return_value = self.img.info
64
        self.libs.hasDependency.return_value = True
65
66
67
68