Exemplo n.º 1
0
    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))
Exemplo n.º 2
0
    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))
Exemplo n.º 3
0
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('/')
Exemplo n.º 4
0
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('/')
Exemplo n.º 5
0
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('/')
Exemplo n.º 6
0
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('/')
Exemplo n.º 7
0
    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")
Exemplo n.º 8
0
    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")