Commits

Robert Brewer committed 41874dc

trunk: sync with python3

Comments (0)

Files changed (3)

cherrypy/test/helper.py

 """A library of helper functions for the CherryPy test suite."""
 
 import datetime
-from cherrypy._cpcompat import basestring, copyitems, HTTPSConnection, ntob
 import logging
 log = logging.getLogger(__name__)
 import os
 import warnings
 
 import cherrypy
+from cherrypy._cpcompat import basestring, copyitems, HTTPSConnection, ntob
 from cherrypy.lib import httputil
 from cherrypy.lib.reprconf import unrepr
 from cherrypy.test import webtest
 
+import nose
+
 _testconfig = None
 
 def get_tst_config(overconf = {}):
         return webtest.WebCase.getPage(self, url, headers, method, body, protocol)
     
     def skip(self, msg='skipped '):
-        sys.stderr.write(msg)
+        raise nose.SkipTest(msg)
     
     def assertErrorPage(self, status, message=None, pattern=''):
         """Compare the response body with a built in error page.

cherrypy/test/test_http.py

             c = HTTPConnection('%s:%s' % (self.interface(), self.PORT))
         c._output(ntob('GET /'))
         c._send_output()
-        response = c.response_class(c.sock, strict=c.strict, method='GET')
+        if hasattr(c, 'strict'):
+            response = c.response_class(c.sock, strict=c.strict, method='GET')
+        else:
+            # Python 3.2 removed the 'strict' feature, saying:
+            # "http.client now always assumes HTTP/1.x compliant servers."
+            response = c.response_class(c.sock, method='GET')
         response.begin()
         self.assertEqual(response.status, 400)
         self.assertEqual(response.fp.read(22), ntob("Malformed Request-Line"))

cherrypy/test/test_static.py

-from cherrypy._cpcompat import HTTPConnection, HTTPSConnection
+from cherrypy._cpcompat import HTTPConnection, HTTPSConnection, ntob
 from cherrypy._cpcompat import BytesIO
 
 import os
 
     def setup_server():
         if not os.path.exists(has_space_filepath):
-            open(has_space_filepath, 'wb').write('Hello, world\r\n')
+            open(has_space_filepath, 'wb').write(ntob('Hello, world\r\n'))
         if not os.path.exists(bigfile_filepath):
-            open(bigfile_filepath, 'wb').write("x" * BIGFILE_SIZE)
+            open(bigfile_filepath, 'wb').write(ntob("x" * BIGFILE_SIZE))
         
         class Root:
             
             fileobj.exposed = True
             
             def bytesio(self):
-                f = BytesIO('Fee\nfie\nfo\nfum')
+                f = BytesIO(ntob('Fee\nfie\nfo\nfum'))
                 return static.serve_fileobj(f, content_type='text/plain')
             bytesio.exposed = True
         
         # Check that we get an error if no .file or .dir
         self.getPage("/error/thing.html")
         self.assertErrorPage(500)
-        self.assertInBody("TypeError: staticdir() takes at least 2 "
-                          "arguments (0 given)")
+        self.assertMatchesBody(ntob("TypeError: staticdir\(\) takes at least 2 "
+                                    "(positional )?arguments \(0 given\)"))
     
     def test_security(self):
         # Test up-level security
         response.begin()
         self.assertEqual(response.status, 200)
         
-        body = ''
+        body = ntob('')
         remaining = BIGFILE_SIZE
         while remaining > 0:
             data = response.fp.read(65536)
             else:
                 newconn = HTTPConnection
             s, h, b = helper.webtest.openURL(
-                "/tell", headers=[], host=self.HOST, port=self.PORT,
+                ntob("/tell"), headers=[], host=self.HOST, port=self.PORT,
                 http_conn=newconn)
             if not b:
                 # The file was closed on the server.
                     "as intended, or at the wrong chunk size (65536)" %
                     (expected, tell_position))
         
-        if body != "x" * BIGFILE_SIZE:
+        if body != ntob("x" * BIGFILE_SIZE):
             self.fail("Body != 'x' * %d. Got %r instead (%d bytes)." %
                       (BIGFILE_SIZE, body[:50], len(body)))
         conn.close()
         response.begin()
         self.assertEqual(response.status, 200)
         body = response.fp.read(65536)
-        if body != "x" * len(body):
+        if body != ntob("x" * len(body)):
             self.fail("Body != 'x' * %d. Got %r instead (%d bytes)." %
                       (65536, body[:50], len(body)))
         response.close()
         # Make a second request, which should fetch the whole file.
         self.persistent = False
         self.getPage("/bigfile")
-        if self.body != "x" * BIGFILE_SIZE:
+        if self.body != ntob("x" * BIGFILE_SIZE):
             self.fail("Body != 'x' * %d. Got %r instead (%d bytes)." %
                       (BIGFILE_SIZE, self.body[:50], len(body)))
 
Tip: Filter by directory path e.g. /media app.js to search for public/media/app.js.
Tip: Use camelCasing e.g. ProjME to search for ProjectModifiedEvent.java.
Tip: Filter by extension type e.g. /repo .js to search for all .js files in the /repo directory.
Tip: Separate your search with spaces e.g. /ssh pom.xml to search for src/ssh/pom.xml.
Tip: Use ↑ and ↓ arrow keys to navigate and return to view the file.
Tip: You can also navigate files with Ctrl+j (next) and Ctrl+k (previous) and view the file with Ctrl+o.
Tip: You can also navigate files with Alt+j (next) and Alt+k (previous) and view the file with Alt+o.