def test_users_language_cache(self): """ [recommendation.filter.Language] Test user in language cache system """ for u in USERS: user = User.objects.get(external_id=u["external_id"]) for loc in user.locales.all(): assert loc.locale_id in Locale.get_user_locales(user.pk), \ "Locale %s for user %s is not in cache (%s)" % (loc, user, Locale.get_user_locales(user.pk))
def __call__(self, user, early_recommendation, size=None, **kwargs): """ Call the filter """ unsupported_langs = Locale.get_user_locales(user.pk).symmetric_difference(Locale.get_all_locales()) #print list(Locale.items_by_locale[l] for l in unsupported_langs) unsupported_items = set(chain(*(Locale.get_items_by_locale(l) for l in unsupported_langs))) for item in unsupported_items: if not any(x in Locale.get_item_locales(item) for x in Locale.get_user_locales(user.pk)): early_recommendation[item-1] = -1000 return early_recommendation