From 990ec5163abaa67017e36cee76b44366c24c4d5a Mon Sep 17 00:00:00 2001 From: Mike Bayer Date: Fri, 12 Jun 2009 16:56:19 +0000 Subject: [PATCH] py3k fixes --- lib/sqlalchemy/test/assertsql.py | 1 - lib/sqlalchemy/test/noseplugin.py | 1 - lib/sqlalchemy/util.py | 2 +- sqla_nose.py | 22 ++++++++++++++++++++++ test/base/test_utils.py | 10 ++++++++-- test/dialect/test_mysql.py | 4 ++++ test/sql/test_types.py | 6 +++--- test/zblog/mappers.py | 4 ++-- test/zblog/test_zblog.py | 6 +++--- 9 files changed, 43 insertions(+), 13 deletions(-) create mode 100644 sqla_nose.py diff --git a/lib/sqlalchemy/test/assertsql.py b/lib/sqlalchemy/test/assertsql.py index dc2c6d40f8..1af28794ed 100644 --- a/lib/sqlalchemy/test/assertsql.py +++ b/lib/sqlalchemy/test/assertsql.py @@ -3,7 +3,6 @@ from sqlalchemy.interfaces import ConnectionProxy from sqlalchemy.engine.default import DefaultDialect from sqlalchemy.engine.base import Connection from sqlalchemy import util -import testing import re class AssertRule(object): diff --git a/lib/sqlalchemy/test/noseplugin.py b/lib/sqlalchemy/test/noseplugin.py index 41c3bcdbac..ddf4b32e4c 100644 --- a/lib/sqlalchemy/test/noseplugin.py +++ b/lib/sqlalchemy/test/noseplugin.py @@ -75,7 +75,6 @@ class NoseSQLAlchemy(Plugin): def configure(self, options, conf): Plugin.configure(self, options, conf) - import testing, requires testing.db = db testing.requires = requires diff --git a/lib/sqlalchemy/util.py b/lib/sqlalchemy/util.py index 114aa6814e..f970f3737d 100644 --- a/lib/sqlalchemy/util.py +++ b/lib/sqlalchemy/util.py @@ -949,7 +949,7 @@ class IdentitySet(object): if len(self) > len(other): return False - for m in itertools.ifilterfalse(other._members.has_key, + for m in itertools.ifilterfalse(other._members.__contains__, self._members.iterkeys()): return False return True diff --git a/sqla_nose.py b/sqla_nose.py new file mode 100644 index 0000000000..0542b4e5dd --- /dev/null +++ b/sqla_nose.py @@ -0,0 +1,22 @@ +""" +nose runner script. + +Only use this script if setuptools is not available, i.e. such as +on Python 3K. Otherwise consult README.unittests for the +recommended methods of running tests. + +""" + +import nose +from sqlalchemy.test.noseplugin import NoseSQLAlchemy +from sqlalchemy.util import py3k + +if __name__ == '__main__': + if py3k: + # this version breaks verbose output, + # but is the only API that nose3 currently supports + nose.main(plugins=[NoseSQLAlchemy()]) + else: + # this is the "correct" API + nose.main(addplugins=[NoseSQLAlchemy()]) + diff --git a/test/base/test_utils.py b/test/base/test_utils.py index 4ff2d2a45d..e4c2eaba05 100644 --- a/test/base/test_utils.py +++ b/test/base/test_utils.py @@ -261,7 +261,7 @@ class IdentitySetTest(TestBase): except TypeError: assert True - assert_raises(TypeError, cmp, ids) + assert_raises(TypeError, util.cmp, ids) assert_raises(TypeError, hash, ids) def test_difference(self): @@ -326,11 +326,13 @@ class DictlikeIteritemsTest(TestBase): d = subdict(a=1,b=2,c=3) self._ok(d) + # Py2K def test_UserDict(self): import UserDict d = UserDict.UserDict(a=1,b=2,c=3) self._ok(d) - + # end Py2K + def test_object(self): self._notok(object()) @@ -340,12 +342,15 @@ class DictlikeIteritemsTest(TestBase): return iter(self.baseline) self._ok(duck1()) + # Py2K def test_duck_2(self): class duck2(object): def items(duck): return list(self.baseline) self._ok(duck2()) + # end Py2K + # Py2K def test_duck_3(self): class duck3(object): def iterkeys(duck): @@ -353,6 +358,7 @@ class DictlikeIteritemsTest(TestBase): def __getitem__(duck, key): return dict(a=1,b=2,c=3).get(key) self._ok(duck3()) + # end Py2K def test_duck_4(self): class duck4(object): diff --git a/test/dialect/test_mysql.py b/test/dialect/test_mysql.py index 7cf51a890c..44cfe11f2c 100644 --- a/test/dialect/test_mysql.py +++ b/test/dialect/test_mysql.py @@ -1,5 +1,9 @@ from sqlalchemy.test.testing import eq_ + +# Py2K import sets +# end Py2K + from sqlalchemy import * from sqlalchemy import sql, exc from sqlalchemy.dialects.mysql import base as mysql diff --git a/test/sql/test_types.py b/test/sql/test_types.py index 9d35ce7805..084fbede47 100644 --- a/test/sql/test_types.py +++ b/test/sql/test_types.py @@ -348,7 +348,7 @@ class UnicodeTest(TestBase, AssertsExecutionResults): u = Unicode(assert_unicode=True) uni = u.dialect_impl(testing.db.dialect).bind_processor(testing.db.dialect) # Py3K - #self.assertRaises(exc.InvalidRequestError, uni, b'x') + #assert_raises(exc.InvalidRequestError, uni, b'x') # Py2K assert_raises(exc.InvalidRequestError, uni, 'x') # end Py2K @@ -356,7 +356,7 @@ class UnicodeTest(TestBase, AssertsExecutionResults): u = Unicode() uni = u.dialect_impl(testing.db.dialect).bind_processor(testing.db.dialect) # Py3K - #self.assertRaises(exc.SAWarning, uni, b'x') + #assert_raises(exc.SAWarning, uni, b'x') # Py2K assert_raises(exc.SAWarning, uni, 'x') # end Py2K @@ -367,7 +367,7 @@ class UnicodeTest(TestBase, AssertsExecutionResults): s = String() uni = s.dialect_impl(unicode_engine.dialect).bind_processor(unicode_engine.dialect) # Py3K - #self.assertRaises(exc.InvalidRequestError, uni, b'x') + #assert_raises(exc.InvalidRequestError, uni, b'x') #assert isinstance(uni(unicodedata), bytes) # Py2K assert_raises(exc.InvalidRequestError, uni, 'x') diff --git a/test/zblog/mappers.py b/test/zblog/mappers.py index 5203bd866a..126d2c5684 100644 --- a/test/zblog/mappers.py +++ b/test/zblog/mappers.py @@ -1,7 +1,7 @@ """mapper.py - defines mappers for domain objects, mapping operations""" -import tables, user -from blog import * +from test.zblog import tables, user +from test.zblog.blog import * from sqlalchemy import * from sqlalchemy.orm import * import sqlalchemy.util as util diff --git a/test/zblog/test_zblog.py b/test/zblog/test_zblog.py index 8170766cb2..5e46c1cebc 100644 --- a/test/zblog/test_zblog.py +++ b/test/zblog/test_zblog.py @@ -1,9 +1,9 @@ from sqlalchemy import * from sqlalchemy.orm import * from sqlalchemy.test import * -import mappers, tables -from user import * -from blog import * +from test.zblog import mappers, tables +from test.zblog.user import * +from test.zblog.blog import * class ZBlogTest(TestBase, AssertsExecutionResults): -- 2.47.3