From: Mike Bayer Date: Sat, 31 Jan 2009 21:10:26 +0000 (+0000) Subject: most orm tests are passing in 3k with pysqlite. collections the biggest area left. X-Git-Tag: rel_0_6_6~294 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=fa53d578e09ea877b4fafc9e59879709cf70782b;p=thirdparty%2Fsqlalchemy%2Fsqlalchemy.git most orm tests are passing in 3k with pysqlite. collections the biggest area left. --- diff --git a/lib/sqlalchemy/dialects/postgres/pg8000.py b/lib/sqlalchemy/dialects/postgres/pg8000.py index b88fd54137..00636dbfe4 100644 --- a/lib/sqlalchemy/dialects/postgres/pg8000.py +++ b/lib/sqlalchemy/dialects/postgres/pg8000.py @@ -72,6 +72,6 @@ class Postgres_pg8000(PGDialect): return ([], opts) def is_disconnect(self, e): - return "connection is closed" in e + return "connection is closed" in str(e) dialect = Postgres_pg8000 diff --git a/lib/sqlalchemy/orm/attributes.py b/lib/sqlalchemy/orm/attributes.py index 729ab12772..446c55b41e 100644 --- a/lib/sqlalchemy/orm/attributes.py +++ b/lib/sqlalchemy/orm/attributes.py @@ -1800,10 +1800,13 @@ def __init__(%(apply_pos)s): """ func_vars = util.format_argspec_init(original__init__, grouped=False) func_text = func_body % func_vars - #TODO: log debug #print func_text + # Py3K + #func_defaults = getattr(original__init__, '__defaults__', None) + # Py2K func = getattr(original__init__, 'im_func', original__init__) func_defaults = getattr(func, 'func_defaults', None) + # end Py2K env = locals().copy() exec func_text in env diff --git a/lib/sqlalchemy/orm/identity.py b/lib/sqlalchemy/orm/identity.py index 0f8b31d0fd..0829d18015 100644 --- a/lib/sqlalchemy/orm/identity.py +++ b/lib/sqlalchemy/orm/identity.py @@ -129,25 +129,35 @@ class WeakInstanceDict(IdentityMap): return self[key] except KeyError: return default - + + # Py2K def items(self): return list(self.iteritems()) def iteritems(self): for state in dict.itervalues(self): + # end Py2K + # Py3K + #def items(self): + # for state in dict.values(self): value = state.obj() if value is not None: yield state.key, value + # Py2K + def values(self): + return list(self.itervalues()) + def itervalues(self): for state in dict.itervalues(self): + # end Py2K + # Py3K + #def values(self): + # for state in dict.values(self): instance = state.obj() if instance is not None: yield instance - def values(self): - return list(self.itervalues()) - def all_states(self): # Py3K # return list(dict.values(self)) diff --git a/test/orm/alltests.py b/test/orm/alltests.py index 2887038548..f628460c11 100644 --- a/test/orm/alltests.py +++ b/test/orm/alltests.py @@ -1,8 +1,8 @@ import testenv; testenv.configure_for_tests() from testlib import sa_unittest as unittest -import inheritance.alltests as inheritance -import sharding.alltests as sharding +from orm.inheritance import alltests as inheritance +from orm.sharding import alltests as sharding def suite(): modules_to_test = ( diff --git a/test/orm/mapper.py b/test/orm/mapper.py index 25fef77419..2406065660 100644 --- a/test/orm/mapper.py +++ b/test/orm/mapper.py @@ -2224,6 +2224,7 @@ class RequirementsTest(_base.MappedTest): primary_key=True), Column('value', String(10))) + # Py2K @testing.resolve_artifact_names def test_baseclass(self): class OldStyle: @@ -2238,7 +2239,8 @@ class RequirementsTest(_base.MappedTest): # TODO: is weakref support detectable without an instance? #self.assertRaises(sa.exc.ArgumentError, mapper, NoWeakrefSupport, t2) - + # end Py2K + @testing.resolve_artifact_names def test_comparison_overrides(self): """Simple tests to ensure users can supply comparison __methods__. diff --git a/test/orm/unitofwork.py b/test/orm/unitofwork.py index 7a8415cdc3..dd1b9b766c 100644 --- a/test/orm/unitofwork.py +++ b/test/orm/unitofwork.py @@ -366,34 +366,6 @@ class MutableTypesTest(_base.MappedTest): "WHERE mutable_t.id = :mutable_t_id", {'mutable_t_id': f1.id, 'val': u'hi', 'data':f1.data})]) - @testing.uses_deprecated() - @testing.resolve_artifact_names - def test_nocomparison(self): - """Changes are detected on MutableTypes lacking an __eq__ method.""" - - f1 = Foo() - f1.data = pickleable.BarWithoutCompare(4,5) - session = create_session(autocommit=False) - session.add(f1) - session.commit() - - self.sql_count_(0, session.commit) - session.close() - - session = create_session(autocommit=False) - f2 = session.query(Foo).filter_by(id=f1.id).one() - self.sql_count_(0, session.commit) - - f2.data.y = 19 - self.sql_count_(1, session.commit) - session.close() - - session = create_session(autocommit=False) - f3 = session.query(Foo).filter_by(id=f1.id).one() - eq_((f3.data.x, f3.data.y), (4,19)) - self.sql_count_(0, session.commit) - session.close() - @testing.resolve_artifact_names def test_unicode(self): """Equivalent Unicode values are not flagged as changed.""" @@ -860,9 +832,8 @@ class DefaultTest(_base.MappedTest): Column('id', Integer, primary_key=True, test_needs_autoincrement=True), Column('hoho', hohotype, server_default=str(hohoval)), - Column('counter', Integer, default=sa.func.char_length("1234567")), - Column('foober', String(30), default="im foober", - onupdate="im the update")) + Column('counter', Integer, default=sa.func.char_length("1234567", type_=Integer)), + Column('foober', String(30), default="im foober", onupdate="im the update")) st = Table('secondary_table', metadata, Column('id', Integer, primary_key=True), @@ -953,14 +924,14 @@ class DefaultTest(_base.MappedTest): # "post-update" mapper(Hoho, default_t) - h1 = Hoho(hoho="15", counter="15") + h1 = Hoho(hoho="15", counter=15) session = create_session() session.add(h1) session.flush() def go(): eq_(h1.hoho, "15") - eq_(h1.counter, "15") + eq_(h1.counter, 15) eq_(h1.foober, "im foober") self.sql_count_(0, go) diff --git a/test/testlib/sa_unittest.py b/test/testlib/sa_unittest.py index 85ee9beb23..7d7ea119e9 100644 --- a/test/testlib/sa_unittest.py +++ b/test/testlib/sa_unittest.py @@ -521,8 +521,8 @@ class TestLoader: #elif type(obj) == types.FunctionType: # Py2K elif type(obj) == types.UnboundMethodType: - return parent(obj.__name__) # end Py2K + return parent(obj.__name__) elif isinstance(obj, TestSuite): return obj elif callable(obj):