def test_get_my_favorite_ids(self): for ele in self.staffs: do_toggle_favorite(self.owner, 1, ele.user.id) # repeat add same object, # the function 'do_toggle_favorite' shouldn't raise error do_toggle_favorite(self.owner, 1, ele.user.id) for ele in self.organizations: do_toggle_favorite(self.owner, 2, ele.id) favs = get_my_favorite_ids(self.owner, object_type_flag=OBJECT_TYPE_FLAG_MHLUSER) self.assertEqual(len(self.staffs), len(favs)) favs = get_my_favorite_ids(self.owner, object_type_flag=OBJECT_TYPE_FLAG_ORG) self.assertEqual(len(self.organizations), len(favs)) favs = get_my_favorite_ids(self.owner) self.assertEqual(len(self.staffs) + len(self.organizations), len(favs)) for ele in self.staffs: do_toggle_favorite(self.owner, 1, ele.user.id, is_favorite=False) for ele in self.organizations: do_toggle_favorite(self.owner, 2, ele.id, is_favorite=False) favs = get_my_favorite_ids(self.owner) self.assertEqual(0, len(favs))
def toggle_favorite(request): owner = request.session['MHL_Users']['MHLUser'] if (request.method == 'POST'): form = ToggleFavoriteForm(request.POST) else: form = ToggleFavoriteForm(request.GET) if form.is_valid(): object_type_flag = form.cleaned_data["object_type_flag"] object_id = form.cleaned_data["object_id"] is_favorite = form.cleaned_data["is_favorite"] do_toggle_favorite(owner, object_type_flag, object_id, is_favorite=is_favorite) return HttpResponse("ok") else: err_obj = { 'errors': form.errors, } return HttpResponseBadRequest(json.dumps(err_obj), mimetype='application/json')
def test_get_my_favorite(self): for ele in self.staffs: do_toggle_favorite(self.owner, 1, ele.user.id) # repeat add same object, # the function 'do_toggle_favorite' shouldn't raise error do_toggle_favorite(self.owner, 1, ele.user.id) for ele in self.organizations: do_toggle_favorite(self.owner, 2, ele.id) favs = get_my_favorite(self.owner, object_type_flag=OBJECT_TYPE_FLAG_MHLUSER) self.assertEqual(len(self.staffs), len(favs)) favs = get_my_favorite(self.owner, object_type_flag=OBJECT_TYPE_FLAG_ORG) self.assertEqual(len(self.organizations), len(favs)) favs = get_my_favorite(self.owner) self.assertEqual(len(self.staffs)+len(self.organizations), len(favs)) for ele in self.staffs: do_toggle_favorite(self.owner, 1, ele.user.id, is_favorite=False) for ele in self.organizations: do_toggle_favorite(self.owner, 2, ele.id, is_favorite=False) favs = get_my_favorite(self.owner) self.assertEqual(0, len(favs))
def toggle_favorite(request): if (request.method != 'POST'): return err_GE002() owner = request.user form = ToggleFavoriteForm(request.POST) if (not form.is_valid()): return err_GE031(form) object_type_flag = form.cleaned_data["object_type_flag"] object_id = form.cleaned_data["object_id"] is_favorite = form.cleaned_data["is_favorite"] do_toggle_favorite(owner, object_type_flag, object_id, is_favorite=is_favorite) response = { 'data': {}, 'warnings': {}, } return HttpResponse(content=json.dumps(response), mimetype='application/json')
def setUpClass(cls): clean_db_datas() cls.owner = create_user('TestProvider', "Li", 'Wen', 'demo') staffs = [] for i in range(10): user_name = "".join(["Staff1_", str(i)]) first_name = "".join(["Test1_", str(i)]) user = create_user(user_name, first_name, 'S', 'demo', uklass=OfficeStaff) staffs.append(user) cls.staffs = staffs cls.organizations = create_multiple_organizations() for ele in cls.staffs: do_toggle_favorite(cls.owner, 1, ele.user.id) # repeat add same object, # the function 'do_toggle_favorite' shouldn't raise error do_toggle_favorite(cls.owner, 1, ele.user.id) for ele in cls.organizations: do_toggle_favorite(cls.owner, 2, ele.id)