Completed
Push — master ( 4b6b67...211fa1 )
by Jasper
9s
created

QueryTest.test_bySubject()   A

Complexity

Conditions 1

Size

Total Lines 6

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 6
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_byApproval(self):
39
        from niprov.querying import Query
40
        q = Query(self.dependencies).byApproval('ceterum censeo')
41
        self.assertEqual(1, len(q.getFields()))
42
        self.assertEqual('approval', q.getFields()[0].name)
43
        self.assertEqual('ceterum censeo', q.getFields()[0].value)
44
45
    def test_Iter_returns_repository_inquire_results(self):
46
        from niprov.querying import Query
47
        self.repo.inquire.return_value = [sentinel.r1, sentinel.r2]
48
        q = Query(self.dependencies)
49
        out = list(q)
50
        self.repo.inquire.assert_called_with(q)
51
        self.assertEqual(out, self.repo.inquire())
52
53
    def test_Len_on_query(self):
54
        from niprov.querying import Query
55
        self.repo.inquire.return_value = [sentinel.r1, sentinel.r2]
56
        q = Query(self.dependencies)
57
        self.assertEqual(len(q), 2)
58
59
    def test_In_on_query(self):
60
        from niprov.querying import Query
61
        self.repo.inquire.return_value = [sentinel.r1, sentinel.r2]
62
        q = Query(self.dependencies).bySubject('abc')
63
        self.assertTrue(sentinel.r2 in q)
64
65
    def test_Len_or_Iter_or_in_only_runs_inquire_once(self):
66
        from niprov.querying import Query
67
        self.repo.inquire.return_value = [sentinel.r1, sentinel.r2]
68
        q = Query(self.dependencies)
69
        len(q)
70
        list(q)
71
        sentinel.r2 in q
72
        self.assertEqual(self.repo.inquire.call_count, 1)
73
74
    def test_byLocation(self):
75
        self.locationFactory.completeString.side_effect = lambda s: s
76
        from niprov.querying import Query
77
        result = Query(self.dependencies).byLocation('abc')
78
        self.repo.byLocation.assert_called_with('abc')
79
        self.assertEqual(result, self.repo.byLocation('abc'))
80
81
    def test_Statistics(self):
82
        from niprov.querying import Query
83
        result = Query(self.dependencies).statistics()
84
        self.repo.statistics.assert_called_with()
85
        self.assertEqual(result, self.repo.statistics())
86
87
    def test_Latest(self):
88
        from niprov.querying import Query
89
        result = Query(self.dependencies).latest()
90
        self.repo.latest.assert_called_with()
91
        self.assertEqual(result, self.repo.latest())
92
93
    def test_All(self):
94
        from niprov.querying import Query
95
        result = Query(self.dependencies).all()
96
        self.repo.all.assert_called_with()
97
        self.assertEqual(result, self.repo.all())
98
99
    def test_Completes_locationString_byLocation(self):
100
        from niprov.querying import Query
101
        result = Query(self.dependencies).byLocation('abc')
102
        self.locationFactory.completeString.assert_any_call('abc')
103
        self.repo.byLocation.assert_called_with(self.locationFactory.completeString())
104
105
    def test_allModalities(self):
106
        from niprov.querying import Query
107
        q = Query(self.dependencies).allModalities()
108
        self.assertEqual('modality', q.getFields()[0].name)
109
        self.assertTrue(q.getFields()[0].all)
110
111
    def test_allUsers(self):
112
        from niprov.querying import Query
113
        q = Query(self.dependencies).allUsers()
114
        self.assertEqual('user', q.getFields()[0].name)
115
        self.assertTrue(q.getFields()[0].all)
116
117
    def test_allProjects(self):
118
        from niprov.querying import Query
119
        q = Query(self.dependencies).allProjects()
120
        self.assertEqual('project', q.getFields()[0].name)
121
        self.assertTrue(q.getFields()[0].all)
122
123
124
125