Example #1
0
    def test_with_error_handling_ignore(self):
        result = Transport._with_error_handling(FakeResponse(),
                                                EmptyResponse(), IGNORE,
                                                'json').parsed
        self.assertIsNone(result)
        result = Transport._with_error_handling(FakeResponse(), RuntimeError(),
                                                IGNORE, 'json').parsed
        self.assertIsNone(result)
        result = Transport._with_error_handling(FakeResponse(), HTTPError(),
                                                IGNORE, 'json').parsed
        self.assertIsNone(result)

        result = Transport._with_error_handling(FakeResponse(),
                                                EmptyResponse(), IGNORE,
                                                'xml').parsed
        self.assertIsNone(result)
        result = Transport._with_error_handling(FakeResponse(), RuntimeError(),
                                                IGNORE, 'xml').parsed
        self.assertIsNone(result)
        result = Transport._with_error_handling(FakeResponse(), HTTPError(),
                                                IGNORE, 'xml').parsed
        self.assertIsNone(result)

        result = Transport._with_error_handling(
            FakeResponse(content='{"valid": 1}'), HTTPError(), IGNORE,
            'json').parsed
        self.assertIsNotNone(result)
        self.assertTrue('valid' in result)
        self.assertEqual(result['valid'], 1)
        result = Transport._with_error_handling(
            FakeResponse(content='<valid>1</valid>'), HTTPError(), IGNORE,
            'xml').parsed
        self.assertIsNotNone(result)
        self.assertEqual(result.tag, 'valid')
        self.assertEqual(result.text, '1')
    def test_with_error_handling_graceful(self):
        result = Transport._with_error_handling(
            FakeResponse(), EmptyResponse(), GRACEFUL, 'json')
        self.assertTrue(result is not None)
        self.assertEqual(None, result.parsed)
        result = Transport._with_error_handling(
            FakeResponse(), EmptyResponse(), GRACEFUL, 'xml')
        self.assertTrue(result is not None)
        self.assertEqual(None, result.parsed)

        result = Transport._with_error_handling(
            FakeResponse(content='{"valid": 1}', status_code=429),
            HTTPError(), GRACEFUL, 'json'
        ).parsed
        self.assertTrue(result is not None)
        self.assertTrue('valid' in result)
        self.assertEqual(result['valid'], 1)

        result = Transport._with_error_handling(
            FakeResponse(content='<valid>1</valid>', status_code=429),
            HTTPError(), GRACEFUL, 'xml'
        ).parsed
        self.assertTrue(result is not None)
        self.assertEqual(result.tag, 'valid')
        self.assertEqual(result.text, '1')

        result = Transport._with_error_handling(
            FakeResponse(content='invalid', status_code=429),
            HTTPError(), GRACEFUL, 'json'
        ).parsed
        self.assertEqual(None, result)

        try:
            result = Transport._with_error_handling(
                FakeResponse(content='invalid', status_code=429),
                HTTPError(), GRACEFUL, 'xml'
            ).parsed
        except Exception as e:
            print(e)

        self.assertEqual(None, result)

        for format in ['json', 'xml']:
            self.assertRaises(HTTPError,
                              Transport._with_error_handling,
                              FakeResponse(), HTTPError(), GRACEFUL, format)
            self.assertRaises(RuntimeError,
                              Transport._with_error_handling,
                              FakeResponse(), RuntimeError(), GRACEFUL, format)
Example #3
0
    def test_with_error_handling_graceful(self):
        result = Transport._with_error_handling(FakeResponse(),
                                                EmptyResponse(), GRACEFUL,
                                                'json')
        self.assertIsNotNone(result)
        self.assertIsNone(result.parsed)
        result = Transport._with_error_handling(FakeResponse(),
                                                EmptyResponse(), GRACEFUL,
                                                'xml')
        self.assertIsNotNone(result)
        self.assertIsNone(result.parsed)

        result = Transport._with_error_handling(
            FakeResponse(content='{"valid": 1}', status_code=429), HTTPError(),
            GRACEFUL, 'json').parsed
        self.assertIsNotNone(result)
        self.assertTrue('valid' in result)
        self.assertEqual(result['valid'], 1)
        result = Transport._with_error_handling(
            FakeResponse(content='<valid>1</valid>', status_code=429),
            HTTPError(), GRACEFUL, 'xml').parsed
        self.assertIsNotNone(result)
        self.assertEqual(result.tag, 'valid')
        self.assertEqual(result.text, '1')

        result = Transport._with_error_handling(
            FakeResponse(content='invalid', status_code=429), HTTPError(),
            GRACEFUL, 'json').parsed
        self.assertIsNone(result)
        result = Transport._with_error_handling(
            FakeResponse(content='invalid', status_code=429), HTTPError(),
            GRACEFUL, 'xml').parsed
        self.assertIsNone(result)

        with self.assertRaises(HTTPError):
            Transport._with_error_handling(FakeResponse(), HTTPError(),
                                           GRACEFUL, 'json')
        with self.assertRaises(RuntimeError):
            Transport._with_error_handling(FakeResponse(), RuntimeError(),
                                           GRACEFUL, 'json')
        with self.assertRaises(HTTPError):
            Transport._with_error_handling(FakeResponse(), HTTPError(),
                                           GRACEFUL, 'xml')
        with self.assertRaises(RuntimeError):
            Transport._with_error_handling(FakeResponse(), RuntimeError(),
                                           GRACEFUL, 'xml')
Example #4
0
    def test_with_error_handling_ignore(self):
        result = Transport._with_error_handling(FakeResponse(),
                                                EmptyResponse(), IGNORE,
                                                'json').parsed
        self.assertEqual(None, result)
        result = Transport._with_error_handling(FakeResponse(), RuntimeError(),
                                                IGNORE, 'json').parsed
        self.assertEqual(None, result)
        result = Transport._with_error_handling(FakeResponse(), HTTPError(),
                                                IGNORE, 'json').parsed
        self.assertEqual(None, result)

        try:
            result = Transport._with_error_handling(FakeResponse(),
                                                    EmptyResponse(), IGNORE,
                                                    'xml').parsed
            self.assertEqual(None, result)
            result = Transport._with_error_handling(FakeResponse(),
                                                    RuntimeError(), IGNORE,
                                                    'xml').parsed
            self.assertEqual(None, result)
            result = Transport._with_error_handling(FakeResponse(),
                                                    HTTPError(), IGNORE,
                                                    'xml').parsed
            self.assertEqual(None, result)
        except Exception as e:
            # Exception for Python 2.6
            print(e)

        result = Transport._with_error_handling(
            FakeResponse(content='{"valid": 1}'), HTTPError(), IGNORE,
            'json').parsed
        self.assertTrue(result is not None)
        self.assertTrue('valid' in result)
        self.assertEqual(result['valid'], 1)

        result = Transport._with_error_handling(
            FakeResponse(content='<valid>1</valid>'), HTTPError(), IGNORE,
            'xml').parsed
        self.assertTrue(result is not None)
        self.assertEqual(result.tag, 'valid')
        self.assertEqual(result.text, '1')