[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 Checkins mailing list