コード例 #1
0
    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")
コード例 #2
0
ファイル: __init__.py プロジェクト: grodniewicz/oship
    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
コード例 #3
0
    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))
コード例 #4
0
ファイル: testing.py プロジェクト: zopefoundation/z3c.form
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}
コード例 #5
0
 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()
コード例 #6
0
ファイル: tests.py プロジェクト: CGTIC/Plone_SP
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)
コード例 #7
0
ファイル: tests.py プロジェクト: trollfot/dolmen.app.content
    def setUp(self):
        ZCMLFileLayer.setUp(self)
        zope.component.hooks.setHooks()

        # Set up site
        site = rootFolder()
        site.setSiteManager(LocalSiteManager(site))
        zope.component.hooks.setSite(site)
コード例 #8
0
    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')))
コード例 #9
0
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
コード例 #10
0
    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))
コード例 #11
0
    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)
コード例 #12
0
def placefulSetUp(site=False):
    placelessSetUp()
    zope.component.hooks.setHooks()
    setUpAnnotations()
    setUpDependable()
    setUpTraversal()
    setUpSiteManagerLookup()

    if site:
        site = rootFolder()
        createSiteManager(site, setsite=True)
        return site
コード例 #13
0
ファイル: __init__.py プロジェクト: grodniewicz/oship
    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
コード例 #14
0
ファイル: tests.py プロジェクト: grodniewicz/oship
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
コード例 #15
0
ファイル: test_all.py プロジェクト: trollfot/dolmen.beaker
    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)
コード例 #16
0
ファイル: test_level.py プロジェクト: asley/schooltool
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,
        })
コード例 #17
0
ファイル: tests.py プロジェクト: jean/zope.intid
    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)
コード例 #18
0
    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()
コード例 #19
0
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,
        })
コード例 #20
0
ファイル: tests.py プロジェクト: trollfot/dolmen.widget.image
    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
コード例 #21
0
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
コード例 #22
0
    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)
コード例 #23
0
ファイル: bootstrap.py プロジェクト: avnik/nanozope
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
コード例 #24
0
    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)
コード例 #25
0
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
コード例 #26
0
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))
コード例 #27
0
ファイル: tests.py プロジェクト: jean/zope.preference
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')
コード例 #28
0
 def setUp(self):
     super(SiteCreationTests, self).setUp()
     setUpSome(self)
     self.root_folder = rootFolder()
コード例 #29
0
 def createRootFolder(self):
     self.rootFolder = rootFolder()
コード例 #30
0
ファイル: test_vhosting.py プロジェクト: grodniewicz/oship
 def setUp(self):
     f = os.path.join(os.path.split(__file__)[0], 'ftesting.zcml')
     xmlconfig.file(f)
     self.app = rootFolder()
     defineChecker(MyObj, NoProxy)
コード例 #31
0
 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')
コード例 #32
0
 def setUp(self):
     super(SiteCreationTests, self).setUp()
     setUpZCML(self)
     self.root = rootFolder()