[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