[Twisted-Python] Problem with unittesting HTTP POST resource

Teemu Harju teemu.harju at gmail.com
Tue Apr 8 05:28:45 MDT 2008


Hi,
I'm kind of a newbie in what comes to using Twisted and I'm stuck with a
problem that I cannot seem to solve.

My problem is that I'm experimenting with "trial" to be able to test my
code. (I've heard that it is a wise thing to do ;-)). What I have is a
simple HTTP resource that allows POSTing data. I made this example to
illustrate my problem...

import urllib

from twisted.internet import reactor
from twisted.web import resource, server, client, error
from twisted.trial import unittest

class TestResource(resource.Resource):

    def render_POST(self, request):
        return str(request.args)


class SimpleResourceTest(unittest.TestCase):

    def _listen(self, site):
        return reactor.listenTCP(0, site, interface="127.0.0.1")

    def setUp(self):
        r = resource.Resource()
        r.putChild("test", TestResource())
        site = server.Site(r, timeout=None)
        self.port = self._listen(site)
        self.portno = self.port.getHost().port

    def tearDown(self):
        if self.port:
            return self.port.stopListening()

    def getURL(self, path):
        return "http://127.0.0.1:%d/%s" % (self.portno, path)

    def test_postdata(self):
        d = client.getPage(self.getURL("test"), method="POST",
                           postdata=urllib.urlencode({"test": "data"}))
        d.addCallback(self.failIfEqual, "{}")
        return d


I used some of the unittests in Twisted Web as an example and at least I
think I've got this right. However, as you can see if you run this, the test
fails. Which means that the request.args dictionary is empty. However, there
should be something since I've set the postdata parameter on the
client.getPage() method. I would really appreciate all the help here since I
cannot figure out where the postdata disappears.

Regards,

Teemu

-- 
Teemu Harju

email/jabber: teemu.harju at gmail.com
blog: http://www.teemuharju.net

~~ "A computer is like air conditioning: it becomes useless when you open
windows." ~~
-------------- next part --------------
An HTML attachment was scrubbed...
URL: </pipermail/twisted-python/attachments/20080408/e20d9ec3/attachment.html>


More information about the Twisted-Python mailing list