def test_validate_400__error_cause_no_summary(self):
        response1 = {"errorCauses": [{}], "errorCode": 1234}
        status_code = 400

        response2, message, error_code = _validate(response1, status_code)

        self.assertFalse(response2)
        self.assertEqual("Okta returned 400.", message)
    def test_validate_200(self):
        response1 = {"key": "value"}
        status_code = 200

        response2, message, error_code = _validate(response1, status_code)

        self.assertIs(response1, response2)
        self.assertEqual("Success", message)
        self.assertIsNone(error_code)
    def test_validate_400_no_error_cause_and_error_code(self):
        response1 = {"errorSummary": "some other error", "errorCode": 1234}
        status_code = 400

        response2, message, error_code = _validate(response1, status_code)

        self.assertFalse(response2)
        self.assertEqual(response1["errorSummary"], message)
        self.assertEqual(response1["errorCode"], error_code)
    def test_validate_400_error_summary_no_error_code(self):
        response1 = {"errorCauses": [{"errorSummary": "some_error"}]}
        status_code = 400

        response2, message, error_code = _validate(response1, status_code)

        self.assertFalse(response2)
        self.assertEqual(response1["errorCauses"][0]["errorSummary"], message)
        self.assertIsNone(error_code)
    def test_validate_200(self):
        response1 = {'key': 'value'}
        status_code = 200

        response2, message, error_code = _validate(response1, status_code)

        self.assertIs(response1, response2)
        self.assertEqual('Success', message)
        self.assertIsNone(error_code)
    def test_validate_400_no_error(self):
        response1 = {
            'errorCode': 1234,
        }
        status_code = 400

        response2, message, error_code = _validate(response1, status_code)

        self.assertFalse(response2)
        self.assertEqual('Okta returned 400.', message)
    def test_validate_400_no_error_cause_and_error_code(self):
        response1 = {
            'errorSummary': 'some other error',
            'errorCode': 1234,
        }
        status_code = 400

        response2, message, error_code = _validate(response1, status_code)

        self.assertFalse(response2)
        self.assertEqual(response1['errorSummary'], message)
        self.assertEqual(response1['errorCode'], error_code)
    def test_validate_400_error_summary_no_error_code(self):
        response1 = {
            'errorCauses': [{
                'errorSummary': 'some_error'
            }],
        }
        status_code = 400

        response2, message, error_code = _validate(response1, status_code)

        self.assertFalse(response2)
        self.assertEqual(response1['errorCauses'][0]['errorSummary'], message)
        self.assertIsNone(error_code)