OXIESEC PANEL
- Current Dir:
/
/
usr
/
lib
/
python3
/
dist-packages
/
zope
/
hookable
/
tests
Server IP: 139.59.38.164
Upload:
Create Dir:
Name
Size
Modified
Perms
📁
..
-
07/12/2020 04:36:17 PM
rwxr-xr-x
📄
__init__.py
47 bytes
01/08/2013 04:08:36 PM
rw-r--r--
📁
__pycache__
-
07/12/2020 04:36:17 PM
rwxr-xr-x
📄
test_hookable.py
3.3 KB
01/08/2013 04:08:36 PM
rw-r--r--
Editing: test_hookable.py
Close
############################################################################## # # Copyright (c) 2003 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. # ############################################################################## """Test the hookable support Extension """ import unittest class PyHookableTests(unittest.TestCase): def _callFUT(self, *args, **kw): from zope.hookable import _py_hookable return _py_hookable(*args, **kw) def test_before_hook(self): def _foo(): return 'FOO' hooked = self._callFUT(_foo) self.assertTrue(hooked.original is _foo) self.assertTrue(hooked.implementation is _foo) self.assertEqual(hooked(), 'FOO') def test_after_hook(self): def _foo(): return 'FOO' def _bar(): return 'BAR' hooked = self._callFUT(_foo) old = hooked.sethook(_bar) self.assertTrue(old is _foo) self.assertTrue(hooked.original is _foo) self.assertTrue(hooked.implementation is _bar) self.assertEqual(hooked(), 'BAR') def test_after_hook_and_reset(self): def _foo(): return 'FOO' def _bar(): return 'BAR' hooked = self._callFUT(_foo) old = hooked.sethook(_bar) hooked.reset() self.assertTrue(old is _foo) self.assertTrue(hooked.original is _foo) self.assertTrue(hooked.implementation is _foo) self.assertEqual(hooked(), 'FOO') def test_original_cannot_be_deleted(self): def _foo(): return 'FOO' hooked = self._callFUT(_foo) def _try(): del hooked.original self.assertRaises((TypeError, AttributeError), _try) def test_implementation_cannot_be_deleted(self): def _foo(): return 'FOO' hooked = self._callFUT(_foo) def _try(): del hooked.implementation self.assertRaises((TypeError, AttributeError), _try) def test_no_args(self): self.assertRaises(TypeError, self._callFUT) def test_too_many_args(self): def _foo(): return 'FOO' self.assertRaises(TypeError, self._callFUT, _foo, _foo) def test_w_implementation_kwarg(self): def _foo(): return 'FOO' hooked = self._callFUT(implementation=_foo) self.assertTrue(hooked.original is _foo) self.assertTrue(hooked.implementation is _foo) self.assertEqual(hooked(), 'FOO') def test_w_unknown_kwarg(self): def _foo(): return 'FOO' self.assertRaises(TypeError, self._callFUT, nonesuch=_foo) class HookableTests(PyHookableTests): def _callFUT(self, *args, **kw): from zope.hookable import hookable return hookable(*args, **kw) def test_suite(): return unittest.TestSuite(( unittest.makeSuite(PyHookableTests), unittest.makeSuite(HookableTests), ))