[Checkins] SVN: zope.testbrowser/trunk/ - Provide a work around for a mechanize/urllib2 bug on Python 2.6
Sidnei da Silva
sidnei at enfoldsystems.com
Fri Oct 10 12:04:10 EDT 2008
Log message for revision 91989:
- Provide a work around for a mechanize/urllib2 bug on Python 2.6
missing 'timeout' attribute on 'Request' base class.
- Bump version on trunk to 3.5.1dev. Apparently 3.5.0 was released a
while ago already. Also, adjust CHANGES.txt to reflect 3.5.0 release
date.
Changed:
U zope.testbrowser/trunk/CHANGES.txt
U zope.testbrowser/trunk/buildout.cfg
U zope.testbrowser/trunk/setup.py
U zope.testbrowser/trunk/src/zope/testbrowser/testing.py
U zope.testbrowser/trunk/src/zope/testbrowser/tests.py
-=-
Modified: zope.testbrowser/trunk/CHANGES.txt
===================================================================
--- zope.testbrowser/trunk/CHANGES.txt 2008-10-10 15:44:47 UTC (rev 91988)
+++ zope.testbrowser/trunk/CHANGES.txt 2008-10-10 16:04:10 UTC (rev 91989)
@@ -2,13 +2,18 @@
CHANGES
=======
-
-3.5.0 (unreleased)
+3.5.1 (unreleased)
------------------
+- Provide a work around for a mechanize/urllib2 bug on Python 2.6
+ missing 'timeout' attribute on 'Request' base class.
+
- Provide a work around for a mechanize/urllib2 bug in creating request
objects that won't handle fragment URLs correctly.
+3.5.0 (2008-03-30)
+------------------
+
- Added a zope.testbrowser.testing.Browser.post method that allows
tests to supply a body and a content type. This is handy for
testing Ajax requests with non-form input (e.g. JSON).
Modified: zope.testbrowser/trunk/buildout.cfg
===================================================================
--- zope.testbrowser/trunk/buildout.cfg 2008-10-10 15:44:47 UTC (rev 91988)
+++ zope.testbrowser/trunk/buildout.cfg 2008-10-10 16:04:10 UTC (rev 91989)
@@ -8,6 +8,8 @@
use-dependency-links = false
[versions]
+mechanize = 0.1.9
+setuptools = 0.6c9
zope.testbrowser =
zope.publisher = 3.5.1
zope.app.publication = 3.4.2
Modified: zope.testbrowser/trunk/setup.py
===================================================================
--- zope.testbrowser/trunk/setup.py 2008-10-10 15:44:47 UTC (rev 91988)
+++ zope.testbrowser/trunk/setup.py 2008-10-10 16:04:10 UTC (rev 91989)
@@ -29,7 +29,7 @@
setup(
name = 'zope.testbrowser',
- version = '3.5.0dev',
+ version = '3.5.1dev',
url = 'http://pypi.python.org/pypi/zope.testbrowser',
license = 'ZPL 2.1',
description = 'Programmable browser for functional black-box tests',
Modified: zope.testbrowser/trunk/src/zope/testbrowser/testing.py
===================================================================
--- zope.testbrowser/trunk/src/zope/testbrowser/testing.py 2008-10-10 15:44:47 UTC (rev 91988)
+++ zope.testbrowser/trunk/src/zope/testbrowser/testing.py 2008-10-10 16:04:10 UTC (rev 91989)
@@ -17,6 +17,7 @@
"""
import re
import sys
+import socket
import unittest
import httplib
import urllib2
@@ -35,7 +36,7 @@
class PublisherConnection(object):
"""A ``urllib2`` compatible connection obejct."""
- def __init__(self, host):
+ def __init__(self, host, timeout=None):
self.caller = functional.HTTPCaller()
self.host = host
@@ -136,6 +137,10 @@
def http_open(self, req):
"""Open an HTTP connection having a ``urllib2`` request."""
# Here we connect to the publisher.
+ if sys.version_info > (2, 6) and not hasattr(req, 'timeout'):
+ # Workaround mechanize incompatibility with Python
+ # 2.6. See: LP #280334
+ req.timeout = socket._GLOBAL_DEFAULT_TIMEOUT
return self.do_open(PublisherConnection, req)
Modified: zope.testbrowser/trunk/src/zope/testbrowser/tests.py
===================================================================
--- zope.testbrowser/trunk/src/zope/testbrowser/tests.py 2008-10-10 15:44:47 UTC (rev 91988)
+++ zope.testbrowser/trunk/src/zope/testbrowser/tests.py 2008-10-10 16:04:10 UTC (rev 91989)
@@ -26,6 +26,8 @@
import mechanize
import os
import re
+import sys
+import socket
import unittest
import unittest
import urllib2
@@ -51,7 +53,7 @@
class FauxConnection(object):
"""A ``urllib2`` compatible connection object."""
- def __init__(self, host):
+ def __init__(self, host, timeout=None):
pass
def set_debuglevel(self, level):
@@ -125,6 +127,11 @@
def http_open(self, req):
"""Open an HTTP connection having a ``urllib2`` request."""
# Here we connect to the publisher.
+
+ if sys.version_info > (2, 6) and not hasattr(req, 'timeout'):
+ # Workaround mechanize incompatibility with Python
+ # 2.6. See: LP #280334
+ req.timeout = socket._GLOBAL_DEFAULT_TIMEOUT
return self.do_open(FauxConnection, req)
@@ -373,6 +380,7 @@
(re.compile(r'Status: 200.*'), 'Status: 200 OK'),
(win32CRLFtransformer(), None),
(re.compile(r'User-Agent: Python-urllib/2.5'), 'User-agent: Python-urllib/2.4'),
+ (re.compile(r'User-Agent: Python-urllib/2.6'), 'User-agent: Python-urllib/2.4'),
(re.compile(r'Host: localhost'), 'Connection: close'),
(re.compile(r'Content-Type: '), 'Content-type: '),
])
More information about the Checkins
mailing list