From: Ben Darnell Date: Sat, 6 Jun 2015 19:40:21 +0000 (-0400) Subject: Get the tests passing under Python 3.5b2 X-Git-Tag: v4.3.0b1~97 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=2971e857104f8d02fa9107a0e13f50170eb4f30d;p=thirdparty%2Ftornado.git Get the tests passing under Python 3.5b2 --- diff --git a/tornado/test/web_test.py b/tornado/test/web_test.py index 96edd6c24..a93369c11 100644 --- a/tornado/test/web_test.py +++ b/tornado/test/web_test.py @@ -1538,8 +1538,11 @@ class ClearAllCookiesTest(SimpleHandlerTestCase): def test_clear_all_cookies(self): response = self.fetch('/', headers={'Cookie': 'foo=bar; baz=xyzzy'}) set_cookies = sorted(response.headers.get_list('Set-Cookie')) - self.assertTrue(set_cookies[0].startswith('baz=;')) - self.assertTrue(set_cookies[1].startswith('foo=;')) + # Python 3.5 sends 'baz="";'; older versions use 'baz=;' + self.assertTrue(set_cookies[0].startswith('baz=;') or + set_cookies[0].startswith('baz="";')) + self.assertTrue(set_cookies[1].startswith('foo=;') or + set_cookies[1].startswith('foo="";')) class PermissionError(Exception): diff --git a/tornado/util.py b/tornado/util.py index 606ced197..ea4da8763 100644 --- a/tornado/util.py +++ b/tornado/util.py @@ -13,7 +13,6 @@ and `.Resolver`. from __future__ import absolute_import, division, print_function, with_statement import array -import inspect import os import sys import zlib @@ -24,6 +23,13 @@ try: except NameError: xrange = range # py3 +# inspect.getargspec() raises DeprecationWarnings in Python 3.5. +# The two functions have compatible interfaces for the parts we need. +try: + from inspect import getfullargspec as getargspec # py3 +except ImportError: + from inspect import getargspec # py2 + class ObjectDict(dict): """Makes a dictionary behave like an object, with attribute-style access. @@ -284,7 +290,7 @@ class ArgReplacer(object): def __init__(self, func, name): self.name = name try: - self.arg_pos = inspect.getargspec(func).args.index(self.name) + self.arg_pos = getargspec(func).args.index(self.name) except ValueError: # Not a positional parameter self.arg_pos = None