def test_check_task_requested_by_user_authenticated_deletes_key(self, user):
        """_check_task_requested_by_user deletes the key after checking that 
        an authenticated user requested the task"""
        user.return_value = {'user_id': 33, 'user_ip': None}
        taskrun = TaskRun(task_id=22)
        key = 'pybossa:task_requested:user:33:task:22'
        self.connection.setex(key, 10, True)

        _check_task_requested_by_user(taskrun, self.connection)
        key_deleted = self.connection.get(key) is None

        assert key_deleted is True, key_deleted
    def test_check_task_requested_by_user_anonymous_preserves_key(self, user):
        """_check_task_requested_by_user does not delete the key after checking
        that an anonymous user requested the task (in case many simultaneous
        anonymous users are sharing the same IP"""
        user.return_value = {'user_id': None, 'user_ip': '127.0.0.1'}
        taskrun = TaskRun(task_id=22)
        key = 'pybossa:task_requested:user:127.0.0.1:task:22'
        self.connection.setex(key, 10, True)

        _check_task_requested_by_user(taskrun, self.connection)
        key_deleted = self.connection.get(key) is None

        assert key_deleted is False, key_deleted
    def test_check_task_requested_by_user_anonymous_preserves_key(self, user):
        """_check_task_requested_by_user does not delete the key after checking
        that an anonymous user requested the task (in case many simultaneous
        anonymous users are sharing the same IP"""
        user.return_value = {'user_id': None, 'user_ip': '127.0.0.1'}
        taskrun = TaskRun(task_id=22)
        key = 'pybossa:task_requested:user:127.0.0.1:task:22'
        self.connection.setex(key, 10, True)

        _check_task_requested_by_user(taskrun, self.connection)
        key_deleted = self.connection.get(key) is None

        assert key_deleted is False, key_deleted
    def test_check_task_requested_by_user_authenticated_deletes_key(
            self, user):
        """_check_task_requested_by_user deletes the key after checking that
        an authenticated user requested the task"""
        user.return_value = {'user_id': 33, 'user_ip': None}
        taskrun = TaskRun(task_id=22)
        key = 'pybossa:task_requested:user:33:task:22'
        self.connection.setex(key, 10, True)

        _check_task_requested_by_user(taskrun, self.connection)
        key_deleted = self.connection.get(key) is None

        assert key_deleted is True, key_deleted
    def test_check_task_requested_by_user_anonymous_key_exists(self, user):
        """_check_task_requested_by_user should return True for an anonymous
        user that requested a task"""
        user.return_value = {'user_id': None, 'user_ip': '127.0.0.1'}
        taskrun = TaskRun(task_id=22)
        key = 'pybossa:task_requested:user:127.0.0.1:task:22'
        self.connection.setex(key, 10, True)

        check = _check_task_requested_by_user(taskrun, self.connection)

        assert check is True, check
    def test_check_task_requested_by_user_authenticated_key_exists(self, user):
        """_check_task_requested_by_user should return True for an authorized
        user that requested a task"""
        user.return_value = {'user_id': 33, 'user_ip': None}
        taskrun = TaskRun(task_id=22)
        key = 'pybossa:task_requested:user:33:task:22'
        self.connection.setex(key, 10, True)

        check = _check_task_requested_by_user(taskrun, self.connection)

        assert check is True, check
    def test_check_task_requested_by_user_wrong_key(self, user):
        """_check_task_requested_by_user should return False for a user that did
        not request a task"""
        user.return_value = {'user_id': 33, 'user_ip': None}
        taskrun = TaskRun(task_id=22)
        key = 'pybossa:task_requested:user:88:task:44'
        self.connection.setex(key, 10, True)

        check = _check_task_requested_by_user(taskrun, self.connection)

        assert check is False, check
    def test_check_task_requested_by_user_anonymous_key_exists(self, user):
        """_check_task_requested_by_user should return True for an anonymous
        user that requested a task"""
        user.return_value = {'user_id': None, 'user_ip': '127.0.0.1'}
        taskrun = TaskRun(task_id=22)
        key = 'pybossa:task_requested:user:127.0.0.1:task:22'
        self.connection.setex(key, 10, True)

        check = _check_task_requested_by_user(taskrun, self.connection)

        assert check is True, check
    def test_check_task_requested_by_user_authenticated_key_exists(self, user):
        """_check_task_requested_by_user should return True for an authorized
        user that requested a task"""
        user.return_value = {'user_id': 33, 'user_ip': None}
        taskrun = TaskRun(task_id=22)
        key = 'pybossa:task_requested:user:33:task:22'
        self.connection.setex(key, 10, True)

        check = _check_task_requested_by_user(taskrun, self.connection)

        assert check is True, check
    def test_check_task_requested_by_user_wrong_key(self, user):
        """_check_task_requested_by_user should return False for a user that did
        not request a task"""
        user.return_value = {'user_id': 33, 'user_ip': None}
        taskrun = TaskRun(task_id=22)
        key = 'pybossa:task_requested:user:88:task:44'
        self.connection.setex(key, 10, True)

        check = _check_task_requested_by_user(taskrun, self.connection)

        assert check is False, check