blob: a834fdceb2f501b4d6315048460e8e13b286c1a9 [file] [log] [blame]
# -*- coding: utf-8 -*-
#
# Copyright (c) The PyAMF Project.
# See LICENSE.txt for details.
"""
Tests for AMF Remoting AMF0 style.
@since: 0.6
"""
import unittest
from pyamf import remoting
from pyamf.remoting import amf0
class MockGateway(object):
"""
"""
debug = True
class BaseTestCase(unittest.TestCase):
"""
Provides a L{processor} attribute.
"""
def setUp(self):
unittest.TestCase.setUp(self)
self.gateway = MockGateway()
self.processor = amf0.RequestProcessor(self.gateway)
class ExceptionTestCase(BaseTestCase):
"""
Tests exception handling
"""
def generate_exception(self):
try:
raise NameError('foobar')
except NameError:
import sys
return sys.exc_info()
def test_debug(self):
self.assertTrue(self.gateway.debug)
response = self.processor.buildErrorResponse(None, error=self.generate_exception())
self.assertEqual(response.status, remoting.STATUS_ERROR)
error = response.body
self.assertEqual(error.level, 'error')
self.assertEqual(error.code, 'NameError')
self.assertEqual(error.description, 'foobar')
self.assertTrue(isinstance(error.details, list))
def test_no_debug(self):
self.gateway.debug = False
response = self.processor.buildErrorResponse(None, error=self.generate_exception())
self.assertEqual(response.status, remoting.STATUS_ERROR)
error = response.body
self.assertEqual(error.level, 'error')
self.assertEqual(error.code, 'NameError')
self.assertEqual(error.description, 'foobar')
self.assertEqual(error.details, None)