[Zope] Testing products outside of zope (i.e., in python inte rpreter)?

Joe Grace Occam@Wizards.com
Fri, 07 Jan 2000 15:20:13 -0800


Michel (& Andrey),

it works!  Thank you very much.  Awesome.

Now I see how Zope is loaded: through a package (directory and
__init__).  Cool.

Yes, Michel, what you suggest is what I'm really looking for (and even
better than I hoped).  Thank you for the clear explanation.  I looked
back at Andrey and can understand more of what he's doing (but I'll take
baby steps for now).  Getting zope running on the prompt is what I
needed.

I'll write up the how-to and post as soon as I can (I hope this
weekend...).

Thanks again,

= Joe =


"michel@digicool.com" wrote:
> 
> >> -----Original Message-----
> >> From: Joe Grace [mailto:Occam@Wizards.com]
> >> Sent: Thursday, January 06, 2000 6:32 PM
> >> To: zope@zope.org
> >> Cc: occam@serv.net
> >> Subject: [Zope] Testing products outside of zope (i.e., in python
> >> interpreter)?
> >>
> >>
> >> Hi,
> >>
> >> is there a way to test zope products outside of zope?
> 
> If your code is not Zope depenent, you can.  If your code it, you can
> use the Zope debugger (based on the Python debugger) but at that point
> you are not 'outside of Zope', you are just not accessing it through the
> web, but via a debugger prompt.
> 
> >> I find that I'm
> >> restarting zope just to update my product and test it, and that seems
> >> painfully slow.  I'd like to just run code outside of zope
> >> interactively
> >> in a shell.  Is that possible?
> 
> Yes.
> 
> >> I'm trying with Boring product (super
> >> simple) and tripping over the Persistence import
> >>
> >>      Import Error: cannot import name Persistent
> >>
> >> I've run into this problem before and assume that Persistent is a C
> >> function.
> 
> It is an ExtensionClass written in C, yes.  To get around this you need
> to 'import Zope'.
> 
> >> How do I make it available to my python interpreter?  I
> >> couldn't figure out where z2.py gets it, but I also am just
> >> dealing with
> >> the python environment for the first time.  I'm using Xemacs
> >> (on NT) if
> >> that makes giving some tips any easier. :-)
> 
> Yep.  Open a shell buffer in your lib/python directory.  In my Zope, I
> have an object in the top level folder called 'Catalog', which is a
> ZCatalog object.
> 
> [michel@korak python]$ python1.5.2
> Python 1.5.2 (#1, Jul  5 1999, 14:47:37)  [GCC egcs-2.91.66
> 19990314/Linux (egcs- on linux2
> Copyright 1991-1995 Stichting Mathematisch Centrum, Amsterdam
> Py$ import Zope, ZPublisher
> Py$ root_folder = Zope.app()
> Py$ root_folder.Catalog
> <ZCatalog instance at 84f77c0>
> Py$ root_folder.Catalog()
> []
> Py$
> 
> -Michel