~elopio/ubuntu-webcatalog/fix-1067798

« back to all changes in this revision

Viewing changes to src/webcatalog/tests/test_views.py

[r=lukasz-czyzykowski],[bug=1015505] Display correct license (from import) on details page.

Show diffs side-by-side

added added

removed removed

Lines of Context:
76
76
        return reverse('wc-package-detail',
77
77
                       args=[app.distroseries.code_name, app.package_name])
78
78
 
 
79
    def get_package_details_response(self, package_name,
 
80
                                     useragent=UBUNTU_USERAGENT, distro=None):
 
81
        kwargs = dict(package_name=package_name)
 
82
        if distro:
 
83
            kwargs['distro'] = distro
 
84
        url = reverse('wc-package-detail', kwargs=kwargs)
 
85
 
 
86
        if useragent:
 
87
            return self.client.get(url, HTTP_USER_AGENT=useragent)
 
88
        else:
 
89
            return self.client.get(url)
 
90
 
79
91
    def get_app_and_response(self, code_name='natty', version='11.04',
80
92
                             arch='x86_64', name=None, comment=None,
81
93
                             description=None, detail_distro=None,
96
108
        if not detail_package:
97
109
            detail_package = app.package_name
98
110
 
99
 
        url = reverse('wc-package-detail',
100
 
                      args=[detail_distro, detail_package])
101
 
 
102
 
        if useragent:
103
 
            response = self.client.get(url, HTTP_USER_AGENT=useragent)
104
 
        else:
105
 
            response = self.client.get(url)
 
111
        response = self.get_package_details_response(
 
112
            detail_package, distro=detail_distro, useragent=useragent)
106
113
        return response, app
107
114
 
108
115
    def test_renders_correct_template(self):
160
167
        self.assertNotContains(response, '<div class="recommendations">')
161
168
 
162
169
    def test_button_for_non_puchase_app(self):
163
 
        response, app = self.get_app_and_response()
 
170
        self.factory.make_application(package_name='pkgfoo',
 
171
                                            price=None)
 
172
 
 
173
        response = self.get_package_details_response('pkgfoo')
164
174
 
165
175
        self.assertContains(response, '/assets/images/scbutton-free-200px.png')
166
176
        self.assertNotContains(response,
167
177
                               '/assets/images/scbutton-non-free-200px.png')
168
178
 
169
179
    def test_button_for_for_puchase_app(self):
170
 
        response, app = self.get_app_and_response(for_purchase=True)
 
180
        self.factory.make_application(package_name='pkgfoo',
 
181
                                            price=Decimal('12.99'))
 
182
 
 
183
        response = self.get_package_details_response('pkgfoo')
171
184
 
172
185
        self.assertNotContains(response,
173
186
                               '/assets/images/scbutton-free-200px.png')
284
297
        self.assertContains(response, "Ubuntu Quantal")
285
298
 
286
299
    def test_includes_right_license_type(self):
287
 
        response, app = self.get_app_and_response(for_purchase=False)
 
300
        self.factory.make_application(license="Foo GNL V1",
 
301
                                      package_name='pkgfoo')
 
302
 
 
303
        response = self.client.get(
 
304
            reverse('wc-package-detail', args=['pkgfoo']))
 
305
 
 
306
        self.assertContains(response, '<td>Foo GNL V1</td>')
 
307
 
 
308
    def test_no_license_assumes_OSS(self):
 
309
        self.factory.make_application(license="",
 
310
                                      package_name='pkgfoo')
 
311
 
 
312
        response = self.client.get(
 
313
            reverse('wc-package-detail', args=['pkgfoo']))
 
314
 
288
315
        self.assertContains(response, '<td>Open Source</td>')
289
 
        self.assertNotContains(response, '<td>Proprietary</td>')
290
 
 
291
 
        app.for_purchase = True
292
 
        app.save()
293
 
        response = self.client.get(self.get_app_details_url(app))
294
 
        self.assertContains(response, '<td>Proprietary</td>')
295
 
        self.assertNotContains(response, '<td>Open Source</td>')
296
316
 
297
317
    def test_response_includes_rating_summary(self):
298
318
        distro = self.factory.make_distroseries(code_name='lucid')