def test_get_ticket_list_without_arg(self): """ 获取工单列表,不传参数 :return: """ url = '/api/v1.0/tickets' response_content_dict = LoonflowApiCall().api_call('get', url) self.assertEqual(response_content_dict.get('code'), -1)
def test_get_ticket_list_with_arg(self): """ 获取工单列表,正确的参数及header :return: """ url = '/api/v1.0/tickets' response_content_dict = LoonflowApiCall().api_call('get', url, {'category': 'all', 'username': '******'}) self.assertEqual(response_content_dict.get('code'), 0)
def test_get_ticket_detail(self): """ 获取工单详情 :return: """ url = '/api/v1.0/tickets/{}'.format(39) result = LoonflowApiCall().api_call('get', url, dict(username='******')) self.assertEqual(result.get('code'), 0)
def test_get_workflow_states(self): """ 获取工作流状态列表 :return: """ workflow_id = 1 url = '/api/v1.0/workflows/{}/states'.format(workflow_id) response_content_dict = LoonflowApiCall().api_call('get', url) self.assertEqual(response_content_dict.get('code'), 0)
def test_get_workflow_list_without_arg(self): """ 获取工作流列表 :return: """ url = '/api/v1.0/workflows' response_content_dict = LoonflowApiCall().api_call('get', url) self.assertEqual(response_content_dict.get('code'), 0) self.assertGreater(len(response_content_dict.get('data')), 1)
def test_get_workflow_state_detail(self): """ 获取状态详情 :return: """ state_id = 3 url = '/api/v1.0/workflows/states/{}'.format(state_id) response_content_dict = LoonflowApiCall().api_call('get', url) self.assertEqual(response_content_dict.get('code'), 0)
def test_get_ticket_detail(self): """ 获取工单详情 :return: """ from apps.ticket.models import TicketRecord last_ticket_id = TicketRecord.objects.filter(is_deleted=0).order_by('-id').first().id url = '/api/v1.0/tickets/{}'.format(last_ticket_id) result = LoonflowApiCall().api_call('get', url, dict(username='******')) self.assertEqual(result.get('code'), 0)
def test_new_ticket(self): """ 新建工单 :return: """ params = dict(title='测试工单0001', leave_start='2018-10-14 09:00:00', leave_end='2018-10-15 09:00:00', leave_days=2, leave_proxy='lisi', leave_type='2', leave_reason='请假原因', workflow_id=1, username='******', transition_id=1) url = '/api/v1.0/tickets' result = LoonflowApiCall().api_call('post', url, params) self.assertEqual(result.get('code'), 0)
def test_get_workflow_init_state(self): """ 获取工作流初始状态 :return: """ from apps.workflow.models import Workflow last_workflow_id = Workflow.objects.filter( is_deleted=0).order_by('-id').first().id url = '/api/v1.0/workflows/{}/init_state'.format(last_workflow_id) response_content_dict = LoonflowApiCall().api_call('get', url) self.assertEqual(response_content_dict.get('code'), -1)
def test_add_ticket_comment(self): """ 测试新增评论 :return: """ from apps.ticket.models import TicketRecord last_ticket_obj = TicketRecord.objects.filter(is_deleted=0).order_by('-id').first() last_ticket_id = last_ticket_obj.id url = '/api/v1.0/tickets/{}/comments'.format(last_ticket_id) result = LoonflowApiCall().api_call('post', url, dict(username='******', suggestion='test for commnet')) self.assertEqual(result.get('code'), 0)
def test_get_ticket_flow_steps(self): """ 测试获取工单step记录 :return: """ from apps.ticket.models import TicketRecord last_ticket_obj = TicketRecord.objects.filter(is_deleted=0).order_by('-id').first() last_ticket_id = last_ticket_obj.id url = '/api/v1.0/tickets/{}/flowsteps'.format(last_ticket_id) result = LoonflowApiCall().api_call('get', url, dict(username='******')) self.assertEqual(result.get('code'), 0)
def test_alter_ticket_state(self): """ 修改工单状态 :return: """ ticket_id = 39 new_state_id = 4 url = '/api/v1.0/tickets/{}/state'.format(ticket_id) result = LoonflowApiCall().api_call('put', url, dict(state_id=new_state_id)) self.assertEqual(result.get('code'), 0)
def test_get_workflow_state_detail(self): """ 获取状态详情 :return: """ from apps.workflow.models import State last_state_id = State.objects.filter( is_deleted=0).order_by('-id').first().id url = '/api/v1.0/workflows/states/{}'.format(last_state_id) response_content_dict = LoonflowApiCall().api_call('get', url) self.assertEqual(response_content_dict.get('code'), -1)
def test_alter_ticket_field_value(self): """ 修改工单字段的值 :return: """ from apps.ticket.models import TicketRecord last_ticket_obj = TicketRecord.objects.filter(is_deleted=0).order_by('-id').first() last_ticket_id = last_ticket_obj.id last_ticket_title = last_ticket_obj.title url = '/api/v1.0/tickets/{}/fields'.format(last_ticket_id) result = LoonflowApiCall().api_call('patch', url, dict(username='******', title=last_ticket_title)) self.assertEqual(result.get('code'), 0)
def test_alter_ticket_state(self): """ 修改工单状态 :return: """ from apps.ticket.models import TicketRecord last_ticket_obj = TicketRecord.objects.filter(is_deleted=0).order_by('-id').first() last_ticket_id = last_ticket_obj.id last_ticket_state_id = last_ticket_obj.state_id url = '/api/v1.0/tickets/{}/state'.format(last_ticket_id) result = LoonflowApiCall().api_call('put', url, dict(username='******', state_id=last_ticket_state_id)) self.assertEqual(result.get('code'), 0)
def test_add_ticket_comment(self): """ 测试新增评论 :return: """ from apps.ticket.models import TicketRecord ticket_id = 39 last_ticket_obj = TicketRecord.objects.get(id=ticket_id) last_ticket_id = last_ticket_obj.id url = '/api/v1.0/tickets/{}/comments'.format(last_ticket_id) result = LoonflowApiCall().api_call( 'post', url, dict(suggestion='test for commnet')) self.assertEqual(result.get('code'), 0)
def test_alter_ticket_field_value(self): """ 修改工单字段的值 :return: """ from apps.ticket.models import TicketRecord ticket_id = 39 ticket_obj = TicketRecord.objects.get(id=ticket_id) ticket_title = ticket_obj.title url = '/api/v1.0/tickets/{}/fields'.format(ticket_id) result = LoonflowApiCall().api_call( 'patch', url, dict(username='******', title='_test'.format(ticket_title))) self.assertEqual(result.get('code'), 0)
def test_get_ticket_transition(self): """ 测试获取工单可以执行的操作 :return: """ from apps.ticket.models import TicketRecord last_ticket_obj = TicketRecord.objects.filter(is_deleted=0).order_by('-id').first() last_ticket_id = last_ticket_obj.id ticket_participant_type_id = last_ticket_obj.participant_type_id ticket_participant = last_ticket_obj.participant if ticket_participant_type_id == constant_service_ins.PARTICIPANT_TYPE_PERSONAL: username = ticket_participant elif ticket_participant_type_id == constant_service_ins.PARTICIPANT_TYPE_MULTI: username = ticket_participant.split(',')[0] url = '/api/v1.0/tickets/{}/transitions'.format(last_ticket_id) result = LoonflowApiCall().api_call('get', url, dict(username=username)) self.assertEqual(result.get('code'), 0)
def get_ticket_list_by_params(self, params): """ 根据参数获取用户工单列表 :param category: :return: """ url = '/api/v1.0/tickets' response_content_dict = LoonflowApiCall().api_call('get', url, params) return response_content_dict
def test_new_ticket(self, gen_ticket_sn, notice_apply_async, hook_apply_async): """ 新建工单 :return: """ gen_ticket_sn.return_value = (True, dict(ticket_sn='ops_202005240001')) notice_apply_async.return_value = True hook_apply_async.return_value = True params = dict(title='测试工单0001', leave_start='2018-10-14 09:00:00', leave_end='2018-10-15 09:00:00', leave_proxy='lisi', leave_type='2', leave_reason='请假原因', workflow_id=1, username='******', transition_id=1) url = '/api/v1.0/tickets' result = LoonflowApiCall().api_call('post', url, params) self.assertEqual(result.get('code'), 0)