Viewing file: test_hookable.py (4 KB) -rw-r--r-- Select action/file-type: (+) | (+) | (+) | Code (+) | Session (+) | (+) | SDB (+) | (+) | (+) | (+) | (+) | (+) |
############################################################################## # # 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.assertTrue(hooked.original is foo) self.assertTrue(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.assertTrue(hooked.original is foo) self.assertTrue(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.assertTrue(hooked.original is foo) self.assertTrue(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), ))
|