From fbd01aca7c6d9ee97a35070398c85192dec3b2af Mon Sep 17 00:00:00 2001 From: Chris McDonough Date: Sat, 24 Sep 2011 05:48:36 -0400 Subject: fix test_init tests for py3 --- pyramid/config/__init__.py | 12 ++++++++++-- pyramid/tests/test_config/test_init.py | 14 +++++++++----- 2 files changed, 19 insertions(+), 7 deletions(-) diff --git a/pyramid/config/__init__.py b/pyramid/config/__init__.py index e90ffcf3b..02a78445e 100644 --- a/pyramid/config/__init__.py +++ b/pyramid/config/__init__.py @@ -16,6 +16,7 @@ from pyramid.authorization import ACLAuthorizationPolicy from pyramid.compat import text_ from pyramid.compat import reraise from pyramid.compat import string_types +from pyramid.compat import PY3 from pyramid.events import ApplicationCreated from pyramid.exceptions import ConfigurationConflictError from pyramid.exceptions import ConfigurationError @@ -659,7 +660,10 @@ class Configurator( c, action_wrap = c if action_wrap: c = action_method(c) - m = types.MethodType(c, self, self.__class__) + if PY3: + m = types.MethodType(c, self) + else: + m = types.MethodType(c, self, self.__class__) return m @classmethod @@ -1000,7 +1004,11 @@ def resolveConflicts(actions): # We need to sort the actions by the paths so that the shortest # path with a given prefix comes first: - dups.sort() + def allbutfunc(stupid): + # f me with a shovel, py3 cant cope with sorting when the + # callable function is in the list + return stupid[0:2] + stupid[3:] + dups.sort(key=allbutfunc) (basepath, i, callable, args, kw, baseinfo) = dups[0] output.append( (i, discriminator, callable, args, kw, basepath, baseinfo) diff --git a/pyramid/tests/test_config/test_init.py b/pyramid/tests/test_config/test_init.py index 302a185f2..b5eb85d59 100644 --- a/pyramid/tests/test_config/test_init.py +++ b/pyramid/tests/test_config/test_init.py @@ -3,6 +3,8 @@ import unittest import os from pyramid.compat import PYPY +from pyramid.compat import im_func +from pyramid.testing import skip_on from pyramid.tests.test_config import dummy_tween_factory from pyramid.tests.test_config import dummy_include @@ -927,6 +929,7 @@ pyramid.tests.test_config.dummy_include2""", self.assertTrue("@view_config(name='two', renderer='string')" in which) + @skip_on('py3') def test_hook_zca(self): from zope.component import getSiteManager def foo(): @@ -940,6 +943,7 @@ pyramid.tests.test_config.dummy_include2""", finally: getSiteManager.reset() + @skip_on('py3') def test_unhook_zca(self): from zope.component import getSiteManager def foo(): @@ -1067,7 +1071,7 @@ pyramid.tests.test_config.dummy_include2""", directives = {'foo':(foo, True)} config.registry._directives = directives foo_meth = config.foo - self.assertTrue(foo_meth.im_func.__docobj__ is foo) + self.assertTrue(getattr(foo_meth, im_func).__docobj__ is foo) def test___getattr__matches_no_action_wrap(self): config = self._makeOne() @@ -1075,7 +1079,7 @@ pyramid.tests.test_config.dummy_include2""", directives = {'foo':(foo, False)} config.registry._directives = directives foo_meth = config.foo - self.assertTrue(foo_meth.im_func is foo) + self.assertTrue(getattr(foo_meth, im_func) is foo) class TestConfiguratorDeprecatedFeatures(unittest.TestCase): def setUp(self): @@ -1306,7 +1310,7 @@ class TestConfigurator_add_directive(unittest.TestCase): config = self.config config.add_directive( 'dummy_extend', 'pyramid.tests.test_config.dummy_extend') - self.assert_(hasattr(config, 'dummy_extend')) + self.assertTrue(hasattr(config, 'dummy_extend')) config.dummy_extend('discrim') after = config.action_state self.assertEqual( @@ -1319,7 +1323,7 @@ class TestConfigurator_add_directive(unittest.TestCase): config = self.config config.add_directive( 'dummy_extend', dummy_extend) - self.assert_(hasattr(config, 'dummy_extend')) + self.assertTrue(hasattr(config, 'dummy_extend')) config.dummy_extend('discrim') after = config.action_state self.assertEqual( @@ -1333,7 +1337,7 @@ class TestConfigurator_add_directive(unittest.TestCase): 'dummy_extend', dummy_extend) config.add_directive( 'dummy_extend', dummy_extend2) - self.assert_(hasattr(config, 'dummy_extend')) + self.assertTrue(hasattr(config, 'dummy_extend')) config.dummy_extend('discrim') after = config.action_state self.assertEqual( -- cgit v1.2.3