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
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)
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
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
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)
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)
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)
def post(self, fields): with session_wrapper() as session: task = TaskModel(**fields) session.add(task) session.flush() return form_output(task, self._fields), CREATED