def test_builtin_license(self): addon = addon_factory() self.version = addon.current_version license = self.version.license license.update(builtin=18) assert license._constant == LICENSES_BY_BUILTIN[18] result = LicenseSerializer( context={'request': self.request}).to_representation(license) assert result['id'] == license.pk # A request with no ?lang gets you the site default l10n in a dict to # match how non-constant values are returned. assert result['name'] == { 'en-US': unicode(LICENSES_BY_BUILTIN[18].name)} accept_request = APIRequestFactory().get('/') accept_request.LANG = 'de' result = LicenseSerializer( context={'request': accept_request}).to_representation(license) # An Accept-Language should result in a different default though. assert result['name'] == { 'de': unicode(LICENSES_BY_BUILTIN[18].name)} # But a requested lang returns a flat string lang_request = APIRequestFactory().get('/?lang=fr') result = LicenseSerializer( context={'request': lang_request}).to_representation(license) assert result['name'] == unicode(LICENSES_BY_BUILTIN[18].name)
def test_license_serializer_no_url_no_parent(self): # This should not happen (LicenseSerializer should always be called # from a parent VersionSerializer) but we don't want the API to 500 # if that does happens. addon = addon_factory() self.version = addon.current_version license = self.version.license license.update(url=None) result = LicenseSerializer( context={'request': self.request}).to_representation(license) assert result['id'] == license.pk # LicenseSerializer is unable to find the Version, so it falls back to # None. assert result['url'] is None