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

QueryTest.test_byProject()   A

Complexity

Conditions 1

Size

Total Lines 6

Duplication

Lines 0
Ratio 0 %

Importance

Changes 2
Bugs 0 Features 0
Metric Value
cc 1
c 2
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_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
        self.locationFactory.completeString.side_effect = lambda s: s
62
        from niprov.querying import Query
63
        result = Query(self.dependencies).byLocation('abc')
64
        self.repo.byLocation.assert_called_with('abc')
65
        self.assertEqual(result, self.repo.byLocation('abc'))
66
67
    def test_Statistics(self):
68
        from niprov.querying import Query
69
        result = Query(self.dependencies).statistics()
70
        self.repo.statistics.assert_called_with()
71
        self.assertEqual(result, self.repo.statistics())
72
73
    def test_Latest(self):
74
        from niprov.querying import Query
75
        result = Query(self.dependencies).latest()
76
        self.repo.latest.assert_called_with()
77
        self.assertEqual(result, self.repo.latest())
78
79
    def test_All(self):
80
        from niprov.querying import Query
81
        result = Query(self.dependencies).all()
82
        self.repo.all.assert_called_with()
83
        self.assertEqual(result, self.repo.all())
84
85
    def test_Completes_locationString_byLocation(self):
86
        from niprov.querying import Query
87
        result = Query(self.dependencies).byLocation('abc')
88
        self.locationFactory.completeString.assert_any_call('abc')
89
        self.repo.byLocation.assert_called_with(self.locationFactory.completeString())
90
91
92
93