[Zope] Re: ZopeTestCase.Functional and sessions?
Stefan H. Holek
stefan at epy.co.at
Mon Nov 21 03:45:13 EST 2005
Well, yes. As you have already discovered, publish() creates it's own
REQUEST (also see ZPublisher.Test). All you have after a call to
publish() is the response object. Note that you *can* check ZODB-
based variables after publish(). However the REQUEST is not stored in
the ZODB...
Which begs the question why you need publish() in the first place. It
is only useful if you want to test the Publisher, i.e. the status
code, or some returned headers and cookies. Everything else can be
tested directly. How to put a session object into self.app.REQUEST is
demonstrated in the testShoppingCart.py example test.
Stefan
On 21. Nov 2005, at 03:46, Paul Winkler wrote:
> Yes, everything is fine unless you attempt to access the session
> from the test code. So I can't see any way to e.g. assert that after
> publishing a page, a certain variable is set in the session.
> For example, I wish I could rewrite your test like so:
>
> def testUseSessions(self):
> response = self.publish(self.folder_path+'/use_session')
> self.assertEqual(response.getStatus(), 200)
> self.assertEqual(self.app.REQUEST.SESSION.get('foo', 'xxx'),
> 'bar')
>
--
Anything that happens, happens. --Douglas Adams
More information about the Zope
mailing list