ok
Direktori : /lib/python2.7/site-packages/zope/component/tests/ |
Current File : //lib/python2.7/site-packages/zope/component/tests/test_hookable.py |
############################################################################## # # Copyright (c) 2012 Zope Foundation and Contributors. # All Rights Reserved. # # This software is subject to the provisions of the Zope Public License, # Version 2.1 (ZPL). A copy of the ZPL should accompany this distribution. # THIS SOFTWARE IS PROVIDED "AS IS" AND ANY AND ALL EXPRESS OR IMPLIED # WARRANTIES ARE DISCLAIMED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED # WARRANTIES OF TITLE, MERCHANTABILITY, AGAINST INFRINGEMENT, AND FITNESS # FOR A PARTICULAR PURPOSE. # ############################################################################## """Pure-Python hookable tests """ import unittest class HookableTests(unittest.TestCase): def test_ctor_no_func(self): from zope.component.hookable import hookable self.assertRaises(TypeError, hookable) def test_ctor_simple(self): from zope.component.hookable import hookable def foo(): pass hooked = hookable(foo) self.failUnless(hooked.original is foo) self.failUnless(hooked.implementation is foo) def test_ctor_extra_arg(self): from zope.component.hookable import hookable def foo(): pass self.assertRaises(TypeError, hookable, foo, foo) def test_ctor_extra_arg_miss(self): from zope.component.hookable import hookable def foo(): pass self.assertRaises(TypeError, hookable, foo, nonesuch=foo) def test_sethook(self): from zope.component.hookable import hookable def foo(): pass def bar(): pass hooked = hookable(foo) hooked.sethook(bar) self.failUnless(hooked.original is foo) self.failUnless(hooked.implementation is bar) def test_reset(self): from zope.component.hookable import hookable def foo(): pass def bar(): pass hooked = hookable(foo) hooked.sethook(bar) hooked.reset() self.failUnless(hooked.original is foo) self.failUnless(hooked.implementation is foo) def test_cant_assign_original(self): from zope.component.hookable import hookable def foo(): pass def bar(): pass hooked = hookable(foo) try: hooked.original = bar except TypeError: pass except AttributeError: pass else: self.fail('Assigned original') def test_cant_delete_original(self): from zope.component.hookable import hookable def foo(): pass hooked = hookable(foo) try: del hooked.original except TypeError: pass except AttributeError: pass else: self.fail('Deleted original') def test_cant_assign_implementation(self): from zope.component.hookable import hookable def foo(): pass def bar(): pass hooked = hookable(foo) try: hooked.implementation = bar except TypeError: pass except AttributeError: pass else: self.fail('Assigned implementation') def test_cant_delete_implementation(self): from zope.component.hookable import hookable def foo(): pass hooked = hookable(foo) try: del hooked.implementation except TypeError: pass except AttributeError: pass else: self.fail('Deleted implementation') def test_ctor___call__(self): from zope.component.hookable import hookable _called = [] def foo(*args, **kw): _called.append((args, kw)) hooked = hookable(foo) hooked('one', 'two', bar='baz') self.assertEqual(_called, [(('one', 'two'), {'bar': 'baz'})]) def test_suite(): return unittest.TestSuite(( unittest.makeSuite(HookableTests), ))