OXIESEC PANEL
- Current Dir:
/
/
usr
/
lib
/
python3
/
dist-packages
/
zope
/
component
/
tests
Server IP: 139.59.38.164
Upload:
Create Dir:
Name
Size
Modified
Perms
📁
..
-
07/12/2020 04:36:19 PM
rwxr-xr-x
📄
__init__.py
16 bytes
08/26/2016 07:39:24 AM
rw-r--r--
📁
__pycache__
-
07/12/2020 04:36:19 PM
rwxr-xr-x
📄
examples.py
3.16 KB
08/26/2016 07:39:24 AM
rw-r--r--
📄
test___init__.py
3.12 KB
08/26/2016 07:39:24 AM
rw-r--r--
📄
test__api.py
41.84 KB
08/26/2016 07:39:24 AM
rw-r--r--
📄
test__declaration.py
7.01 KB
08/26/2016 07:39:24 AM
rw-r--r--
📄
test_event.py
2.3 KB
08/26/2016 07:39:24 AM
rw-r--r--
📄
test_factory.py
3.7 KB
08/26/2016 07:39:24 AM
rw-r--r--
📄
test_globalregistry.py
8.47 KB
08/26/2016 07:39:24 AM
rw-r--r--
📄
test_hookable.py
4 KB
08/26/2016 07:39:24 AM
rw-r--r--
📄
test_hooks.py
11.78 KB
08/26/2016 07:39:24 AM
rw-r--r--
📄
test_interface.py
14.15 KB
08/26/2016 07:39:24 AM
rw-r--r--
📄
test_persistentregistry.py
6.35 KB
08/26/2016 07:39:24 AM
rw-r--r--
📄
test_registry.py
4.55 KB
08/26/2016 07:39:24 AM
rw-r--r--
📄
test_security.py
9.15 KB
08/26/2016 07:39:24 AM
rw-r--r--
📄
test_standalone.py
2.39 KB
08/26/2016 07:39:24 AM
rw-r--r--
📄
test_zcml.py
50.87 KB
08/26/2016 07:39:24 AM
rw-r--r--
Editing: test_persistentregistry.py
Close
############################################################################## # # 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. # ############################################################################## """Tests for z.c.hooks """ import unittest class PersistentAdapterRegistryTests(unittest.TestCase): def _getTargetClass(self): from zope.component.persistentregistry import PersistentAdapterRegistry return PersistentAdapterRegistry def _makeOne(self, *args, **kw): return self._getTargetClass()(*args, **kw) def _makeCache(self, jar): # Borrowed from persistent.tests.test_pyPersistence. class _Cache(object): def __init__(self, jar): self._jar = jar self._mru = [] def mru(self, oid): self._mru.append(oid) def new_ghost(self, oid, obj): obj._p_jar = self._jar obj._p_oid = oid def update_object_size_estimation(self, oid, size): return return _Cache(jar) def _makeJar(self): # Borrowed from persistent.tests.test_pyPersistence. from zope.interface import implementer from persistent.interfaces import IPersistentDataManager @implementer(IPersistentDataManager) class _Jar(object): def __init__(self): self._loaded = [] self._registered = [] def setstate(self, obj): self._loaded.append(obj._p_oid) def register(self, obj): self._registered.append(obj._p_oid) jar = _Jar() jar._cache = self._makeCache(jar) return jar def _makeOneWithJar(self, dirty=False, **kw): # Borrowed from persistent.tests.test_pyPersistence. OID = _makeOctets('\x01' * 8) inst = self._makeOne(**kw) jar = self._makeJar() jar._cache.new_ghost(OID, inst) # assigns _p_jar, _p_oid return inst, jar, OID def test_changed_original_is_not_us(self): registry, jar, OID = self._makeOneWithJar() self.assertEqual(registry._generation, 1) registry.changed(object()) # 'originally_changed' is not us, but we are still dirty because # '_generation' gets bumped. self.assertEqual(registry._p_changed, True) # base class gets called self.assertEqual(registry._generation, 2) def test_changed_original_is_us(self): registry, jar, OID = self._makeOneWithJar() self.assertEqual(registry._generation, 1) registry.changed(registry) # 'originally_changed' is not us, so not dirty self.assertEqual(registry._p_changed, True) # base class gets called self.assertEqual(registry._generation, 2) def test___getstate___simple(self): from zope.component import globalSiteManager bases = (globalSiteManager.adapters, globalSiteManager.utilities) registry, jar, OID = self._makeOneWithJar(bases=bases) state = registry.__getstate__() self.assertEqual(state['__bases__'], bases) self.assertEqual(state['_generation'], 1) self.assertEqual(state['_provided'], {}) self.assertEqual(state['_adapters'], []) self.assertEqual(state['_subscribers'], []) self.assertFalse('ro' in state) def test___getstate___skips_delegated_names(self): registry, jar, OID = self._makeOneWithJar() registry.names = lambda *args: ['a', 'b', 'c'] self.assertFalse('names' in registry.__getstate__()) def test___setstate___rebuilds__v_lookup(self): registry, jar, OID = self._makeOneWithJar() state = registry.__getstate__() self.assertTrue('_v_lookup' in registry.__dict__) registry._p_changed = None # clears volatile '_v_lookup' self.assertFalse('_v_lookup' in registry.__dict__) registry.__setstate__(state) self.assertTrue('_v_lookup' in registry.__dict__) def test___setstate___rebuilds__ro(self): from zope.component import globalSiteManager bases = (globalSiteManager.adapters, globalSiteManager.utilities) registry, jar, OID = self._makeOneWithJar(bases=bases) state = registry.__getstate__() registry.__setstate__(state) self.assertEqual(registry.__bases__, bases) self.assertEqual(registry.ro, [registry] + list(bases)) class PersistentComponentsTests(unittest.TestCase): def _getTargetClass(self): from zope.component.persistentregistry import PersistentComponents return PersistentComponents def _makeOne(self, *args, **kw): return self._getTargetClass()(*args, **kw) def test_ctor_initializes_registries_and_registrations(self): from persistent.mapping import PersistentMapping from persistent.list import PersistentList from zope.component.persistentregistry import PersistentAdapterRegistry registry = self._makeOne() self.assertTrue(isinstance(registry.adapters, PersistentAdapterRegistry)) self.assertTrue(isinstance(registry.utilities, PersistentAdapterRegistry)) self.assertTrue(isinstance(registry._adapter_registrations, PersistentMapping)) self.assertTrue(isinstance(registry._utility_registrations, PersistentMapping)) self.assertTrue(isinstance(registry._subscription_registrations, PersistentList)) self.assertTrue(isinstance(registry._handler_registrations, PersistentList)) def _makeOctets(s): import sys if sys.version_info < (3,): return bytes(s) return bytes(s, 'ascii') #pragma NO COVERAGE def test_suite(): return unittest.TestSuite(( unittest.makeSuite(PersistentAdapterRegistryTests), unittest.makeSuite(PersistentComponentsTests), ))