floppym     14/04/01 01:18:40

  Added:                nose-1.3.1-python3.4.patch
  Log:
  Version bump. Add python3.4.
  
  (Portage version: 2.2.10/cvs/Linux x86_64, signed Manifest commit with key 
0BBEEA1FEA4843A4)

Revision  Changes    Path
1.1                  dev-python/nose/files/nose-1.3.1-python3.4.patch

file : 
http://sources.gentoo.org/viewvc.cgi/gentoo-x86/dev-python/nose/files/nose-1.3.1-python3.4.patch?rev=1.1&view=markup
plain: 
http://sources.gentoo.org/viewvc.cgi/gentoo-x86/dev-python/nose/files/nose-1.3.1-python3.4.patch?rev=1.1&content-type=text/plain

Index: nose-1.3.1-python3.4.patch
===================================================================
>From 192694ed9f70447317bd54e427a17208bddf03be Mon Sep 17 00:00:00 2001
From: John Szakmeister <[email protected]>
Date: Sat, 15 Mar 2014 06:15:42 -0400
Subject: [PATCH] Fix #783: try_run is broken with Python 3.4

It turns out that we expected inspect.getargspec() to only work on
functions (versus classes that are callable).  Python 3.4 has changed
this behavior and now happily returns the arg spec.  Let's try to detect
this situation by checking the __call__() method to if it's actually the
method of a class.  If so, pop the 'self' argument off of args--similar
to what's done in the exceptional case below.
---
 CHANGELOG    | 1 +
 nose/util.py | 4 +++-
 2 files changed, 4 insertions(+), 1 deletion(-)

diff --git a/nose/util.py b/nose/util.py
index 7995700..dcb5fef 100644
--- a/nose/util.py
+++ b/nose/util.py
@@ -8,7 +8,7 @@
 import sys
 import types
 import unittest
-from nose.pyversion import ClassType, TypeType, isgenerator
+from nose.pyversion import ClassType, TypeType, isgenerator, ismethod
 
 
 log = logging.getLogger('nose')
@@ -449,6 +449,8 @@ def try_run(obj, names):
                 # py.test compatibility
                 try:
                     args, varargs, varkw, defaults = inspect.getargspec(func)
+                    if hasattr(func, '__call__') and ismethod(func.__call__):
+                        args.pop(0)
                 except TypeError:
                     # Not a function. If it's callable, call it anyway
                     if hasattr(func, '__call__'):
-- 
1.8.5.5





Reply via email to