[Zope-Checkins] SVN: Zope/trunk/src/ZPublisher/tests/testHTTPRequest.py Remove module-scope imports from unit tests.
Tres Seaver
tseaver at palladion.com
Sun Apr 19 14:20:36 EDT 2009
Log message for revision 99288:
Remove module-scope imports from unit tests.
Changed:
U Zope/trunk/src/ZPublisher/tests/testHTTPRequest.py
-=-
Modified: Zope/trunk/src/ZPublisher/tests/testHTTPRequest.py
===================================================================
--- Zope/trunk/src/ZPublisher/tests/testHTTPRequest.py 2009-04-19 18:08:43 UTC (rev 99287)
+++ Zope/trunk/src/ZPublisher/tests/testHTTPRequest.py 2009-04-19 18:20:36 UTC (rev 99288)
@@ -1,15 +1,5 @@
-import sys
-import base64
import unittest
-from urllib import quote_plus
-from types import ListType, TupleType, StringType, UnicodeType
-from StringIO import StringIO
-from DateTime import DateTime
-from ZPublisher.HTTPRequest import HTTPRequest, record, trusted_proxies
-from ZPublisher.TaintedString import TaintedString
-from ZPublisher.Converters import type_converters
-
TEST_LARGEFILE_DATA = '''
--12345
Content-Disposition: form-data; name="file"; filename="file"
@@ -22,9 +12,11 @@
class AuthCredentialsTests( unittest.TestCase ):
def _getTargetClass(self):
+ from ZPublisher.HTTPRequest import HTTPRequest
return HTTPRequest
def _makeOne(self, stdin=None, environ=None, response=None, clean=1):
+ from StringIO import StringIO
if stdin is None:
stdin = StringIO()
@@ -46,6 +38,7 @@
return self._getTargetClass()(stdin, environ, response, clean)
def test__authUserPW_simple( self ):
+ import base64
user_id = 'user'
password = 'password'
encoded = base64.encodestring( '%s:%s' % ( user_id, password ) )
@@ -61,6 +54,7 @@
def test__authUserPW_with_embedded_colon( self ):
# http://www.zope.org/Collectors/Zope/2039
+ import base64
user_id = 'user'
password = 'embedded:colon'
encoded = base64.encodestring( '%s:%s' % ( user_id, password ) )
@@ -78,6 +72,7 @@
class RecordTests(unittest.TestCase):
def test_repr(self):
+ from ZPublisher.HTTPRequest import record
rec = record()
rec.a = 1
rec.b = 'foo'
@@ -87,10 +82,16 @@
class ProcessInputsTests(unittest.TestCase):
- def _getHTTPRequest(self, env):
- return HTTPRequest(None, env, None)
+ def _getTargetClass(self):
+ from ZPublisher.HTTPRequest import HTTPRequest
+ return HTTPRequest
+
+ def _makeOne(self, environ):
+ return self._getTargetClass()(None, environ, None)
+
def _processInputs(self, inputs):
+ from urllib import quote_plus
# Have the inputs processed, and return a HTTPRequest object holding the
# result.
# inputs is expected to be a list of (key, value) tuples, no CGI
@@ -104,7 +105,7 @@
env = {'SERVER_NAME': 'testingharnas', 'SERVER_PORT': '80'}
env['QUERY_STRING'] = query_string
- req = self._getHTTPRequest(env)
+ req = self._makeOne(env)
req.processInputs()
self._noFormValuesInOther(req)
return req
@@ -117,6 +118,8 @@
# when one is found.
# Also raises an Assertion if a string which *should* have been
# tainted is found, or when a tainted string is not deemed dangerous.
+ from ZPublisher.HTTPRequest import record
+ from ZPublisher.TaintedString import TaintedString
retval = 0
@@ -132,12 +135,12 @@
rval = self._valueIsOrHoldsTainted(value)
if rval: retval = 1
- elif type(val) in (ListType, TupleType):
+ elif type(val) in (list, tuple):
for entry in val:
rval = self._valueIsOrHoldsTainted(entry)
if rval: retval = 1
- elif type(val) in (StringType, UnicodeType):
+ elif type(val) in (str, unicode):
self.failIf('<' in val,
"'%s' is dangerous and should have been tainted." % val)
@@ -194,6 +197,7 @@
self._onlyTaintedformHoldsTaintedStrings(req)
def testSimpleMarshalling(self):
+ from DateTime.DateTime import DateTime
inputs = (
('num:int', '42'), ('fract:float', '4.2'), ('bign:long', '45'),
('words:string', 'Some words'), ('2tokens:tokens', 'one two'),
@@ -601,6 +605,8 @@
def testNoTaintedExceptions(self):
# Feed tainted garbage to the conversion methods, and any exception
# returned should be HTML safe
+ from DateTime.DateTime import DateTime
+ from ZPublisher.Converters import type_converters
for type, convert in type_converters.items():
try:
convert('<html garbage>')
@@ -630,18 +636,18 @@
env = {'SERVER_NAME': 'testingharnas', 'SERVER_PORT': '80'}
env['HTTP_COOKIE'] = 'foo=bar; baz=gee'
- req = self._getHTTPRequest(env)
+ req = self._makeOne(env)
self.assertEquals(req.cookies['foo'], 'bar')
self.assertEquals(req.cookies['baz'], 'gee')
env['HTTP_COOKIE'] = 'foo=bar; baz="gee, like, e=mc^2"'
- req = self._getHTTPRequest(env)
+ req = self._makeOne(env)
self.assertEquals(req.cookies['foo'], 'bar')
self.assertEquals(req.cookies['baz'], 'gee, like, e=mc^2')
# Collector #1498: empty cookies
env['HTTP_COOKIE'] = 'foo=bar; hmm; baz=gee'
- req = self._getHTTPRequest(env)
+ req = self._makeOne(env)
self.assertEquals(req.cookies['foo'], 'bar')
self.assertEquals(req.cookies['hmm'], '')
self.assertEquals(req.cookies['baz'], 'gee')
@@ -651,7 +657,7 @@
'quoted="cookie data with unquoted spaces"; ' \
'multi=cookie data with unquoted spaces; ' \
'multi2=cookie data with unquoted spaces'
- req = self._getHTTPRequest(env)
+ req = self._makeOne(env)
self.assertEquals(req.cookies['single'], 'cookie data')
self.assertEquals(req.cookies['quoted'],
'cookie data with unquoted spaces')
@@ -680,14 +686,23 @@
class RequestTests( unittest.TestCase ):
+ def _getTargetClass(self):
+ from ZPublisher.HTTPRequest import HTTPRequest
+ return HTTPRequest
+
+ def _makeOne(self, stdin, environ, response, clean=0):
+ return self._getTargetClass()(stdin, environ, response, clean)
+
def testRemoveStdinReferences(self):
# Verifies that all references to the input stream go away on
# request.close(). Otherwise a tempfile may stick around.
+ import sys
+ from StringIO import StringIO
s = StringIO(TEST_FILE_DATA)
env = TEST_ENVIRON.copy()
start_count = sys.getrefcount(s)
- req = HTTPRequest(s, env, None)
+ req = self._makeOne(s, env, None)
req.processInputs()
self.assertNotEqual(start_count, sys.getrefcount(s)) # Precondition
req.close()
@@ -695,10 +710,11 @@
def testFileName(self):
# checks fileupload object supports the filename
+ from StringIO import StringIO
s = StringIO(TEST_LARGEFILE_DATA)
env = TEST_ENVIRON.copy()
- req = HTTPRequest(s, env, None)
+ req = self._makeOne(s, env, None)
req.processInputs()
f = req.form.get('file')
self.assert_(f.name)
@@ -706,10 +722,11 @@
def testFileIterator(self):
# checks fileupload object supports the iterator protocol
# collector entry 1837
+ from StringIO import StringIO
s = StringIO(TEST_FILE_DATA)
env = TEST_ENVIRON.copy()
- req = HTTPRequest(s, env, None)
+ req = self._makeOne(s, env, None)
req.processInputs()
f=req.form.get('file')
self.assertEqual(list(f),['test\n'])
@@ -719,17 +736,18 @@
self.assertEqual(f.xreadlines(),f)
def testDebug(self):
+ from zope.publisher.base import DebugFlags
+ from StringIO import StringIO
TEST_ENVIRON = {
'REQUEST_METHOD': 'GET',
'SERVER_NAME': 'localhost',
'SERVER_PORT': '80',
}
- from zope.publisher.base import DebugFlags
s = StringIO('')
# when accessing request.debug we will see the DebugFlags instance
env = TEST_ENVIRON.copy()
- request = HTTPRequest(s, env, None)
+ request = self._makeOne(s, env, None)
self.assert_(isinstance(request.debug, DebugFlags))
# It won't be available through dictonary lookup, though
self.assert_(request.get('debug') is None)
@@ -738,7 +756,7 @@
# if it exists
env = TEST_ENVIRON.copy()
env['QUERY_STRING'] = 'debug=1'
- request = HTTPRequest(s, env, None)
+ request = self._makeOne(s, env, None)
request.processInputs()
self.assertEqual(request.debug, '1')
self.assertEqual(request.get('debug'), '1')
@@ -746,7 +764,7 @@
# we can still override request.debug with a form variable or directly
env = TEST_ENVIRON.copy()
- request = HTTPRequest(s, env, None)
+ request = self._makeOne(s, env, None)
request.processInputs()
self.assert_(isinstance(request.debug, DebugFlags))
request.form['debug'] = '1'
@@ -777,7 +795,7 @@
# is still a marker
from ZPublisher.HTTPRequest import _marker
env = TEST_ENVIRON.copy()
- request = HTTPRequest(s, env, None)
+ request = self._makeOne(s, env, None)
self.assert_(request._locale is _marker)
# when accessing request.locale we will see an ILocale
self.assert_(ILocale.providedBy(request.locale))
@@ -790,7 +808,7 @@
# if it exists
env = TEST_ENVIRON.copy()
env['QUERY_STRING'] = 'locale=1'
- request = HTTPRequest(s, env, None)
+ request = self._makeOne(s, env, None)
request.processInputs()
self.assertEqual(request.locale, '1')
self.assertEqual(request.get('locale'), '1')
@@ -798,7 +816,7 @@
# we can still override request.locale with a form variable
env = TEST_ENVIRON.copy()
- request = HTTPRequest(s, env, None)
+ request = self._makeOne(s, env, None)
request.processInputs()
self.assert_(ILocale.providedBy(request.locale))
request.form['locale'] = '1'
@@ -810,7 +828,7 @@
for httplang in ('it', 'it-ch', 'it-CH', 'IT', 'IT-CH', 'IT-ch'):
env = TEST_ENVIRON.copy()
env['HTTP_ACCEPT_LANGUAGE'] = httplang
- request = HTTPRequest(s, env, None)
+ request = self._makeOne(s, env, None)
locale = request.locale
self.assert_(ILocale.providedBy(locale))
parts = httplang.split('-')
@@ -827,7 +845,7 @@
# Now test for non-existant locale fallback
env = TEST_ENVIRON.copy()
env['HTTP_ACCEPT_LANGUAGE'] = 'xx'
- request = HTTPRequest(s, env, None)
+ request = self._makeOne(s, env, None)
locale = request.locale
self.assert_(ILocale.providedBy(locale))
self.assert_(locale.id.language is None)
@@ -835,6 +853,7 @@
self.assert_(locale.id.variant is None)
def testMethod(self):
+ from StringIO import StringIO
TEST_ENVIRON = {
'REQUEST_METHOD': 'GET',
'SERVER_NAME': 'localhost',
@@ -843,15 +862,17 @@
s = StringIO('')
env = TEST_ENVIRON.copy()
- request = HTTPRequest(s, env, None)
+ request = self._makeOne(s, env, None)
self.assertEqual(request.method, 'GET')
env = TEST_ENVIRON.copy()
env['REQUEST_METHOD'] = 'post'
- request = HTTPRequest(s, env, None)
+ request = self._makeOne(s, env, None)
self.assertEqual(request.method, 'POST')
def testTrustedProxies(self):
+ from StringIO import StringIO
+ from ZPublisher.HTTPRequest import trusted_proxies
TEST_ENVIRON = {
'REQUEST_METHOD': 'GET',
'SERVER_NAME': 'localhost',
@@ -862,28 +883,29 @@
s = StringIO('')
env = TEST_ENVIRON.copy()
- request = HTTPRequest(s, env, None)
+ request = self._makeOne(s, env, None)
self.assertEqual(request.getClientAddr(), '127.0.0.1')
trusted_proxies.append('127.0.0.1')
- request = HTTPRequest(s, env, None)
+ request = self._makeOne(s, env, None)
self.assertEqual(request.getClientAddr(), '192.168.1.100')
trusted_proxies[0] = '192.168.1.100'
env = TEST_ENVIRON.copy()
env['REMOTE_ADDR'] = '192.168.1.100'
- request = HTTPRequest(s, env, None)
+ request = self._makeOne(s, env, None)
self.assertEqual(request.getClientAddr(), '10.1.20.30')
env = TEST_ENVIRON.copy()
del env['REMOTE_ADDR']
- request = HTTPRequest(s, env, None)
+ request = self._makeOne(s, env, None)
self.assertEqual(request.getClientAddr(), '')
def testGetHeader(self):
+ from StringIO import StringIO
s = StringIO('')
env = TEST_ENVIRON.copy()
- request = HTTPRequest(s, env, None)
+ request = self._makeOne(s, env, None)
self.assertEqual(request.getHeader('Content-Type'),
'multipart/form-data; boundary=12345')
More information about the Zope-Checkins
mailing list