From: Philip Jenvey Date: Mon, 25 Jan 2010 00:32:47 +0000 (+0000) Subject: revert r6686 and adjust the stacklevel of test_notsane_warning's SAWarning so X-Git-Tag: rel_0_6beta1~29 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=c0835ffdc26e8abe7061ce41f6410e613052469f;p=thirdparty%2Fsqlalchemy%2Fsqlalchemy.git revert r6686 and adjust the stacklevel of test_notsane_warning's SAWarning so it can force it to be emitted --- diff --git a/lib/sqlalchemy/orm/mapper.py b/lib/sqlalchemy/orm/mapper.py index 5faa719d3f..0d4e2adaaf 100644 --- a/lib/sqlalchemy/orm/mapper.py +++ b/lib/sqlalchemy/orm/mapper.py @@ -1443,7 +1443,8 @@ class Mapper(object): elif mapper.version_id_col is not None: util.warn("Dialect %s does not support updated rowcount " - "- versioning cannot be verified." % c.dialect.dialect_description) + "- versioning cannot be verified." % c.dialect.dialect_description, + stacklevel=12) if insert: statement = table.insert() diff --git a/lib/sqlalchemy/util.py b/lib/sqlalchemy/util.py index c2ef814250..f8be5c3fd6 100644 --- a/lib/sqlalchemy/util.py +++ b/lib/sqlalchemy/util.py @@ -1523,17 +1523,17 @@ class WeakIdentityMapping(weakref.WeakKeyDictionary): return self._keyed_weakref(object, self._cleanup) -def warn(msg): +def warn(msg, stacklevel=3): if isinstance(msg, basestring): - warnings.warn(msg, exc.SAWarning, stacklevel=3) + warnings.warn(msg, exc.SAWarning, stacklevel=stacklevel) else: - warnings.warn(msg, stacklevel=3) + warnings.warn(msg, stacklevel=stacklevel) -def warn_deprecated(msg): - warnings.warn(msg, exc.SADeprecationWarning, stacklevel=3) +def warn_deprecated(msg, stacklevel=3): + warnings.warn(msg, exc.SADeprecationWarning, stacklevel=stacklevel) -def warn_pending_deprecation(msg): - warnings.warn(msg, exc.SAPendingDeprecationWarning, stacklevel=3) +def warn_pending_deprecation(msg, stacklevel=3): + warnings.warn(msg, exc.SAPendingDeprecationWarning, stacklevel=stacklevel) def deprecated(message=None, add_deprecation_to_docstring=True): """Decorates a function and issues a deprecation warning on use. diff --git a/test/orm/test_unitofwork.py b/test/orm/test_unitofwork.py index dff59c85a5..324c77e9a5 100644 --- a/test/orm/test_unitofwork.py +++ b/test/orm/test_unitofwork.py @@ -69,10 +69,15 @@ class VersioningTest(_base.MappedTest): @engines.close_open_connections @testing.resolve_artifact_names - def test_0notsane_warning(self): - # This test relies on an SAWarning being emitted, but the - # subsequent tests' emits_warning cause that SAWarning to be - # ignored forever. So it must run first + def test_notsane_warning(self): + # clear the warning module's ignores to force the SAWarning this + # test relies on to be emitted (it may have already been ignored + # forever by other VersioningTests) + try: + del __warningregistry__ + except NameError: + pass + # # # TODO: ???????