Beispiel #1
0
    def get(self, fields):
        """
        :param id:
        :return:
        """
        with session_wrapper() as session:
            query = session.query(TaskModel)

            title, done, limit, offset = [
                fields.get(key) for key in ("title", "done", "limit", "offset")
            ]
            if title is not None:
                query = query.filter(TaskModel.title.like(title))

            if done is not None:
                query = query.filter(TaskModel.done == done)

            if limit is not None:
                query = query.limit(limit)

            if offset is not None:
                query = query.offset(offset)

            tasks = query.all()

            return form_output(tasks, self._fields), OK
Beispiel #2
0
    def test_get_all_tasks_filter_by_all(self):
        with patch('backend.api.handlers.tasks.session_wrapper'
                   ) as session_wrapper_mock:

            session_wrapper_mock.return_value = SessionWrapper(
                session=self.session)

            done_tasks = list()
            for i in range(5):
                is_done = i % 2 == 0
                task = TaskModel(
                    **self._task_data(counter=int(is_done), done=is_done))
                if is_done:
                    done_tasks.append(task)

                self.session.add(task)

            self.session.commit()

            params = {"title": "task 1", "done": "true"}

            expected_result = form_output(done_tasks, TaskBase._fields)

            r = self.client.get('/tasks', query_string=params)
            self.assertEquals(r.json, expected_result)
Beispiel #3
0
    def get(self, fields, id):
        """
        :param id:
        :return:
        """
        with session_wrapper() as session:
            task = session.query(TaskModel).get(id)

            if task is None:
                return "", NOT_FOUND

            return form_output(task, self._fields), OK
Beispiel #4
0
    def put(self, fields, id):
        with session_wrapper() as session:
            task = session.query(TaskModel).get(id)

            if task is None:
                return "", NOT_FOUND

            for key, value in fields.iteritems():
                setattr(task, key, value)

            session.flush()

            return form_output(task, self._fields), OK
Beispiel #5
0
    def test_get_task_by_id(self):
        with patch("backend.api.handlers.tasks.session_wrapper") as session_wrapper_mock:

            session_wrapper_mock.return_value = SessionWrapper(session=self.session)

            tasks = list()
            for i in range(5):
                tasks.append(TaskModel(**self._task_data(counter=i)))
                self.session.add(tasks[-1])

            self.session.commit()

            expected_result = form_output(tasks[2], TaskBase._fields)

            r = self.client.get("/tasks/%d" % tasks[2].id)
            self.assertEquals(r.json, expected_result)
Beispiel #6
0
    def test_get_task_by_id(self):
        with patch('backend.api.handlers.tasks.session_wrapper'
                   ) as session_wrapper_mock:

            session_wrapper_mock.return_value = SessionWrapper(
                session=self.session)

            tasks = list()
            for i in range(5):
                tasks.append(TaskModel(**self._task_data(counter=i)))
                self.session.add(tasks[-1])

            self.session.commit()

            expected_result = form_output(tasks[2], TaskBase._fields)

            r = self.client.get('/tasks/%d' % tasks[2].id)
            self.assertEquals(r.json, expected_result)
Beispiel #7
0
    def test_get_all_tasks_filter_by_all(self):
        with patch("backend.api.handlers.tasks.session_wrapper") as session_wrapper_mock:

            session_wrapper_mock.return_value = SessionWrapper(session=self.session)

            done_tasks = list()
            for i in range(5):
                is_done = i % 2 == 0
                task = TaskModel(**self._task_data(counter=int(is_done), done=is_done))
                if is_done:
                    done_tasks.append(task)

                self.session.add(task)

            self.session.commit()

            params = {"title": "task 1", "done": "true"}

            expected_result = form_output(done_tasks, TaskBase._fields)

            r = self.client.get("/tasks", query_string=params)
            self.assertEquals(r.json, expected_result)
Beispiel #8
0
 def post(self, fields):
     with session_wrapper() as session:
         task = TaskModel(**fields)
         session.add(task)
         session.flush()
         return form_output(task, self._fields), CREATED