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

QueryTest   A

Complexity

Total Complexity 15

Size/Duplication

Total Lines 92
Duplicated Lines 0 %

Importance

Changes 8
Bugs 0 Features 0
Metric Value
dl 0
loc 92
rs 10
c 8
b 0
f 0
wmc 15

14 Methods

Rating   Name   Duplication   Size   Complexity  
A test_byModality() 0 6 1
A setUp() 0 2 1
A test_byUser() 0 6 1
A test_byProject() 0 6 1
A test_bySubject() 0 6 1
A test_byLocation() 0 6 2
A test_Len_on_query() 0 5 1
A test_Len_or_Iter_only_runs_inquire_once() 0 7 1
A test_Completes_locationString_byLocation() 0 5 1
A test_Statistics() 0 5 1
A test_Iter_returns_repository_inquire_results() 0 7 1
A test_byApproval() 0 6 1
A test_All() 0 5 1
A test_Latest() 0 5 1
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