Issues (30)

tests/test_webviews.py (2 issues)

1
import unittest
2
from mock import Mock, patch
3
from tests.ditest import DependencyInjectionTestBase
4
5
6
class ViewTests(DependencyInjectionTestBase):
7
8
    def setUp(self):
9
        super(ViewTests, self).setUp()
10
        self.config.dryrun = False
11
        self.img = Mock()
12
        self.request = Mock()
13
        self.request.dependencies = self.dependencies
14
15
    def test_latest(self):
16
        import niprov.views
17
        out = niprov.views.latest(self.request)
18
        self.assertEqual(self.repo.latest(), out['images'])
19
20 View Code Duplication
    def test_by_id(self):
0 ignored issues
show
This code seems to be duplicated in your project.
Loading history...
21
        import niprov.views
22
        self.request.matchdict = {'id':'1a2b3c'}
23
        out = niprov.views.short(self.request)
24
        self.repo.byId.assert_called_with('1a2b3c')
25
        self.assertEqual(self.repo.byId(), out['image'])
26
        self.query.copiesOf.assert_called_with(out['image'])
27
        self.assertEqual(self.query.copiesOf(), out['copies'])
28
29 View Code Duplication
    def test_by_full_location(self):
0 ignored issues
show
This code seems to be duplicated in your project.
Loading history...
30
        import niprov.views
31
        self.request.matchdict = {'host':'her','path':('a','b','c')}
32
        out = niprov.views.location(self.request)
33
        self.query.byLocation.assert_called_with('her:/a/b/c')
34
        self.query.copiesOf.assert_called_with(out['image'])
35
        self.assertEqual(self.query.byLocation(), out['image'])
36
        self.assertEqual(self.query.copiesOf(), out['copies'])
37
38
    def test_stats(self):
39
        import niprov.views
40
        out = niprov.views.stats(self.request)
41
        self.assertEqual(self.repo.statistics(), out['stats'])
42
43
    def test_pipeline_by_id(self):
44
        import niprov.views
45
        self.request.matchdict = {'id':'1a2b3c'}
46
        out = niprov.views.pipeline(self.request)
47
        self.repo.byId.assert_called_with('1a2b3c')
48
        self.pipelineFactory.forFile.assert_called_with(self.repo.byId())
49
        self.assertEqual(self.pipelineFactory.forFile(), out['pipeline'])
50
        self.assertEqual(out['sid'], '1a2b3c')
51
52
    def test_by_project(self):
53
        import niprov.views
54
        self.request.matchdict = {'project':'failcow'}
55
        out = niprov.views.project(self.request)
56
        self.query.byProject.assert_called_with('failcow')
57
        self.assertEqual(self.query.byProject(), out['images'])
58
59
    def test_by_user(self):
60
        import niprov.views
61
        self.request.matchdict = {'user':'failcow'}
62
        out = niprov.views.user(self.request)
63
        self.query.byUser.assert_called_with('failcow')
64
        self.assertEqual(self.query.byUser(), out['images'])
65
66
    def test_by_modality(self):
67
        import niprov.views
68
        self.request.matchdict = {'modality':'failcow'}
69
        out = niprov.views.modality(self.request)
70
        self.query.byModality.assert_called_with('failcow')
71
        self.assertEqual(self.query.byModality(), out['images'])
72
73
    def test_by_subject(self):
74
        import niprov.views
75
        self.request.matchdict = {'subject':'janedoe'}
76
        out = niprov.views.subject(self.request)
77
        self.query.bySubject.assert_called_with('janedoe')
78
        self.assertEqual(self.query.bySubject(), out['images'])
79
80
    def test_search_provides_searchstring_to_template(self):
81
        import niprov.views
82
        self.request.GET = {'text':'hello world'}
83
        out = niprov.views.search(self.request)
84
        self.assertEqual('hello world', out['searchtext'])
85
86
    def test_search_provides_search_results_to_template(self):
87
        import niprov.views
88
        self.request.GET = {'text':'hello world'}
89
        with patch('niprov.views.searching') as searching:
90
            out = niprov.views.search(self.request)
91
            searching.search.assert_called_with('hello world',
92
                                                self.request.dependencies)
93
            self.assertEqual(searching.search(), out['images'])
94
95
    def test_modalities(self):
96
        import niprov.views
97
        out = niprov.views.modalities(self.request)
98
        self.query.allModalities.assert_called_with()
99
        self.assertEqual('modalities', out['categoryPlural'])
100
        self.assertEqual('modality', out['category'])
101
        self.assertEqual(self.query.allModalities(), out['items'])
102
103
    def test_projects(self):
104
        import niprov.views
105
        out = niprov.views.projects(self.request)
106
        self.query.allProjects.assert_called_with()
107
        self.assertEqual('projects', out['categoryPlural'])
108
        self.assertEqual('project', out['category'])
109
        self.assertEqual(self.query.allProjects(), out['items'])
110
111
    def test_users(self):
112
        import niprov.views
113
        out = niprov.views.users(self.request)
114
        self.query.allUsers.assert_called_with()
115
        self.assertEqual('users', out['categoryPlural'])
116
        self.assertEqual('user', out['category'])
117
        self.assertEqual(self.query.allUsers(), out['items'])
118
119
    def test_If_byId_byLocation_return_None_views_return_404(self):
120
        from pyramid.httpexceptions import HTTPNotFound
121
        import niprov.views
122
        self.request.matchdict = {'host':'her','path':('a','b','c'),
123
                                    'id':'1a2b3c'}
124
        self.repo.byId.return_value = None
125
        self.query.byLocation.return_value = None
126
        self.assertRaises(HTTPNotFound, niprov.views.short, self.request)
127
        self.assertRaises(HTTPNotFound, niprov.views.location, self.request)
128
        self.assertRaises(HTTPNotFound, niprov.views.pipeline, self.request)
129
130
131
132
133
134
135