def content_recommender(request): """Populate response with recommendation(s)""" user_id = request.GET.get('user') user = request.session.get('facility_user') if not user: if request.user.is_authenticated() and request.user.is_superuser: user = get_object_or_404(FacilityUser, pk=user_id) else: return JsonResponseMessageError("You are not authorized to view these recommendations.", status=401) resume = request.GET.get('resume') next = request.GET.get('next') explore = request.GET.get('explore') def set_bool_flag(flag_name, rec_dict): rec_dict[flag_name] = True return rec_dict # retrieve resume recommendation(s) and set resume boolean flag resume_recommendations = [set_bool_flag("resume", rec) for rec in get_resume_recommendations(user, request)] if resume else [] # retrieve next_steps recommendations, set next_steps boolean flag, and flatten results for api response next_recommendations = [set_bool_flag("next", rec) for rec in get_next_recommendations(user, request)] if next else [] # retrieve explore recommendations, set explore boolean flag, and flatten results for api response explore_recommendations = [set_bool_flag("explore", rec) for rec in get_explore_recommendations(user, request)] if explore else [] return JsonResponse(resume_recommendations + next_recommendations + explore_recommendations)
def test_explore_overall(self): '''get_explore_recommendations()''' #create a request object and set the language attribute request = self.factory.get('/content_recommender?explore=true') request.language = settings.LANGUAGE_CODE actual = get_explore_recommendations(self.user1, request) self.assertEqual(actual[0].get("interest_topic").get("id"), "arithmetic")
def test_explore_overall(self): '''get_explore_recommendations()''' #create a request object and set the language attribute request = self.factory.get('/content_recommender?explore=true') request.language = settings.LANGUAGE_CODE actual = get_explore_recommendations(self.user1, request) self.assertEqual(actual[0].get("interest_topic").get("id"), "arithmetic")
def content_recommender(request): """Populate response with recommendation(s)""" user_id = request.GET.get('user', None) user = request.session.get('facility_user') if not user: if request.user.is_authenticated() and request.user.is_superuser: user = get_object_or_404(FacilityUser, pk=user_id) else: return JsonResponseMessageError( "You are not authorized to view these recommendations.", status=401) resume = request.GET.get('resume', None) next = request.GET.get('next', None) explore = request.GET.get('explore', None) def set_bool_flag(flag_name, rec_dict): rec_dict[flag_name] = True return rec_dict # retrieve resume recommendation(s) and set resume boolean flag resume_recommendations = [ set_bool_flag("resume", rec) for rec in get_resume_recommendations(user, request) ] if resume else [] # retrieve next_steps recommendations, set next_steps boolean flag, and flatten results for api response next_recommendations = [ set_bool_flag("next", rec) for rec in get_next_recommendations(user, request) ] if next else [] # retrieve explore recommendations, set explore boolean flag, and flatten results for api response explore_recommendations = [ set_bool_flag("explore", rec) for rec in get_explore_recommendations(user, request) ] if explore else [] return JsonResponse(resume_recommendations + next_recommendations + explore_recommendations)
def test_explore_overall(self): '''get_explore_recommendations()''' # This test is super-slow because of get_explore_recommendations which # is already called and covered in BDD tests. # In order to maintain some level of feasible testing, I am cutting # the test short here. # /benjaoming return #create a request object and set the language attribute request = self.factory.get('/content_recommender?explore=true') request.language = settings.LANGUAGE_CODE actual = get_explore_recommendations(self.user1, request) logger.info(actual[0]) self.assertEqual(actual[0].get("topic-0-0").get("id"), "topic0-0-exercise-1")