[Twisted-Python] Re: [Twisted-commits] r16495 - test that scripts wrapped in a CGIDirectory resource actually execute
Jean-Paul Calderone
exarkun at divmod.com
Wed Mar 29 09:46:58 EST 2006
On Tue, 28 Mar 2006 22:29:13 -0700, David Reid <dreid at wolfwood.twistedmatrix.com> wrote:
>Author: dreid
>Date: Tue Mar 28 22:29:11 2006
>New Revision: 16495
>
>Modified:
> branches/childNotFound-1596/twisted/web2/test/test_cgi.py
>Log:
>test that scripts wrapped in a CGIDirectory resource actually execute
>
>Modified: branches/childNotFound-1596/twisted/web2/test/test_cgi.py
>==============================================================================
>--- branches/childNotFound-1596/twisted/web2/test/test_cgi.py (original)
>+++ branches/childNotFound-1596/twisted/web2/test/test_cgi.py Tue Mar 28 22:29:11 2006
>@@ -161,7 +161,7 @@
>
> self.failUnless(isinstance(resource, (twcgi.CGIScript,)))
>
>- def testAnotherDirectory(self):
>+ def testSubDirectory(self):
> resource, segments = self.root.locateChild(None, ('directory',
> 'paths',
> 'that',
>@@ -170,4 +170,46 @@
>
> self.failUnless(isinstance(resource, twcgi.CGIDirectory))
>
>-
>+ def createScript(self, filename):
>+ cgiFile = open(filename, 'wt')
>+ cgiFile.write("#!%s\n\n%s" % (sys.executable,
>+ DUMMY_CGI))
>+ cgiFile.close()
>+ os.chmod(filename, 0700)
>+
>+ def testScriptsExecute(self):
>+ cgiBinDir = os.path.abspath(self.mktemp())
>+ os.mkdir(cgiBinDir)
>+ root = twcgi.CGIDirectory(cgiBinDir)
>+
>+ self.createScript(os.path.join(cgiBinDir, 'dummy'))
>+
>+ cgiSubDir = os.path.join(cgiBinDir, 'sub')
>+ os.mkdir(cgiSubDir)
>+
>+ self.createScript(os.path.join(cgiSubDir, 'dummy'))
>+
>+ self.p = reactor.listenTCP(0, channel.HTTPFactory(server.Site(root)))
>+ portnum = self.p.getHost().port
>+
>+ def _firstResponse(res):
>+ self.failUnlessEqual(res, "cgi output%s" % os.linesep)
>+
>+ return client.getPage('http://localhost:%d/sub/dummy' % portnum)
>+
>+ def _secondResponse(res):
>+ self.failUnlessEqual(res, "cgi output%s" % os.linesep)
>+
>+ def _cleanup(res):
>+ d = self.p.stopListening()
>+ d.addCallback(lambda ign: res)
>+ return d
>+
>+ d = client.getPage('http://localhost:%d/dummy' % portnum)
>+
>+ d.addCallback(_firstResponse
>+ ).addCallback(_secondResponse
>+ ).addBoth(_cleanup)
>+
>+ return d
>+ testScriptsExecute.timeout=10
>
Tabs?
Jean-Paul
More information about the Twisted-Python
mailing list