def recommend_apps(provider_id): random.seed() user = User.objects.get(provider_id=provider_id) if len(user.recommended_apps) < MIN_RECOMMENDED_APPS: user.recommended_apps = [] recommender = Recommender() recommendations = recommender.get_recommendations(User.objects(), user) recommended_apps = [recommendation[1] for recommendation in recommendations] if len(recommended_apps) < MIN_RECOMMENDED_APPS: recommended_apps.extend(add_unused_apps(recommended_apps, user)) for recommended_app in recommended_apps: user.recommended_apps.append(recommended_app) user.save() result_packages = [recommendation.package for recommendation in user.recommended_apps] apps = list(App.objects(package__in=result_packages)) registry.register(App, AppListItemHandler) return jsonpickle.encode(apps, unpicklable=False)
def impl(context): recommender = Recommender() recommendations = recommender.get_recommendations(context.users, context.me) recommendations[0][1].name.should.be.eql("App3")