Has anyone worked with pmock (http://pmock.sourceforge.net/) or any
other mock framework?

This would let me do real unit testing without the need of creating any
test data or re-run any "already tested" objects.

Here's my test and controller, but I don't know how to bypass the error
below. AFAIK it fails because Root extends controllers.RootController?
How would I mock this?

test_pmock.py:
from turbogtd.controllers import Root
from pmock import *

#Create Root
root = Root()

#Create mocks
root.cherrypy = Mock()
root.cherrypy.session = Mock()

#set expectations
root.cherrypy.session.expects(once()).get(eq('count'),eq(0))

#call controller
root.index()

----

controllers.py:
class Root(controllers.RootController):

    @expose(template="turbogtd.templates.welcome")
    def index(self):
        count = cherrypy.session.get('count', 0) + 1
        return dict()

----

C:\projects\turboGTD>python turbogtd/tests/test_pmock.py
Traceback (most recent call last):
  File "turbogtd/tests/test_pmock.py", line 21, in ?
    root.index()
  File "<string>", line 3, in index
  File
"c:\python24\lib\site-packages\TurboGears-0.9a8-py2.4.egg\turbogears\controllers.py",
line 323, in expose
    accept = cherrypy.request.headers.get('Accept', "").lower()
  File
"c:\python24\lib\site-packages\CherryPy-2.2.1-py2.4.egg\cherrypy\__init__.py",
line 42, in __getattr__
    childobject = getattr(serving, self.__attrname__)
AttributeError: 'thread._local' object has no attribute 'request'


cheers,
atwork


--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"TurboGears" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to [EMAIL PROTECTED]
For more options, visit this group at http://groups.google.com/group/turbogears
-~----------~----~----~----~------~----~------~--~---

Reply via email to