Completed
Push — master ( 6d6a7d...e4617d )
by Jasper
8s
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_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_Len_or_Iter_only_runs_inquire_once(self):
60
        from niprov.querying import Query
61
        self.repo.inquire.return_value = [sentinel.r1, sentinel.r2]
62
        q = Query(self.dependencies)
63
        len(q)
64
        list(q)
65
        self.assertEqual(self.repo.inquire.call_count, 1)
66
67
    def test_byLocation(self):
68
        self.locationFactory.completeString.side_effect = lambda s: s
69
        from niprov.querying import Query
70
        result = Query(self.dependencies).byLocation('abc')
71
        self.repo.byLocation.assert_called_with('abc')
72
        self.assertEqual(result, self.repo.byLocation('abc'))
73
74
    def test_Statistics(self):
75
        from niprov.querying import Query
76
        result = Query(self.dependencies).statistics()
77
        self.repo.statistics.assert_called_with()
78
        self.assertEqual(result, self.repo.statistics())
79
80
    def test_Latest(self):
81
        from niprov.querying import Query
82
        result = Query(self.dependencies).latest()
83
        self.repo.latest.assert_called_with()
84
        self.assertEqual(result, self.repo.latest())
85
86
    def test_All(self):
87
        from niprov.querying import Query
88
        result = Query(self.dependencies).all()
89
        self.repo.all.assert_called_with()
90
        self.assertEqual(result, self.repo.all())
91
92
    def test_Completes_locationString_byLocation(self):
93
        from niprov.querying import Query
94
        result = Query(self.dependencies).byLocation('abc')
95
        self.locationFactory.completeString.assert_any_call('abc')
96
        self.repo.byLocation.assert_called_with(self.locationFactory.completeString())
97
98
99
100