blob: 7efc12e591aac4a21ea38d67dc97d95f772b7863 [file] [log] [blame]
# Copyright (c) The PyAMF Project.
# See LICENSE.txt for details.
"""
Tests for the adapters module.
@since: 0.3.1
"""
import os
import sys
from pyamf import adapters
from pyamf.tests import util
from pyamf.tests.test_imports import ImportsTestCase
class AdapterHelperTestCase(ImportsTestCase):
def setUp(self):
ImportsTestCase.setUp(self)
self.old_env = os.environ.copy()
self.mods = sys.modules.copy()
self.path = os.path.join(os.path.dirname(__file__), 'imports')
sys.path.append(self.path)
def tearDown(self):
ImportsTestCase.tearDown(self)
util.replace_dict(os.environ, self.old_env)
util.replace_dict(sys.modules, self.mods)
sys.path.remove(self.path)
def test_basic(self):
class Foo(object):
def __call__(self, *args, **kwargs):
pass
def bar(*args, **kargs):
pass
self.assertRaises(TypeError, adapters.register_adapter, 'foo', 1)
self.assertRaises(TypeError, adapters.register_adapter, 'foo', 'asdf')
adapters.register_adapter('foo', Foo())
adapters.register_adapter('foo', bar)
adapters.register_adapter('foo', lambda x: x)
def test_import(self):
self.imported = False
def x(mod):
self.imported = True
self.spam = mod
adapters.register_adapter('spam', x)
import spam
self.assertTrue(self.imported)
self.assertEqual(self.spam, spam)
def test_get_adapter(self):
from pyamf.adapters import _decimal
self.assertTrue(adapters.get_adapter('decimal') is _decimal)