On Wed, Jan 24, 2007 at 11:50:21PM +0100, Maciej Wisniowski wrote:
> Is this possible to get
> request object in content class. In Zope2 this
> was possible with simple self.REQUEST. In Zope3
> I tried self.request but I only get errors.
> Maybe this is a feature, and I'm not supposed
> to access request object from content class?

Yes.  You're not supposed to do that.  Views work with requests, not
content objects.

If you told us what you want to achieve, we could help you find a way to
do it that works with Zope 3 rather than against it.

> Another question. I'm trying to write tests
> for my content object.
> Because I want some caching facilities
> I'm using getLocationForCache from
> zope.app.cache.caching.
> and because of this: zapi.getPath(obj)
> In short it is like:
> class MyClass(Persistent):
>     (...)
>     def myfunction(self):
>         location = zapi.getPath(self)
>         return location
> In the tests I always get location == None.
> I'm using doctests like:
>    >>> test_content = MyClass()
>    >>> test_content.myfunction()
> placefulsetup adds some objects like root etc.
> but I'm not sure how I should add my object to this.
> Any clues?

Lately I've been using this pattern in my tests:

    #!/usr/bin/env python
    import unittest

    from zope.testing import doctest
    from zope.app.testing import setup
    from zope.app.folder import rootFolder
    from zope.traversing.api import getPath

    from mypackage import MyObject

    def doctest_something():
        """Bla bla bla

            >>> root = rootFolder()
            >>> root['my_object'] = my_object = MyObject()
            >>> getPath(my_object)


    def setUp(test):

    def tearDown(test):

    def test_suite():
        return doctest.DocTestSuite(setUp=setUp, tearDown=tearDown)

    if __name__ == '__main__':

I avoid setup.placefulSetUp, and I avoid zapi/ztapi.

Marius Gedminas
System going down at 5 this afternoon to install scheduler bug.

Attachment: signature.asc
Description: Digital signature

Zope3-users mailing list

Reply via email to