Changeset 1669
- Timestamp:
- 09/13/08 22:15:23 (3 months ago)
- Location:
- pyamf/trunk
- Files:
-
- 5 modified
-
. (modified) (1 prop)
-
pyamf/adapters/__init__.py (modified) (1 diff)
-
pyamf/amf0.py (modified) (1 diff)
-
pyamf/amf3.py (modified) (1 diff)
-
pyamf/tests/test_adapters.py (modified) (2 diffs)
Legend:
- Unmodified
- Added
- Removed
-
pyamf/trunk
- Property svn:mergeinfo
-
old new 1 /pyamf/branches/adapter-helper-350:1638-1668 1 2 /pyamf/branches/class-def-ref-341:1594-1597 2 3 /pyamf/branches/class-init-args-322:1527-1528,1530-1532
-
- Property svn:mergeinfo
-
pyamf/trunk/pyamf/adapters/__init__.py
r1416 r1669 49 49 50 50 adapters_registered = True 51 52 def register_adapter(mod, func): 53 """ 54 Registers a callable to be executed when a module is imported. If the 55 module already exists then the callable will be executed immediately. 56 You can register the same module multiple times, the callables will be 57 executed in the order they were registered. The root module must exist 58 (i.e. be importable) otherwise an C{ImportError} will be thrown 59 60 @param mod: The fully qualified module string, as used in the imports 61 statement. E.g. 'foo.bar.baz'. The string must map to a module 62 otherwise the callable will not fire. 63 @type mod: L{string} 64 @param func: The function to call when C{mod} is imported. This function 65 must take one arg, the newly imported C{module} object. 66 @param callable. 67 """ 68 if not callable(func): 69 raise TypeError('func must be callable') 70 71 imports.whenImported(str(mod), func) -
pyamf/trunk/pyamf/amf0.py
r1662 r1669 543 543 raise 544 544 except: 545 raise pyamf.EncodeError("Unable to encode '%r'" % (data,)) 545 #raise pyamf.EncodeError("Unable to encode '%r'" % (data,)) 546 raise 546 547 547 548 def writeNull(self, n): -
pyamf/trunk/pyamf/amf3.py
r1662 r1669 1252 1252 raise 1253 1253 except: 1254 raise 1254 1255 raise pyamf.EncodeError("Unable to encode '%r'" % (data,)) 1255 1256 -
pyamf/trunk/pyamf/tests/test_adapters.py
r1416 r1669 8 8 """ 9 9 10 import unittest 10 import unittest, os, sys 11 12 from pyamf import adapters 13 from pyamf.tests import util 14 from pyamf.tests.test_imports import PostLoadHookClearingTestCase 15 16 class AdapterHelperTestCase(PostLoadHookClearingTestCase): 17 def setUp(self): 18 PostLoadHookClearingTestCase.setUp(self) 19 20 self.old_env = os.environ.copy() 21 self.mods = sys.modules.copy() 22 23 self.path = os.path.join(os.path.dirname(__file__), 'imports') 24 sys.path.append(self.path) 25 26 def tearDown(self): 27 PostLoadHookClearingTestCase.tearDown(self) 28 29 util.replace_dict(os.environ, self.old_env) 30 util.replace_dict(sys.modules, self.mods) 31 sys.path.remove(self.path) 32 33 def test_basic(self): 34 class Foo(object): 35 def __call__(self, *args, **kwargs): 36 pass 37 38 def bar(*args, **kargs): 39 pass 40 41 self.assertRaises(TypeError, adapters.register_adapter, 'foo', 1) 42 self.assertRaises(TypeError, adapters.register_adapter, 'foo', 'asdf') 43 adapters.register_adapter('foo', Foo()) 44 adapters.register_adapter('foo', bar) 45 adapters.register_adapter('foo', lambda x: x) 46 47 def test_import(self): 48 self.imported = False 49 50 def x(mod): 51 self.imported = True 52 self.foo = mod 53 54 adapters.register_adapter('foo', x) 55 56 import foo 57 58 self.assertTrue(self.imported) 59 self.assertEquals(self.foo, foo) 60 61 def test_root_import_fail(self): 62 self.assertRaises(ImportError, adapters.register_adapter, '__xyz', lambda x: x) 11 63 12 64 def suite(): … … 15 67 16 68 suite = unittest.TestSuite() 69 70 suite.addTest(unittest.makeSuite(AdapterHelperTestCase)) 17 71 18 72 for testcase in glob(os.path.join(os.path.dirname(__file__), 'adapters', 'test_*.py')):
