return license information in add-on API (bug 644968)

This commit is contained in:
Ashish Dubey 2011-11-09 00:25:27 +05:30 коммит произвёл Chris Van
Родитель a9314ca314
Коммит 710d718bac
2 изменённых файлов: 42 добавлений и 3 удалений

Просмотреть файл

@ -22,9 +22,19 @@
{% endif %} {% endif %}
</authors> </authors>
<summary>{{ addon.summary|strip_html(new_api) }}</summary> <summary>{{ addon.summary|strip_html(new_api) }}</summary>
<description>{{ addon.description|strip_html(new_api) }}</description> <description>{{ addon.description|strip_html(new_api) }}</description>
{%- if addon.current_version.license -%}
<license>
<name>{{ addon.current_version.license.name }}</name>
<url>
{%- if not addon.current_version.license.url -%}
{{ addon.current_version.license_url()|absolutify }}
{%- else -%}
{{ addon.current_version.license.url|absolutify }}
{%- endif -%}
</url>
</license>
{%- endif -%}
<icon>{{ addon.get_icon_url(32, use_default=False) }}</icon> <icon>{{ addon.get_icon_url(32, use_default=False) }}</icon>
<compatible_applications> <compatible_applications>
{%- if addon.current_version -%} {%- if addon.current_version -%}

Просмотреть файл

@ -252,6 +252,35 @@ class APITest(TestCase):
"""hash="sha256:3808b13ef8341378b9c8305ca64820095""" """hash="sha256:3808b13ef8341378b9c8305ca64820095"""
'4ee7dcd8dce09fef55f2673458bc31f"') '4ee7dcd8dce09fef55f2673458bc31f"')
def test_addon_license(self):
"""Test for license information in response."""
addon = Addon.objects.get(id=3615)
license = addon.current_version.license
license.name = 'My License'
license.url = 'someurl'
license.save()
api_url = '/en-US/firefox/api/%.1f/addon/3615' % api.CURRENT_VERSION
response = self.client.get(api_url)
doc = pq(response.content)
eq_(doc('license').length, 1)
eq_(doc('license name').length, 1)
eq_(doc('license url').length, 1)
eq_(doc('license name').text(), unicode(license.name))
eq_(doc('license url').text(), helpers.absolutify(license.url))
license.url = ''
license.save()
addon.save()
response = self.client.get(api_url)
doc = pq(response.content)
license_url = addon.current_version.license_url()
eq_(doc('license url').text(), helpers.absolutify(license_url))
license.delete()
response = self.client.get(api_url)
doc = pq(response.content)
eq_(doc('license').length, 0)
def test_whitespace(self): def test_whitespace(self):
"""Whitespace is apparently evil for learnmore and install.""" """Whitespace is apparently evil for learnmore and install."""
r = make_call('addon/3615') r = make_call('addon/3615')
@ -465,7 +494,7 @@ class APITest(TestCase):
'<thumbnail type="" width="200" height="150">') '<thumbnail type="" width="200" height="150">')
def test_performance_data(self): def test_performance_data(self):
with self.assertNumQueries(23): with self.assertNumQueries(26):
response = self.client.get('/en-US/firefox/api/%.1f/addon/3615' % response = self.client.get('/en-US/firefox/api/%.1f/addon/3615' %
api.CURRENT_VERSION) api.CURRENT_VERSION)
doc = pq(response.content) doc = pq(response.content)