Re: [Zope-CMF] Testing skin scripts and templates using ZopeTestCase.Functional

2005-10-06 Thread Chris Withers

Paul Winkler wrote:

Aha!  I just confirmed that it works as you say in zopectl debug.
(You do have to first make sure that the portal has a REQUEST attribute.)


Yeah, I believe the canonical way is:

from Testing.makerequest import makerequest
portal = makerequest(self.portal)
portal.changeSkin('Nouvelle')

cheers,

Chris

--
Simplistix - Content Management, Zope  Python Consulting
   - http://www.simplistix.co.uk

___
Zope-CMF maillist  -  Zope-CMF@lists.zope.org
http://mail.zope.org/mailman/listinfo/zope-cmf

See http://collector.zope.org/CMF for bug reports and feature requests


[Zope-CMF] Testing skin scripts and templates using ZopeTestCase.Functional

2005-10-05 Thread Paul Winkler
Hi again :)
I'm trying to use CMFTestCase along with ZopeTestCase.Functional
to test my skin scripts.  But how do I get them set up
properly? Anybody have working examples of this?  I wondered
if there might be some in the Plone test suites but if so I
didn't find any.

Example that fails because document_view is 404:

class TestUI(CMFTestCase.CMFTestCase,
 ZopeTestCase.FunctionalTestCase,
 ):

Test the skin scripts and templates.


def getPortal(self):
# Set up a CMF site.
setupCMFSite(app=self.app)
return getattr(self.app, CMFTestCase.portal_name)

def afterSetUp(self):
self.basic_auth = '%s:%s' % (user_name, user_password)
self.setRoles(['Manager', 'Member'])
# Add a folder and a doc.
self.portal.invokeFactory(type_name='Folder', id='folder1')
self.fol1 = self.portal.folder1
data = 'Testing ZSyncer Tool, blah blah blah'
self.fol1.invokeFactory('Document', 'test_doc1',
title='nunya bizness',
text=data)
self.doc1 = self.fol1.test_doc1

def test_DocView(self):
url = self.doc1.absolute_url_path()
import pdb; pdb.set_trace()
response = self.publish(url, self.basic_auth)


Some stepping around with pdb reveals this:

(Pdb) n
 /zope/ZopeSoftwareHome/lib/python/ZPublisher/Publish.py(101)publish()
- request, bind=1)
(Pdb) n
NotFound: 'document_view'

-- 
Paul Winkler
http://www.slinkp.com



___
Zope-CMF maillist  -  Zope-CMF@lists.zope.org
http://mail.zope.org/mailman/listinfo/zope-cmf

See http://collector.zope.org/CMF for bug reports and feature requests


Re: [Zope-CMF] Testing skin scripts and templates using ZopeTestCase.Functional

2005-10-05 Thread Jens Vagelpohl

def test_DocView(self):
url = self.doc1.absolute_url_path()
import pdb; pdb.set_trace()
response = self.publish(url, self.basic_auth)


Some stepping around with pdb reveals this:

(Pdb) n


/zope/ZopeSoftwareHome/lib/python/ZPublisher/Publish.py(101)publish()


- request, bind=1)
(Pdb) n
NotFound: 'document_view'


The machinery doesn't know which skin is selected I presume. You can  
force it by calling changeSkin on the skinnable object manager  
(the portal is one) to select a skin path as set up in the skins tool:


self.portal.changeSkin('Nouvelle')

jens

___
Zope-CMF maillist  -  Zope-CMF@lists.zope.org
http://mail.zope.org/mailman/listinfo/zope-cmf

See http://collector.zope.org/CMF for bug reports and feature requests


Re: [Zope-CMF] Testing skin scripts and templates using ZopeTestCase.Functional

2005-10-05 Thread Paul Winkler
Jens Vagelpohl said:
 def test_DocView(self):
 url = self.doc1.absolute_url_path()
 import pdb; pdb.set_trace()
 response = self.publish(url, self.basic_auth)


 Some stepping around with pdb reveals this:
 
 (Pdb) n

 /zope/ZopeSoftwareHome/lib/python/ZPublisher/Publish.py(101)publish()

 - request, bind=1)
 (Pdb) n
 NotFound: 'document_view'

 The machinery doesn't know which skin is selected I presume. You can
 force it by calling changeSkin on the skinnable object manager
 (the portal is one) to select a skin path as set up in the skins tool:

 self.portal.changeSkin('Nouvelle')

