def test_langid(self): eq_(guess_language(u'I thought it had no texture.'), 'en') eq_(guess_language( u'Je peux manger du verre, cela ne me fait pas mal'), 'fr') eq_(guess_language(u'На всех не угоди́шь'), 'ru') eq_(guess_language(u'角を矯めて牛を殺す'), 'ja') eq_(guess_language(u'您要点什么'), 'zh') eq_(guess_language( u'Esta muy bien este juego, se lo recomiendo a todos'), 'es') eq_(guess_language( u'Esperimentem que vocês irão aprovar tambem!'), 'pt')
def validate(self, attrs): if not getattr(self, 'object'): # If we are creating a rating, then we need to do various checks on # the app. Because these checks need the version as well, we have # to do them here and not in validate_app(). # Assign user and ip_address. It won't change once the review is # created. user = self.request.user attrs['user'] = user attrs['ip_address'] = self.request.META.get('REMOTE_ADDR', '') guessed_lang = guess_language(attrs['body']) if guessed_lang is None: attrs['lang'] = user.lang else: attrs['lang'] = guessed_lang # If the app is packaged, add in the current version. if attrs['addon'].is_packaged: attrs['version'] = attrs['addon'].current_version # Return 409 if the user has already reviewed this app. app = attrs['addon'] qs = self.context['view'].queryset.filter(addon=app, user=user) if app.is_packaged: qs = qs.filter(version=attrs['version']) if qs.exists(): raise Conflict('You have already reviewed this app.') # Return 403 is the app is not public. if not app.is_public(): raise PermissionDenied('The app requested is not public.') # Return 403 if the user is attempting to review their own app. if app.has_author(user): raise PermissionDenied('You may not review your own app.') # Return 403 if not a free app and the user hasn't purchased it. if app.is_premium() and not app.is_purchased(user): raise PermissionDenied("You may not review paid apps you " "haven't purchased.") # Return 403 if the app is not available in the current region. current_region = get_region() if not app.listed_in(region=current_region): raise PermissionDenied('App not available in region "%s".' % current_region.slug) return attrs
def test_langid(self): eq_(guess_language(u'I thought it had no texture.'), 'en') eq_( guess_language( u'Je peux manger du verre, cela ne me fait pas mal'), 'fr') eq_(guess_language(u'На всех не угоди́шь'), 'ru') eq_(guess_language(u'角を矯めて牛を殺す'), 'ja') eq_(guess_language(u'您要点什么'), 'zh') eq_( guess_language( u'Esta muy bien este juego, se lo recomiendo a todos'), 'es') eq_(guess_language(u'Esperimentem que vocês irão aprovar tambem!'), 'pt')
def test_keyword(self): eq_(guess_language(u'Muy bien'), 'es') eq_(guess_language(u'Muito bom o jogo!'), 'pt') eq_(guess_language(u'pretty good. :D'), 'en')
def test_no_text(self): eq_(guess_language(u''), None) eq_(guess_language(u' '), None) eq_(guess_language(u',,!,[]'), None)
def test_unidentifiable(self): eq_(guess_language(u'Like it'), None) eq_(guess_language(u'dsfksadflkj'), None) eq_(guess_language(u'exelente'), None)