From 5ddb82c229cdbe27965984d70a8dd4cdd6efd04f Mon Sep 17 00:00:00 2001 From: Philip Jenvey Date: Fri, 17 Jul 2009 05:35:02 +0000 Subject: [PATCH] skip profiling tests on Jython and platforms that lack hotshot/cProfile --- lib/sqlalchemy/test/profiling.py | 14 +++++++++++--- test/aaa_profiling/test_memusage.py | 7 ++++++- 2 files changed, 17 insertions(+), 4 deletions(-) diff --git a/lib/sqlalchemy/test/profiling.py b/lib/sqlalchemy/test/profiling.py index c2c00c42bd..8cab6ceba1 100644 --- a/lib/sqlalchemy/test/profiling.py +++ b/lib/sqlalchemy/test/profiling.py @@ -6,8 +6,9 @@ in a more fine-grained way than nose's profiling plugin. """ import os, sys +from sqlalchemy.test import config from sqlalchemy.test.util import function_named, gc_collect -import config +from nose import SkipTest __all__ = 'profiled', 'function_call_count', 'conditional_call_count' @@ -162,15 +163,22 @@ def conditional_call_count(discriminator, categories): def _profile(filename, fn, *args, **kw): global profiler if not profiler: - profiler = 'hotshot' if sys.version_info > (2, 5): try: import cProfile profiler = 'cProfile' except ImportError: pass + if not profiler: + try: + import hotshot + profiler = 'hotshot' + except ImportError: + profiler = 'skip' - if profiler == 'cProfile': + if profiler == 'skip': + raise SkipTest('Profiling not supported on this platform') + elif profiler == 'cProfile': return _profile_cProfile(filename, fn, *args, **kw) else: return _profile_hotshot(filename, fn, *args, **kw) diff --git a/test/aaa_profiling/test_memusage.py b/test/aaa_profiling/test_memusage.py index 795bd4b575..fbf0560ca1 100644 --- a/test/aaa_profiling/test_memusage.py +++ b/test/aaa_profiling/test_memusage.py @@ -2,6 +2,7 @@ from sqlalchemy.test.testing import eq_ from sqlalchemy.orm import mapper, relation, create_session, clear_mappers, sessionmaker from sqlalchemy.orm.mapper import _mapper_registry from sqlalchemy.orm.session import _sessions +from sqlalchemy.util import jython import operator from sqlalchemy.test import testing from sqlalchemy import MetaData, Integer, String, ForeignKey, PickleType @@ -12,6 +13,10 @@ from sqlalchemy.test.util import gc_collect import gc from test.orm import _base +if jython: + from nose import SkipTest + raise SkipTest("Profiling not supported on this platform") + class A(_base.ComparableEntity): pass @@ -61,7 +66,7 @@ class EnsureZeroed(_base.ORMTest): class MemUsageTest(EnsureZeroed): # ensure a pure growing test trips the assertion - @testing.fails_if(lambda:True) + @testing.fails_if(lambda: True) def test_fixture(self): class Foo(object): pass -- 2.47.3