Exemple #1
0
    def post(self, request):
        """
        request body is expected to look like this:
        {
            "requester": {
                "email": "*****@*****.**",
                "name": "name"
            },
            "subject": "test subject",
            "comment": {
                "body": "message details",
                "uploads": ['file_token'],
            },
            "custom_fields": [
                {
                    "id": '001',
                    "value": 'demo-course'
                }
            ],
            "tags": ["LMS"]
        }
        """
        try:
            proxy_status = create_zendesk_ticket(
                requester_name=request.user.username,
                requester_email=request.user.email,
                subject=request.data['subject'],
                body=request.data['comment']['body'],
                custom_fields=request.data['custom_fields'],
                tags=request.data['tags'])
        except KeyError as key:
            logger.error('Zendesk Proxy Bad Request KeyError: %s', key)
            return Response(status=status.HTTP_400_BAD_REQUEST)

        return Response(status=proxy_status)
Exemple #2
0
    def post(self, request):
        """
        request body is expected to look like this:
        {
            "name": "John Q. Student",
            "email": {
                "from": "*****@*****.**",
                "message": "I, John Q. Student, am having problems for the following reasons: ...",
                "subject": "Help Request"
            },
            "tags": ["zendesk_help_request"]
        }
        """
        try:
            proxy_status = create_zendesk_ticket(
                requester_name=request.data['name'],
                requester_email=request.data['email']['from'],
                subject=request.data['email']['subject'],
                body=request.data['email']['message'],
                tags=request.data['tags']
            )
        except KeyError:
            return Response(status=status.HTTP_400_BAD_REQUEST)

        return Response(
            status=proxy_status
        )
Exemple #3
0
 def test_financial_assistant_ticket(self):
     """ Test Financial Assistent request ticket. """
     ticket_creation_response_data = {
         "ticket": {
             "id": 35436,
             "subject": "My printer is on fire!",
         }
     }
     response_text = json.dumps(ticket_creation_response_data)
     with patch('requests.post',
                return_value=MagicMock(status_code=200,
                                       text=response_text)):
         with patch('requests.put',
                    return_value=MagicMock(status_code=200)):
             status_code = create_zendesk_ticket(
                 requester_name=self.request_data['name'],
                 requester_email=self.request_data['email'],
                 subject=self.request_data['subject'],
                 body=self.request_data['body'],
                 group='Financial Assistance',
                 additional_info=OrderedDict((
                     ('Username', 'test'),
                     ('Full Name', 'Legal Name'),
                     ('Course ID', 'course_key'),
                     ('Annual Household Income', 'Income'),
                     ('Country', 'Country'),
                 )),
             )
             assert status_code == 200
Exemple #4
0
    def post(self, request):
        """
        request body is expected to look like this:
        {
            "name": "John Q. Student",
            "email": {
                "from": "*****@*****.**",
                "message": "I, John Q. Student, am having problems for the following reasons: ...",
                "subject": "Help Request"
            },
            "tags": ["zendesk_help_request"]
        }
        """
        try:
            proxy_status = create_zendesk_ticket(
                requester_name=request.data['name'],
                requester_email=request.data['email']['from'],
                subject=request.data['email']['subject'],
                body=request.data['email']['message'],
                tags=request.data['tags']
            )
        except KeyError:
            return Response(status=status.HTTP_400_BAD_REQUEST)

        return Response(
            status=proxy_status
        )
Exemple #5
0
 def test_unexpected_error_pinging_zendesk(self):
     with patch('requests.post', side_effect=Exception("WHAMMY")):
         status_code = create_zendesk_ticket(
             requester_name=self.request_data['name'],
             requester_email=self.request_data['email'],
             subject=self.request_data['subject'],
             body=self.request_data['body'],
         )
         self.assertEqual(status_code, 500)
Exemple #6
0
    def test_missing_settings(self):
        status_code = create_zendesk_ticket(
            requester_name=self.request_data['name'],
            requester_email=self.request_data['email'],
            subject=self.request_data['subject'],
            body=self.request_data['body'],
        )

        self.assertEqual(status_code, 503)
Exemple #7
0
 def test_unexpected_error_pinging_zendesk(self):
     with patch('requests.post', side_effect=Exception("WHAMMY")):
         status_code = create_zendesk_ticket(
             requester_name=self.request_data['name'],
             requester_email=self.request_data['email'],
             subject=self.request_data['subject'],
             body=self.request_data['body'],
         )
         assert status_code == 500
Exemple #8
0
    def test_missing_settings(self):
        status_code = create_zendesk_ticket(
            requester_name=self.request_data['name'],
            requester_email=self.request_data['email'],
            subject=self.request_data['subject'],
            body=self.request_data['body'],
        )

        assert status_code == 503
Exemple #9
0
    def test_zendesk_status_codes(self, mock_code):
        with patch('requests.post', return_value=MagicMock(status_code=mock_code)):
            status_code = create_zendesk_ticket(
                requester_name=self.request_data['name'],
                requester_email=self.request_data['email'],
                subject=self.request_data['subject'],
                body=self.request_data['body'],
            )

            self.assertEqual(status_code, mock_code)
    def test_zendesk_status_codes(self, mock_code):
        with patch('requests.post', return_value=MagicMock(status_code=mock_code)):
            status_code = create_zendesk_ticket(
                requester_name=self.request_data['name'],
                requester_email=self.request_data['email'],
                subject=self.request_data['subject'],
                body=self.request_data['body'],
            )

            assert status_code == mock_code
Exemple #11
0
    def post(self, request):
        """
        request body is expected to look like this:
        {
            "requester": {
                "email": "*****@*****.**",
                "name": "name"
            },
            "subject": "test subject",
            "comment": {
                "body": "message details",
                "uploads": ['file_token'],
            },
            "custom_fields": [
                {
                    "id": '001',
                    "value": 'demo-course'
                }
            ],
            "tags": ["LMS"]
        }
        """
        try:
            proxy_status = create_zendesk_ticket(
                requester_name=request.data['requester']['name'],
                requester_email=request.data['requester']['email'],
                subject=request.data['subject'],
                body=request.data['comment']['body'],
                custom_fields=request.data['custom_fields'],
                tags=request.data['tags']
            )
        except KeyError:
            return Response(status=status.HTTP_400_BAD_REQUEST)

        return Response(
            status=proxy_status
        )