Thanks for the quick reply Jean-Paul. I just removed nose from the equation. And now, only firefox or chrome can actually get to the webpages/Twisted webserver, but getPage keeps printing that exception. It seems I've reduced the problem to getPage. I ran a separate thread and used urlopen, and even that can actually get the https webpage hosted on the twisted server. It seems getPage's https support/tests need to be extended perhaps? (I wish I could help find the bug). I know I need to isolate the bug from my project into a simple example that can illustrate the bug. Unfortunately, I'm not sure I've the time to do that right now.
On Wed, Jul 4, 2012 at 7:09 AM, <[email protected]> wrote: > On 3 Jul, 09:54 pm, [email protected] wrote: >>Hi All, >> >>I have a flask application that I am running on a https twisted >>webserver and forwarding the port to a url. Everything works well. I >>can goto the url using firefox, accept the certificate and get in. >> >>I have a small nose test to test if the url is up. Here is the test: >> >> @deferred(timeout = 31) >> @defer.inlineCallbacks >> def test_if_forwarding_url_is_ready(self): >> """ >> furl: Check if url is accessible >> """ >> # First wait for 10 seconds >> yield task.deferLater(reactor, 10, lambda:None) >> delay = 2 >> secureurl = Config.General.url >> # Every two seconds do a query and find out if you can get >> # data from the mapped url. If you can, then exit >> for i in range(15): >> got_data = False >> print "Trial :", i >> try: >> output = yield getPage(secureurl) >> got_data = True >> except Exception as E: >> print "Exception occurred:", E >> got_data = False >> if got_data == True: >> assert "secure magic" in output >> return >> yield task.deferLater(reactor, delay, lambda:None) >> # All 15 trials to get data from the url failed >> assert False >> >>When the test is run, it fails "most of the time" and outputs: >> >>Exception occurred: [('SSL routines', 'SSL23_READ', 'ssl handshake >>failure')] >> >>But if I run the test and right away goto the secureurl manually using >>firefox or chrome, as soon as I am on the webpage, the test passes! >>Sometimes I've seen the test will pass after 8 trials, if that is when >>I can type the url in firefox and press enter! >> >>Any ideas what is causing this and how to fix it? Maybe I am doing >>something stupid and perhaps someone can help me rewrite this code. > > nose used to support Twisted with some gross, arguably incorrect code. > I don't know if this is still the case, but it's perhaps something to > investigate. > > Apart from that, getPage uses Twisted's regular ("standard"? "only"?) > SSL support to do HTTPS. There *shouldn't* be anything particular to > getPage that would cause the handshake to fail, so either Twisted's SSL > support is broken in general in whatever configuration you're using, or > the problem isn't in Twisted. > > Jean-Paul > > _______________________________________________ > Twisted-Python mailing list > [email protected] > http://twistedmatrix.com/cgi-bin/mailman/listinfo/twisted-python _______________________________________________ Twisted-Python mailing list [email protected] http://twistedmatrix.com/cgi-bin/mailman/listinfo/twisted-python