That may well be necessary, but it's evidently not sufficient :-)
Any other ideas?  Meanwhile, it's more time in the debugger for me...
Hmm, now that I think about it, I seem to recall that skin objects
aren't acquired when I'm poking around in zopectl debug either.
Presumably it's the same problem.

I had a look at the tests for CMFCore and CMFDefault, but there don't
seem to be any tests for SkinnableObjectManager at all.
Ouch!


-- 
Paul Winkler
http://www.slinkp.com



___
Zope-CMF maillist  -  Zope-CMF@lists.zope.org
http://mail.zope.org/mailman/listinfo/zope-cmf

See http://collector.zope.org/CMF for bug reports and feature requests


Re: [Zope-CMF] Testing skin scripts and templates using ZopeTestCase.Functional

2005-10-05 Thread Jens Vagelpohl


On 5 Oct 2005, at 23:07, Paul Winkler wrote:

- request, bind=1)
(Pdb) n
NotFound: 'document_view'



The machinery doesn't know which skin is selected I presume. You can
force it by calling changeSkin on the skinnable object manager
(the portal is one) to select a skin path as set up in the skins  
tool:


self.portal.changeSkin('Nouvelle')



That may well be necessary, but it's evidently not sufficient :-)
Any other ideas?  Meanwhile, it's more time in the debugger for me...
Hmm, now that I think about it, I seem to recall that skin objects
aren't acquired when I'm poking around in zopectl debug either.
Presumably it's the same problem.


This specific condition (skin objects not found when in zopectl debug  
or when testing) has *always* been remedied for me by calling  
changeSkin...


jens

___
Zope-CMF maillist  -  Zope-CMF@lists.zope.org
http://mail.zope.org/mailman/listinfo/zope-cmf

See http://collector.zope.org/CMF for bug reports and feature requests


Re: [Zope-CMF] Testing skin scripts and templates using ZopeTestCase.Functional

2005-10-05 Thread Tom Dossis

Paul Winkler wrote:

Hi again :)
I'm trying to use CMFTestCase along with ZopeTestCase.Functional
to test my skin scripts.  But how do I get them set up
properly? Anybody have working examples of this?  I wondered
if there might be some in the Plone test suites but if so I
didn't find any.

Example that fails because document_view is 404:

class TestUI(CMFTestCase.CMFTestCase,
 ZopeTestCase.FunctionalTestCase,
 ):

Test the skin scripts and templates.


def getPortal(self):
# Set up a CMF site.
setupCMFSite(app=self.app)
return getattr(self.app, CMFTestCase.portal_name)

def afterSetUp(self):
self.basic_auth = '%s:%s' % (user_name, user_password)
self.setRoles(['Manager', 'Member'])
# Add a folder and a doc.
self.portal.invokeFactory(type_name='Folder', id='folder1')
self.fol1 = self.portal.folder1
data = 'Testing ZSyncer Tool, blah blah blah'
self.fol1.invokeFactory('Document', 'test_doc1',
title='nunya bizness',
text=data)
self.doc1 = self.fol1.test_doc1

def test_DocView(self):
url = self.doc1.absolute_url_path()
import pdb; pdb.set_trace()
response = self.publish(url, self.basic_auth)


Some stepping around with pdb reveals this:

(Pdb) n

/zope/ZopeSoftwareHome/lib/python/ZPublisher/Publish.py(101)publish()

- request, bind=1)
(Pdb) n
NotFound: 'document_view'



Maybe adding the following in afterSetUp() will help.

self._refreshSkinData()


-Tom
___
Zope-CMF maillist  -  Zope-CMF@lists.zope.org
http://mail.zope.org/mailman/listinfo/zope-cmf

See http://collector.zope.org/CMF for bug reports and feature requests