Example #1
0
    def test_folder_data_traversal_dav(self):
        container = Container('test')
        request = DAVTestRequest(environ={'URL': 'http://site/test'})
        request.maybe_webdav_client = True

        traversal = DexterityPublishTraverse(container, request)

        r = traversal.publishTraverse(request, DAV_FOLDER_DATA_ID)

        self.assertEqual(DAV_FOLDER_DATA_ID, r.__name__)
        self.assertEqual(container, r.__parent__)
        self.assertEqual(container, r.aq_parent)
Example #2
0
    def test_folder_data_traversal_dav(self):
        container = Container('test')
        request = DAVTestRequest(
            environ={'URL': 'http://site/test'}
        )
        request.maybe_webdav_client = True

        traversal = DexterityPublishTraverse(container, request)

        r = traversal.publishTraverse(request, DAV_FOLDER_DATA_ID)

        self.assertEqual(DAV_FOLDER_DATA_ID, r.__name__)
        self.assertEqual(container, r.__parent__)
        self.assertEqual(container, r.aq_parent)
Example #3
0
    def test_browser_default_without_dav(self):
        class TestContainer(Container):
            def __browser_default__(self, request):
                return self, ("foo",)

        container = TestContainer("container")
        request = DAVTestRequest(environ={"URL": "http://site/test", "REQUEST_METHOD": "PROPFIND"})
        request.maybe_webdav_client = False

        traversal = DexterityPublishTraverse(container, request)

        self.replay()

        self.assertEqual((container, ("foo",)), traversal.browserDefault(request))
Example #4
0
    def test_browser_default_dav(self):
        class TestContainer(Container):

            def __browser_default__(self, request):
                return self, ('foo',)

        container = TestContainer('container')
        request = DAVTestRequest(
            environ={'URL': 'http://site/test', 'REQUEST_METHOD': 'PROPFIND'}
        )
        request.maybe_webdav_client = True

        traversal = DexterityPublishTraverse(container, request)

        self.assertEqual((container, (),), traversal.browserDefault(request))
Example #5
0
    def test_browser_default_dav(self):
        class TestContainer(Container):

            def __browser_default__(self, request):
                return self, ('foo',)

        container = TestContainer('container')
        request = DAVTestRequest(
            environ={'URL': 'http://site/test', 'REQUEST_METHOD': 'PROPFIND'}
        )
        request.maybe_webdav_client = True

        traversal = DexterityPublishTraverse(container, request)

        self.replay()

        self.assertEqual((container, (),), traversal.browserDefault(request))
Example #6
0
    def test_acquire_without_dav(self):
        container = Container('container')

        outer = Folder('outer')
        outer._setObject('item', SimpleItem('item'))
        outer._setOb('container', container)

        request = DAVTestRequest(
            environ={'URL': 'http://site/test', 'REQUEST_METHOD': 'GET'}
        )
        request.maybe_webdav_client = False

        traversal = DexterityPublishTraverse(container.__of__(outer), request)

        r = traversal.publishTraverse(request, 'item')

        self.assertEqual(r.aq_base, outer['item'].aq_base)
        self.assertEqual(container, r.aq_parent)
Example #7
0
    def test_no_acquire_dav(self):
        container = Container('container')

        outer = Folder('outer')
        outer._setOb('item', SimpleItem('item'))
        outer._setOb('container', container)

        request = DAVTestRequest(environ={'URL': 'http://site/test', 'REQUEST_METHOD': 'PUT'})
        request.maybe_webdav_client = True

        traversal = DexterityPublishTraverse(container.__of__(outer), request)

        self.replay()

        r = traversal.publishTraverse(request, 'item')

        self.failUnless(isinstance(r, NullResource))
        self.assertEquals(container, r.aq_parent)
Example #8
0
    def test_folder_data_traversal_without_dav(self):
        container = Container('test')
        request = DAVTestRequest(environ={'URL': 'http://site/test'})
        request.maybe_webdav_client = False

        traversal = DexterityPublishTraverse(container, request)

        self.assertRaises(Forbidden, traversal.publishTraverse, request,
                          DAV_FOLDER_DATA_ID)
Example #9
0
    def test_acquire_without_dav(self):
        container = Container("container")

        outer = Folder("outer")
        outer._setObject("item", SimpleItem("item"))
        outer._setOb("container", container)

        request = DAVTestRequest(environ={"URL": "http://site/test", "REQUEST_METHOD": "GET"})
        request.maybe_webdav_client = False

        traversal = DexterityPublishTraverse(container.__of__(outer), request)

        self.replay()

        r = traversal.publishTraverse(request, "item")

        self.assertEqual(r.aq_base, outer["item"].aq_base)
        self.assertEqual(container, r.aq_parent)
Example #10
0
    def test_no_acquire_dav(self):
        container = Container("container")

        outer = Folder("outer")
        outer._setOb("item", SimpleItem("item"))
        outer._setOb("container", container)

        request = DAVTestRequest(environ={"URL": "http://site/test", "REQUEST_METHOD": "PUT"})
        request.maybe_webdav_client = True

        traversal = DexterityPublishTraverse(container.__of__(outer), request)

        self.replay()

        r = traversal.publishTraverse(request, "item")

        self.assertTrue(isinstance(r, NullResource))
        self.assertEqual(container, r.aq_parent)
Example #11
0
    def test_acquire_without_dav(self):
        container = Container('container')

        outer = Folder('outer')
        outer._setObject('item', SimpleItem('item'))
        outer._setOb('container', container)

        request = DAVTestRequest(environ={
            'URL': 'http://site/test',
            'REQUEST_METHOD': 'GET'
        })
        request.maybe_webdav_client = False

        traversal = DexterityPublishTraverse(container.__of__(outer), request)

        r = traversal.publishTraverse(request, 'item')

        self.assertEqual(r.aq_base, outer['item'].aq_base)
        self.assertEqual(container, r.aq_parent)
Example #12
0
    def test_no_acquire_dav(self):
        container = Container('container')

        outer = Folder('outer')
        outer._setOb('item', SimpleItem('item'))
        outer._setOb('container', container)

        request = DAVTestRequest(environ={
            'URL': 'http://site/test',
            'REQUEST_METHOD': 'PUT'
        })
        request.maybe_webdav_client = True

        traversal = DexterityPublishTraverse(container.__of__(outer), request)

        r = traversal.publishTraverse(request, 'item')

        self.assertTrue(isinstance(r, NullResource))
        self.assertEqual(container, r.aq_parent)
Example #13
0
 def publishTraverse(self, request, name):
     try:
         # Default Traverser
         return DexterityPublishTraverse(self.context,
                                         request).publishTraverse(
                                             request, name)
     except (LocationError, KeyError):
         subpath = self.request.get('collective.remoteproxy__subpath', [])
         subpath.append(name)
         self.request['collective.remoteproxy__subpath'] = subpath
         return self.context
 def fallbackTraverse(self, request, name):
     return DexterityPublishTraverse(
         self.context, request).publishTraverse(request, name)