def test(self): self.rootFolder = rootFolder() container = Container("put") self.rootFolder["put"] = container content = b"some content\n for testing" request = TestRequest(BytesIO(content), {'CONTENT_TYPE': 'test/foo', 'CONTENT_LENGTH': str(len(content)), }) null = zope.app.http.put.NullResource(container, 'spam.txt') put = zope.app.http.put.NullPUT(null, request) self.assertEqual(getattr(container, 'spam', None), None) self.assertEqual(put.PUT(), b'') request.response.setResult('') file = getattr(container, 'spam.txt') self.assertEqual(file.__class__, File) self.assertEqual(file.name, 'spam.txt') self.assertEqual(file.content_type, 'test/foo') self.assertEqual(file.data, content) # Check HTTP Response self.assertEqual(request.response.getStatus(), 201) self.assertEqual(request.response.getHeader("Location"), "http://127.0.0.1/put/spam.txt")
def setUp(self): ZCMLFileLayer.setUp(self) # Set up site manager adapter zope.component.provideAdapter( SiteManagerAdapter, (Interface,), IComponentLookup) # Set up traversal traversingSetUp() zope.component.provideAdapter( ContainerTraversable, (ISimpleReadContainer,), ITraversable) # Session zope.component.provideAdapter(ClientId, (IRequest,), IClientId) zope.component.provideAdapter(Session, (IRequest,), ISession) zope.component.provideUtility( CookieClientIdManager(), IClientIdManager) sdc = PersistentSessionDataContainer() zope.component.provideUtility(sdc, ISessionDataContainer, '') # Set up site site = rootFolder() site.setSiteManager(LocalSiteManager(site)) zope.component.hooks.setSite(site) return site
def setUp(self): super(AuthZopePublicationTests, self).setUp() principalRegistry.defineDefaultPrincipal('anonymous', '') root = self.db.open().root() app = root[ZopePublication.root_name] app['f1'] = rootFolder() f1 = app['f1'] f1['f2'] = Folder() if not ISite.providedBy(f1): f1.setSiteManager(LocalSiteManager(f1)) sm1 = f1.getSiteManager() addUtility(sm1, '', IAuthentication, AuthUtility1()) f2 = f1['f2'] if not ISite.providedBy(f2): f2.setSiteManager(LocalSiteManager(f2)) sm2 = f2.getSiteManager() addUtility(sm2, '', IAuthentication, AuthUtility2()) transaction.commit() from zope.container.interfaces import ISimpleReadContainer from zope.container.traversal import ContainerTraverser component.provideAdapter(ContainerTraverser, (ISimpleReadContainer, IRequest), IPublishTraverse, name='') from zope.site.interfaces import IFolder from zope.security.checker import defineChecker, InterfaceChecker defineChecker(Folder, InterfaceChecker(IFolder))
def setUp(test): from zope.component.testing import setUp setUp() from zope.container.testing import setUp setUp() from zope.component import hooks hooks.setHooks() from zope.traversing.testing import setUp setUp() from zope.publisher.browser import BrowserLanguages from zope.publisher.interfaces.http import IHTTPRequest from zope.i18n.interfaces import IUserPreferredLanguages zope.component.provideAdapter(BrowserLanguages, [IHTTPRequest], IUserPreferredLanguages) from zope.site.folder import rootFolder site = rootFolder() from zope.site.site import LocalSiteManager from zope.component.interfaces import ISite if not ISite.providedBy(site): site.setSiteManager(LocalSiteManager(site)) hooks.setSite(site) test.globs = { 'print_function': print_function, 'root': site, 'pprint': pprint.pprint}
def createRootFolder(self): cx = self.db.open() root = cx.root() self.root_folder = rootFolder() root[ZopePublication.root_name] = self.root_folder transaction.commit() cx.close()
def setUp(self): """Test setUp based on z3c.form.testing.setUp minus their globals. """ from zope.component.testing import setUp setUp() from zope.container.testing import setUp setUp() from zope.component import hooks hooks.setHooks() from zope.traversing.testing import setUp setUp() from zope.publisher.browser import BrowserLanguages from zope.publisher.interfaces.http import IHTTPRequest from zope.i18n.interfaces import IUserPreferredLanguages import zope.component zope.component.provideAdapter( BrowserLanguages, [IHTTPRequest], IUserPreferredLanguages) from zope.site.folder import rootFolder site = rootFolder() from zope.site.site import LocalSiteManager from zope.component.interfaces import ISite if not ISite.providedBy(site): site.setSiteManager(LocalSiteManager(site)) hooks.setSite(site)
def setUp(self): ZCMLFileLayer.setUp(self) zope.component.hooks.setHooks() # Set up site site = rootFolder() site.setSiteManager(LocalSiteManager(site)) zope.component.hooks.setSite(site)
def setUp(self): ZCMLFileLayer.setUp(self) zope.component.hooks.setHooks() # Set up site site = rootFolder() site.setSiteManager(LocalSiteManager(site)) zope.component.hooks.setSite(site) security.newInteraction(Participation(Principal('zope.mgr')))
def siteSetUp(site=False): zope.container.testing.setUp() zope.component.hooks.setHooks() zope.component.provideAdapter( SiteManagerAdapter, (Interface,), IComponentLookup) if site: site = rootFolder() createSiteManager(site, setsite=True) return site
def setUp(self): self.root = rootFolder() zope.site.testing.siteSetUp(self.root) global removed_called removed_called = False sm = getSiteManager() sm.registerHandler(removed_event, (Dummy, IObjectRemovedEvent)) sm.registerHandler( dispatch_event, (SiteManagerContainer, IObjectRemovedEvent))
def test_put_on_invalid_container_raises_MethodNotAllowed(self): import zope.publisher.interfaces.http request = TestRequest(BytesIO(), {'CONTENT_TYPE': 'test/foo', 'CONTENT_LENGTH': '0', }) null = zope.app.http.put.NullResource(rootFolder(), 'spam.txt') put = zope.app.http.put.NullPUT(null, request) self.assertRaises(zope.publisher.interfaces.http.MethodNotAllowed, put.PUT)
def placefulSetUp(site=False): placelessSetUp() zope.component.hooks.setHooks() setUpAnnotations() setUpDependable() setUpTraversal() setUpSiteManagerLookup() if site: site = rootFolder() createSiteManager(site, setsite=True) return site
def setUp(self): ZCMLFileLayer.setUp(self) # Set up site manager adapter zope.component.provideAdapter( SiteManagerAdapter, (Interface,), IComponentLookup) # Set up site site = rootFolder() site.setSiteManager(LocalSiteManager(site)) zope.component.hooks.setSite(site) return site
def placefulSetUp(site=False): testing.setUp() eventtesting.setUp() traversingSetUp() setHooks() provideAdapter(ContainerTraversable, (ISimpleReadContainer,), ITraversable) provideAdapter(SiteManagerAdapter, (Interface,), IComponentLookup) if site: root = rootFolder() createSiteManager(root, setsite=True) return root
def setUp(self): ZCMLFileLayer.setUp(self) eventtesting.setUp() traversingSetUp() zope.component.hooks.setHooks() # Set up site manager adapter zope.component.provideAdapter( SiteManagerAdapter, (Interface,), IComponentLookup) # Set up site site = rootFolder() site.setSiteManager(LocalSiteManager(site)) zope.component.hooks.setSite(site)
def setUpIntegration(test): setup.placefulSetUp() # Workaround: _clear actually sets the Zope's vocabulary registry and # is called on zope.app.schema.vocabularies import (during # zcml parsing, for example). When running multiple tests # this ingenious idea fails, so we call it manually. from zope.app.schema import vocabulary vocabulary._clear() zcml = ZCMLWrapper() zcml.setUp( namespaces={"": "http://namespaces.zope.org/zope"}, i18n_domain='schooltool') zcml.include('schooltool.common', file='zcmlfiles.zcml') # We define the default pemissions here, because though widely used, # they are currently mangled with other stuff in schooltool.common zcml.string(''' <permission id="schooltool.view" title="View" /> <permission id="schooltool.edit" title="Edit Info" /> ''') zcml.include('zope.intid') zcml.string(''' <utility factory="zope.intid.IntIds" provides="zope.intid.interfaces.IIntIds" /> <adapter for="persistent.interfaces.IPersistent" factory="schooltool.testing.stubs.KeyReferenceStub" trusted="y" /> ''') zcml.include('schooltool.level', file='level.zcml') zcml.include('schooltool.schoolyear', file='schoolyear.zcml') zcml.include('schooltool.relationship', file='relationship.zcml') provideAdapter(LocationCopyHook) root = rootFolder() root['app'] = provideApplicationStub() setup.createSiteManager(root['app'], setsite=True) test.globs.update({ 'zcml': zcml, 'CourseStub': CourseStub, 'getRelatedObjects': getRelatedObjects, 'provideAdapter': provideStubAdapter, 'unregisterAdapter': unregisterStubAdapter, })
def setUp(self): testing.setUp() eventtesting.setUp() traversingSetUp() setHooks() provideAdapter(ContainerTraversable, (ISimpleReadContainer,), ITraversable) provideAdapter(SiteManagerAdapter, (Interface,), IComponentLookup) self.root = rootFolder() createSiteManager(self.root, setsite=True) provideAdapter(connectionOfPersistent, (IPersistent, ), IConnection) provideAdapter( KeyReferenceToPersistent, (IPersistent, ), IKeyReference)
def createRFAndSM(self): cx = self.db.open() root = cx.root() self.root_folder = rootFolder() root[ZopePublication.root_name] = self.root_folder self.site_manager = LocalSiteManager(self.root_folder) self.root_folder.setSiteManager(self.site_manager) sub_folder = Folder() self.root_folder["sub_folder"] = sub_folder sub_site_manager = LocalSiteManager(sub_folder) sub_folder.setSiteManager(sub_site_manager) transaction.commit() cx.close()
def setUpIntegration(test): setup.placefulSetUp() zcml = ZCMLWrapper() zcml.setUp( namespaces={"": "http://namespaces.zope.org/zope"}, i18n_domain='schooltool') zcml.include('schooltool.common', file='zcmlfiles.zcml') zcml.include('schooltool.app', file='catalog.zcml') root = rootFolder() root['app'] = provideApplicationStub() setup.createSiteManager(root['app'], setsite=True) test.globs.update({ 'zcml': zcml, 'CatalogStub': CatalogStub, 'provideAdapter': provideStubAdapter, 'unregisterAdapter': unregisterStubAdapter, })
def setUp(self): ZCMLFileLayer.setUp(self) # Set up site manager adapter zope.component.provideAdapter( SiteManagerAdapter, (Interface,), IComponentLookup) # Set up traversal setUp() zope.component.provideAdapter( ContainerTraversable, (ISimpleReadContainer,), ITraversable) # Set up site site = rootFolder() site.setSiteManager(LocalSiteManager(site)) zope.component.hooks.setSite(site) return site
def buildSampleFolderTree(): r""" Create a tree of folders and return the root:: ____________ rootFolder ______________________________ / \ \ folder1 __________________ folder2 folder3 | \ | | folder1_1 ____ folder1_2 folder2_1 folder3_1 | \ | | folder1_1_1 folder1_1_2 folder1_2_1 folder2_1_1 """ root = rootFolder() root[u'folder1'] = Folder() root[u'folder1'][u'folder1_1'] = Folder() root[u'folder1'][u'folder1_1'][u'folder1_1_1'] = Folder() root[u'folder1'][u'folder1_1'][u'folder1_1_2'] = Folder() root[u'folder1'][u'folder1_2'] = Folder() root[u'folder1'][u'folder1_2'][u'folder1_2_1'] = Folder() root[u'folder2'] = Folder() root[u'folder2'][u'folder2_1'] = Folder() root[u'folder2'][u'folder2_1'][u'folder2_1_1'] = Folder() root[u"\N{CYRILLIC SMALL LETTER PE}" u"\N{CYRILLIC SMALL LETTER A}" u"\N{CYRILLIC SMALL LETTER PE}" u"\N{CYRILLIC SMALL LETTER KA}" u"\N{CYRILLIC SMALL LETTER A}3"] = Folder() root[u"\N{CYRILLIC SMALL LETTER PE}" u"\N{CYRILLIC SMALL LETTER A}" u"\N{CYRILLIC SMALL LETTER PE}" u"\N{CYRILLIC SMALL LETTER KA}" u"\N{CYRILLIC SMALL LETTER A}3"][ u"\N{CYRILLIC SMALL LETTER PE}" u"\N{CYRILLIC SMALL LETTER A}" u"\N{CYRILLIC SMALL LETTER PE}" u"\N{CYRILLIC SMALL LETTER KA}" u"\N{CYRILLIC SMALL LETTER A}3_1"] = Folder() return root
def test_bad_content_header(self): ## The previous behavour of the PUT method was to fail if the request ## object had a key beginning with 'HTTP_CONTENT_' with a status of 501. ## This was breaking the new Twisted server, so I am now allowing this ## this type of request to be valid. self.rootFolder = rootFolder() container = Container("/put") self.rootFolder["put"] = container content = b"some content\n for testing" request = TestRequest(BytesIO(content), {'CONTENT_TYPE': 'test/foo', 'CONTENT_LENGTH': str(len(content)), 'HTTP_CONTENT_FOO': 'Bar', }) null = zope.app.http.put.NullResource(container, 'spam') put = zope.app.http.put.NullPUT(null, request) self.assertEqual(getattr(container, 'spam', None), None) self.assertEqual(put.PUT(), b'') request.response.setResult('') # Check HTTP Response self.assertEqual(request.response.getStatus(), 201)
def _bootstrap_zodb(conn, root_name): root = conn.root() created = False if not root_name in root: root_folder = rootFolder() notify(zope.lifecycleevent.ObjectCreatedEvent(root_folder)) root[root_name] = root_folder if not zope.component.interfaces.ISite.providedBy(root_folder): site_manager = site.LocalSiteManager(root_folder) root_folder.setSiteManager(site_manager) transaction.commit() created = True try: from z3c.configurator import configure except ImportError: pass else: logging.info('We have z3c.configurator, fire his events!') configure(root_folder, {}) logging.info('Firing events...') notify(zope.processlifetime.DatabaseOpenedWithRoot(conn.db())) return created
def setUp(self): from zope.security.management import endInteraction endInteraction() self.policy = setSecurityPolicy(simplepolicies.PermissiveSecurityPolicy) self.storage = DemoStorage("test_storage") self.db = db = DB(self.storage) component.provideUtility(principalRegistry, IAuthentication) connection = db.open() root = connection.root() app = getattr(root, ZopePublication.root_name, None) if app is None: from zope.site.folder import rootFolder app = rootFolder() root[ZopePublication.root_name] = app transaction.commit() connection.close() self.app = app from zope.traversing.namespace import view, resource, etc support.provideNamespaceHandler("view", view) support.provideNamespaceHandler("resource", resource) support.provideNamespaceHandler("etc", etc) self.request = TestRequest("/f1/f2") self.user = Principal("test.principal") self.request.setPrincipal(self.user) from zope.interface import Interface self.presentation_type = Interface self.request._presentation_type = self.presentation_type self.object = object() self.publication = ZopePublication(self.db)
def buildSampleFolderTree(): # set up a reasonably complex folder structure # # ____________ rootFolder ______________________________ # / \ \ # folder1 __________________ folder2 folder3 # | \ | | # folder1_1 ____ folder1_2 folder2_1 folder3_1 # | \ | | # folder1_1_1 folder1_1_2 folder1_2_1 folder2_1_1 root = rootFolder() root[u'folder1'] = Folder() root[u'folder1'][u'folder1_1'] = Folder() root[u'folder1'][u'folder1_1'][u'folder1_1_1'] = Folder() root[u'folder1'][u'folder1_1'][u'folder1_1_2'] = Folder() root[u'folder1'][u'folder1_2'] = Folder() root[u'folder1'][u'folder1_2'][u'folder1_2_1'] = Folder() root[u'folder2'] = Folder() root[u'folder2'][u'folder2_1'] = Folder() root[u'folder2'][u'folder2_1'][u'folder2_1_1'] = Folder() root[u"\N{CYRILLIC SMALL LETTER PE}" u"\N{CYRILLIC SMALL LETTER A}" u"\N{CYRILLIC SMALL LETTER PE}" u"\N{CYRILLIC SMALL LETTER KA}" u"\N{CYRILLIC SMALL LETTER A}3"] = Folder() root[u"\N{CYRILLIC SMALL LETTER PE}" u"\N{CYRILLIC SMALL LETTER A}" u"\N{CYRILLIC SMALL LETTER PE}" u"\N{CYRILLIC SMALL LETTER KA}" u"\N{CYRILLIC SMALL LETTER A}3"][ u"\N{CYRILLIC SMALL LETTER PE}" u"\N{CYRILLIC SMALL LETTER A}" u"\N{CYRILLIC SMALL LETTER PE}" u"\N{CYRILLIC SMALL LETTER KA}" u"\N{CYRILLIC SMALL LETTER A}3_1"] = Folder() return root
def bootStrapSubscriber(event): """The actual subscriber to the bootstrap IDataBaseOpenedEvent Boostrap a Zope3 instance given a database object This first checks if the root folder exists and has a site manager. If it exists, nothing else is changed. If no root folder exists, one is added. """ db, connection, root, root_folder = getInformationFromEvent(event) if root_folder is None: # ugh... we depend on the root folder implementation root_folder = rootFolder() zope.event.notify(zope.lifecycleevent.ObjectCreatedEvent(root_folder)) root[ZopePublication.root_name] = root_folder if not zope.component.interfaces.ISite.providedBy(root_folder): site_manager = site.LocalSiteManager(root_folder) root_folder.setSiteManager(site_manager) transaction.commit() connection.close() zope.event.notify(zope.processlifetime.DatabaseOpenedWithRoot(db))
def setUp(test): zope.component.testing.setUp(test) zope.component.hooks.setHooks() # Traversal from zope.traversing.testing import setUp as traversalSetUp from zope.traversing.interfaces import ITraversable from zope.container.interfaces import ISimpleReadContainer from zope.container.traversal import ContainerTraversable traversalSetUp() zope.component.provideAdapter(ContainerTraversable, (ISimpleReadContainer,), ITraversable) # ISiteManager lookup from zope.site.site import SiteManagerAdapter from zope.component.interfaces import IComponentLookup from zope.interface import Interface zope.component.provideAdapter(SiteManagerAdapter, (Interface,), IComponentLookup) # Folder Structure from zope.site.folder import Folder, rootFolder root = rootFolder() test.globs['root'] = root root[u'folder1'] = Folder() # MAke root a site. from zope.site.site import LocalSiteManager rsm = LocalSiteManager(root) test.globs['rsm'] = rsm root.setSiteManager(rsm) from zope.site.hooks import setSite setSite(root) test.globs['addUtility'] = addUtility zope.testing.module.setUp(test, 'zope.preference.README')
def setUp(self): super(SiteCreationTests, self).setUp() setUpSome(self) self.root_folder = rootFolder()
def createRootFolder(self): self.rootFolder = rootFolder()
def setUp(self): f = os.path.join(os.path.split(__file__)[0], 'ftesting.zcml') xmlconfig.file(f) self.app = rootFolder() defineChecker(MyObj, NoProxy)
def _TestView__newContext(self): from zope.app.container.sample import SampleContainer from zope.site.folder import rootFolder root = rootFolder() container = SampleContainer() return contained(container, root, 'sample')
def setUp(self): super(SiteCreationTests, self).setUp() setUpZCML(self) self.root = rootFolder()