Completed
Pull Request — master (#143)
by Jasper
01:24
created

QueryTest.test_Statistics()   A

Complexity

Conditions 1

Size

Total Lines 5

Duplication

Lines 0
Ratio 0 %

Importance

Changes 1
Bugs 0 Features 0
Metric Value
cc 1
c 1
b 0
f 0
dl 0
loc 5
rs 9.4285
1
from tests.ditest import DependencyInjectionTestBase
2
from mock import Mock, sentinel, patch
3
4
5
class QueryTest(DependencyInjectionTestBase):
6
7
    def setUp(self):
8
        super(QueryTest, self).setUp()
9
10
    def test_byModality(self):
11
        from niprov.querying import Query
12
        q = Query(self.dependencies).byModality('magic')
13
        self.assertEqual(1, len(q.getFields()))
14
        self.assertEqual('modality', q.getFields()[0].name)
15
        self.assertEqual('magic', q.getFields()[0].value)
16
17
    def test_byProject(self):
18
        from niprov.querying import Query
19
        q = Query(self.dependencies).byProject('sealion')
20
        self.assertEqual(1, len(q.getFields()))
21
        self.assertEqual('project', q.getFields()[0].name)
22
        self.assertEqual('sealion', q.getFields()[0].value)
23
24
    def test_byUser(self):
25
        from niprov.querying import Query
26
        q = Query(self.dependencies).byUser('dumbledore')
27
        self.assertEqual(1, len(q.getFields()))
28
        self.assertEqual('user', q.getFields()[0].name)
29
        self.assertEqual('dumbledore', q.getFields()[0].value)
30
31
    def test_bySubject(self):
32
        from niprov.querying import Query
33
        q = Query(self.dependencies).bySubject('potter, h')
34
        self.assertEqual(1, len(q.getFields()))
35
        self.assertEqual('subject', q.getFields()[0].name)
36
        self.assertEqual('potter, h', q.getFields()[0].value)
37
38
    def test_Iter_returns_repository_inquire_results(self):
39
        from niprov.querying import Query
40
        self.repo.inquire.return_value = [sentinel.r1, sentinel.r2]
41
        q = Query(self.dependencies)
42
        out = list(q)
43
        self.repo.inquire.assert_called_with(q)
44
        self.assertEqual(out, self.repo.inquire())
45
46
    def test_Len_on_query(self):
47
        from niprov.querying import Query
48
        self.repo.inquire.return_value = [sentinel.r1, sentinel.r2]
49
        q = Query(self.dependencies)
50
        self.assertEqual(len(q), 2)
51
52
    def test_Len_or_Iter_only_runs_inquire_once(self):
53
        from niprov.querying import Query
54
        self.repo.inquire.return_value = [sentinel.r1, sentinel.r2]
55
        q = Query(self.dependencies)
56
        len(q)
57
        list(q)
58
        self.assertEqual(self.repo.inquire.call_count, 1)
59
60
    def test_byLocation(self):
61
        from niprov.querying import Query
62
        result = Query(self.dependencies).byLocation('abc')
63
        self.repo.byLocation.assert_called_with('abc')
64
        self.assertEqual(result, self.repo.byLocation('abc'))
65
66
    def test_Statistics(self):
67
        from niprov.querying import Query
68
        result = Query(self.dependencies).statistics()
69
        self.repo.statistics.assert_called_with()
70
        self.assertEqual(result, self.repo.statistics())
71
72
    def test_Latest(self):
73
        from niprov.querying import Query
74
        result = Query(self.dependencies).latest()
75
        self.repo.latest.assert_called_with()
76
        self.assertEqual(result, self.repo.latest())
77
78
    def test_All(self):
79
        from niprov.querying import Query
80
        result = Query(self.dependencies).all()
81
        self.repo.all.assert_called_with()
82
        self.assertEqual(result, self.repo.all())
83
84
85
86