def get_tasks_response(self, tasks_details_dtos): project_utils = ProjectPresenterImplementation() is_tasks_not_empty = tasks_details_dtos if is_tasks_not_empty: project_dto = tasks_details_dtos[0].project project_details = project_utils.get_project_details_response( project_dto) else: project_details = {} tasks_details_responses = [ self.get_create_task_response(task_details_dto) for task_details_dto in tasks_details_dtos ] tasks_details_response = [] for task_details_response in tasks_details_responses: task_details_response.pop('project') tasks_details_response.append(task_details_response) response = { "total_tasks": len(tasks_details_dtos), "project": project_details, "tasks": tasks_details_response } return response
def test_get_project_details_response(self, snapshot): #arrange presenter = ProjectPresenterImplementation() #act project_details = presenter.get_project_details_response( project_details_dto=project_details_dto) #assert snapshot.assert_match(project_details, 'project_details')
def test_raise_invalid_offset_value_exception(self, snapshot): #arrange presenter = ProjectPresenterImplementation() #act with pytest.raises(BadRequest) as error: presenter.raise_invalid_offset_value_exception() #assert error_message = str(error.value) snapshot.assert_match(error_message, 'error_message')
def test_raise_unauthorized_developer_exception(self, snapshot): #arrange presenter = ProjectPresenterImplementation() #act with pytest.raises(Unauthorized) as error: presenter.raise_unauthorized_developer_exception() #assert error_message = str(error.value) snapshot.assert_match(error_message, 'error_message')
def test_raise_invalid_transition_exception(self, snapshot): #arrange presenter = ProjectPresenterImplementation() #act with pytest.raises(NotFound) as error: presenter.raise_invalid_transition_exception() #assert error_message = str(error.value) snapshot.assert_match(error_message, 'error_message')
def test_get_projects_response(self, snapshot): #arrange presenter = ProjectPresenterImplementation() #act projects_details = presenter.get_projects_response( total_projects_count=1, all_projects_details_dtos=projects_details_dtos) #assert snapshot.assert_match(projects_details, 'projects_details')
def api_wrapper(*args, **kwargs): # ---------MOCK IMPLEMENTATION--------- user = kwargs['user'] request_data = kwargs['request_data'] project_storage = ProjectStorageImplementation() task_storage = TaskStorageImplementation() task_presenter = TaskPresenterImplementation() project_presenter = ProjectPresenterImplementation() interactor = CreateTaskInteractor( project_storage=project_storage, task_storage=task_storage ) print("*"*100,"\n"*5,request_data['state_id'],"\n"*10) project_id = kwargs['project_id'] user_id = user.user_id task_data = { "project_id": project_id, "issue_type": request_data['issue_type'], "title": request_data['title'], "description": request_data['description'], "state_id": request_data['state_id'] } task_details = interactor.create_task_wrapper( user_id=user_id, task_data=task_data, project_presenter=project_presenter, task_presenter=task_presenter ) print("\n"*5,task_details,"\n"*5) response_data = json.dumps(task_details) return HttpResponse(response_data, status=201)
def api_wrapper(*args, **kwargs): # ---------MOCK IMPLEMENTATION--------- user = kwargs['user'] request_data = kwargs['request_data'] storage = ProjectStorageImplementation() presenter = ProjectPresenterImplementation() interactor = CreateProjectInteractor( storage=storage ) user_id = user.user_id developers = request_data.get('developers') is_developers_empty = not developers if is_developers_empty: developers = [] project_data = { "name": request_data['name'], "description": request_data['description'], "workflow_id": request_data['workflow_id'], "project_type": request_data['project_type'], "developers": developers } project_details = interactor.create_project_wrapper( user_id=user_id, project_data=project_data, presenter=presenter ) project_details['success_message'] = "Project Created Succesfully" response_data = json.dumps(project_details) return HttpResponse(response_data, status=201)
def api_wrapper(*args, **kwargs): # ---------MOCK IMPLEMENTATION--------- user = kwargs['user'] project_id = kwargs['project_id'] task_id = kwargs['task_id'] project_storage = ProjectStorageImplementation() task_storage = TaskStorageImplementation() task_presenter = TaskPresenterImplementation() project_presenter = ProjectPresenterImplementation() interactor = GetStatesForTaskInteractor( project_storage=project_storage, task_storage=task_storage) task_state_data = { "user_id": user.user_id, "project_id": project_id, "task_id": task_id } task_states = \ interactor.get_states_for_task_based_on_current_state_wrapper( task_state_data, project_presenter, task_presenter) response_data = json.dumps(task_states) return HttpResponse(response_data, status=200)
def api_wrapper(*args, **kwargs): # ---------MOCK IMPLEMENTATION--------- user = kwargs['user'] request_data = kwargs['request_data'] project_id = kwargs['project_id'] task_id = kwargs['task_id'] to_state_id = request_data['to_state_id'] project_storage = ProjectStorageImplementation() task_storage = TaskStorageImplementation() task_presenter = TaskPresenterImplementation() project_presenter = ProjectPresenterImplementation() interactor = GetStatesTransitionDetailsInteractor( project_storage=project_storage, task_storage=task_storage) transition_details_query_dict = { "user_id": user.user_id, "project_id": project_id, "task_id": task_id, "to_state_id": to_state_id } states_transition_details = interactor\ .get_states_transition_details_wrapper(transition_details_query_dict, project_presenter, task_presenter) response_data = json.dumps(states_transition_details) return HttpResponse(response_data, status=200)
def get_create_task_response(self, task_details_dto): project_utils = ProjectPresenterImplementation() project_dto = task_details_dto.project project_details = project_utils.get_project_details_response( project_dto) assignee_id = task_details_dto.assignee_id task_details_response = { "project": project_details, "task_id": task_details_dto.task_id, "issue_type": task_details_dto.issue_type, "title": task_details_dto.title, "assignee_id": assignee_id, "description": task_details_dto.description, "state": task_details_dto.state } return task_details_response
def api_wrapper(*args, **kwargs): # ---------MOCK IMPLEMENTATION--------- user = kwargs['user'] project_id = kwargs['project_id'] project_storage = ProjectStorageImplementation() task_storage = TaskStorageImplementation() task_presenter = TaskPresenterImplementation() project_presenter = ProjectPresenterImplementation() interactor = GetTasksInteractor(project_storage=project_storage, task_storage=task_storage) user_id = user.user_id tasks_details = interactor.get_tasks_wrapper( user_id=user_id, project_id=project_id, project_presenter=project_presenter, task_presenter=task_presenter) response_data = json.dumps(tasks_details) return HttpResponse(response_data, status=200)
def api_wrapper(*args, **kwargs): # ---------MOCK IMPLEMENTATION--------- user = kwargs['user'] query_params = kwargs['request_query_params'].__dict__ project_storage = ProjectStorageImplementation() project_presenter = ProjectPresenterImplementation() interactor = GetProjectsInteractor(project_storage=project_storage) user_id = user.user_id limit = query_params.get('limit', DEFAULT_LIMIT) offset = query_params.get('offset', DEFAULT_OFFSET) projects_details = interactor.get_projects_wrapper( user_id=user_id, offset=offset, limit=limit, project_presenter=project_presenter) response_data = json.dumps(projects_details) return HttpResponse(response_data, status=200)
def api_wrapper(*args, **kwargs): # ---------MOCK IMPLEMENTATION--------- user = kwargs['user'] request_data = kwargs['request_data'] project_storage = ProjectStorageImplementation() task_storage = TaskStorageImplementation() task_presenter = TaskPresenterImplementation() project_presenter = ProjectPresenterImplementation() interactor = TaskStateTransitionInteractor(project_storage=project_storage, task_storage=task_storage) project_id = kwargs['project_id'] task_id = kwargs['task_id'] checklist = request_data['checklist'] user_id = user.user_id update_task_state_data = { "user_id": user_id, "project_id": project_id, "task_id": task_id, "from_state_id": request_data.get('from_state_id'), "to_state_id": request_data.get('to_state_id'), "checklist": checklist } task_details = interactor.update_task_state_wrapper( update_task_state_data, project_presenter=project_presenter, task_presenter=task_presenter) response_data = json.dumps(task_details) return HttpResponse(response_data, status=201)