def test_single_like_per_user(self): """Tests if user has current like for an image in likes table. And if a like is stored, then tests that user can dislike - removing like(s) in the likes table under that user""" filename = self.images[0][0] for password, nick, avatar in self.users: users.generate_session(self.db, nick) sessionid = self.get_cookie_value(users.COOKIE_NAME) request.cookies[users.COOKIE_NAME] = sessionid user = users.session_user(self.db) # adds like if user has not yet liked the image if not interface.like_exists(self.db, filename, user): interface.add_like(self.db, filename, user) # there should be a like stored by the user for the image self.assertTrue(interface.like_exists(self.db, filename, user)) # records current number of likes for the image like_count = interface.count_likes(self.db, filename) # unlike the image interface.unlike(self.db, filename, user) # checks that number of likes for image has decremented by 1 # and that the user no longer likes the image self.assertTrue(like_count-1, interface.count_likes(self.db, filename)) self.assertFalse(interface.like_exists(self.db, filename, user))
def test_single_like_per_user(self): """Tests if user has current like for an image in likes table. And if a like is stored, then tests that user can dislike - removing like(s) in the likes table under that user""" filename = self.images[0][0] for password, nick, avatar in self.users: users.generate_session(self.db, nick) sessionid = self.get_cookie_value(users.COOKIE_NAME) request.cookies[users.COOKIE_NAME] = sessionid user = users.session_user(self.db) # adds like if user has not yet liked the image if not interface.like_exists(self.db, filename, user): interface.add_like(self.db, filename, user) # there should be a like stored by the user for the image self.assertTrue(interface.like_exists(self.db, filename, user)) # records current number of likes for the image like_count = interface.count_likes(self.db, filename) # unlike the image interface.unlike(self.db, filename, user) # checks that number of likes for image has decremented by 1 # and that the user no longer likes the image self.assertTrue(like_count - 1, interface.count_likes(self.db, filename)) self.assertFalse(interface.like_exists(self.db, filename, user))
def like(): """Add a like to an existing image""" # get filename info from the submitted form filename = request.forms.get('filename') db = COMP249Db() interface.add_like(db, filename, None) redirect('/')
def like_img(): """Post request to Like image; Upon login, when the user likes an image, that image information is retrieved and the number of likes is increased by adding to the likes table.""" db = COMP249Db() img_liked = request.forms.get('filename') curr_user = None if request.get_cookie(COOKIE_NAME): curr_user = users.session_user(db) interface.add_like(db, img_liked, curr_user) redirect('/')
def like(): """ 处理喜欢图片的请求 :return: 重定向至指定页面 """ filename = request.POST.get('filename') flowTowDataBase = COMP249Db() userNick = users.session_user(db=flowTowDataBase) interface.add_like(db=flowTowDataBase, filename=filename, usernick=userNick) return redirect('/')
def test_add_like(self): """Test that add_like can add a like either anonymously or from another user""" filename = self.images[0][0] # anonymous like count = interface.count_likes(self.db, filename) interface.add_like(self.db, filename) self.assertEqual(count+1, interface.count_likes(self.db, filename), "anonymous like not added") # a like from a user interface.add_like(self.db, filename, self.users[3][1]) self.assertEqual(count+2, interface.count_likes(self.db, filename), "like for known user not added") # like from an unknown user should not be stored interface.add_like(self.db, filename, 'Imposter') self.assertEqual(count+2, interface.count_likes(self.db, filename), "you counted like from unknown user") # like of an unknown image should not be stored interface.add_like(self.db, 'unknownfile.jpg', self.users[3][1]) self.assertEqual(0, interface.count_likes(self.db, 'unknownfile.jpg'), "you counted like from unknown file")
def test_add_like(self): """Test that add_like can add a like either anonymously or from another user""" filename = self.images[0][0] # anonymous like count = interface.count_likes(self.db, filename) interface.add_like(self.db, filename) self.assertEqual(count + 1, interface.count_likes(self.db, filename), "anonymous like not added") # a like from a user interface.add_like(self.db, filename, self.users[3][1]) self.assertEqual(count + 2, interface.count_likes(self.db, filename), "like for known user not added") # like from an unknown user should not be stored interface.add_like(self.db, filename, 'Imposter') self.assertEqual(count + 2, interface.count_likes(self.db, filename), "you counted like from unknown user") # like of an unknown image should not be stored interface.add_like(self.db, 'unknownfile.jpg', self.users[3][1]) self.assertEqual(0, interface.count_likes(self.db, 'unknownfile.jpg'), "you counted like from unknown file")