Ejemplo n.º 1
0
    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