Beispiel #1
0
def process_calls():
    """
    Go through all "Back Office Third Party/CSC" calls, classifying if open or closed
    :return:
    """
    try:
        sdplus_api = API(os.environ['SDPLUS_ADMIN'], 'http://sdplus/sdpapi/')
        if not sdplus_api:
            raise KeyError
    except KeyError:
        print(
            'Windows environment varible for "SDPLUS_ADMIN" (the API key for sdplus) wasn\'t found. \n'
            'Please correct using ""setx SDPLUS_ADMIN <insert your own SDPLUS key here>" in a command line.'
        )
        sys.exit(1)
    result = []
    all_queues = sdplus_api.request_get_requests(
        'Back Office Third Party/CSC_QUEUE')
    for each_call in all_queues:
        conversations = sdplus_api.request_get_all_conversations(
            each_call['workorderid'])
        each_call['classification'] = classify_call(conversations)
        each_call['Others involved'] = find_all_people_involved(
            conversations, each_call['requester'])
        each_call['CSC open/reopen date'] = find_date_csc_opened_call(
            conversations)
        each_call['CSC severity'] = find_csc_severity(conversations)
        result.append(each_call)
    return result
class RequestTest(unittest.TestCase):
    def setUp(self):
        self.attachment_path = r'c:\file.txt'
        self.technician_id = '12345'
        self.sdplus_api = API(sdplus_api_key, sdplus_base_url)
        fields = {
            'reqtemplate':
            'Default Request',  # or 'General IT Request' which has supplier ref, but also Due by Date,
            'requesttype':
            'Service Request',
            'status':
            'Hold - Awaiting Third Party',
            'requester':
            'Simon Crouch',
            'mode':
            '@Southmead Retained Estate',  # site
            'best contact number':
            '-',
            'Exact Location':
            'white room',
            'group':
            'Back Office Third Party/CSC',
            'assignee':
            'Simon Crouch',
            'subject':
            'This is a test call only - please ignore',
            'description':
            'This is a test call only (description) - please ignore',
            'service':
            '.Lorenzo/Galaxy - IT Templates',  # Service Category
            'category':
            'Clinical Applications Incident',  # Self Service Incident
            'subcategory':
            'Lorenzo',
            'impact':
            '3 Impacts Department',
            'urgency':
            '3 Business Operations Slightly Affected - Requires response within 8 hours of created time'
        }
        result = self.sdplus_api.request_add(fields)
        self.request_id = result['workorderid']
        print('(Created call ' + self.request_id + ')')

    def tearDown(self):
        result = self.sdplus_api.request_delete(self.request_id)
        print(result['response_status'])

    def test_request_close(self):
        self.sdplus_api.request_pickup(self.request_id)
        result = self.sdplus_api.request_close(self.request_id, True)
        self.assertEqual(result['response_status'], 'Success')

    def test_request_edit(self):
        result = self.sdplus_api.request_edit(
            self.request_id,
            {'subject': 'Test subject - now edited successfully'})
        self.assertEqual(result['response_status'], 'Success')

    def test_request_view(self):
        result = self.sdplus_api.request_view(self.request_id)
        self.assertEqual(result['response_status'], 'Success')

    def test_request_get_conversations(self):
        result = self.sdplus_api.request_get_conversations(self.request_id)
        self.assertEqual(result['response_status'], 'Success')

    def test_request_add_attachment(self):
        result = self.sdplus_api.request_add_attachment(
            self.request_id, self.attachment_path)
        self.assertEqual(result['response_status'], 'Success')

    def test_request_add_resolution(self):
        result = self.sdplus_api.request_adding_resolution(
            self.request_id, 'Resolution test text add')
        self.assertEqual(result['response_status'], 'Success')

    def test_request_pickup(self):
        print(self.test_request_pickup.__name__)
        result = self.sdplus_api.request_pickup(self.request_id)
        self.assertEqual(result['response_status'], 'Success')

    def test_request_assign(self):
        result = self.sdplus_api.request_assign(self.request_id,
                                                self.technician_id)
        self.assertEqual(result['response_status'], 'Success')

    def test_request_reply(self):
        fields = {
            'to': '*****@*****.**',
            'cc': '*****@*****.**',
            'subject': 'subject test reply',
            'description': 'Test description reply'
        }
        result = self.sdplus_api.request_reply(self.request_id, fields)
        self.assertEqual(result['response_status'], 'Success')

    def test_request_get_notifications(self):
        result = self.sdplus_api.request_get_notifications(self.request_id)
        self.assertEqual(result['response_status'], 'Success')

    def test_request_get_all_conversations(self):
        result = self.sdplus_api.request_get_all_conversations(self.request_id)
        self.assertEqual(result['response_status'], 'Success')

    def test_request_editing_resolution(self):
        self.sdplus_api.request_adding_resolution(self.request_id,
                                                  'Resolution text on create')
        result = self.sdplus_api.request_editing_resolution(
            self.request_id, 'Resolution test text edit')
        self.assertEqual(result['response_status'], 'Success')

    def test_request_get_resolution(self):
        self.sdplus_api.request_adding_resolution(self.request_id,
                                                  'Resolution text on create')
        result = self.sdplus_api.request_get_resolution(self.request_id)
        self.assertEqual(result['response_status'], 'Success')