From: Mike Bayer Date: Sun, 16 Oct 2005 20:34:19 +0000 (+0000) Subject: (no commit message) X-Git-Tag: rel_0_1_0~515 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=80fae8ca4157f6c67ba0b9abbf83bcb8b49fd4dc;p=thirdparty%2Fsqlalchemy%2Fsqlalchemy.git --- diff --git a/lib/sqlalchemy/mapper.py b/lib/sqlalchemy/mapper.py index 8e068fb6f0..39ce4bc0ed 100644 --- a/lib/sqlalchemy/mapper.py +++ b/lib/sqlalchemy/mapper.py @@ -110,10 +110,11 @@ def noload(name): def object_mapper(object): """given an object, returns the primary Mapper associated with the object or the object's class.""" - try: - return _mappers[object._mapper] - except AttributeError: - return class_mapper(object.__class__) + return class_mapper(object.__class__) +# try: +# return _mappers[object._mapper] +# except AttributeError: +# return class_mapper(object.__class__) def class_mapper(class_): """given a class, returns the primary Mapper associated with the class.""" @@ -499,7 +500,8 @@ class Mapper(object): instance = self.extension.create_instance(self, row, imap, self.class_) if instance is None: instance = self.class_(_mapper_nohistory=True) - instance._mapper = self.hashkey + # attach mapper hashkey to the instance ? + #instance._mapper = self.hashkey instance._instance_key = identitykey imap[identitykey] = instance @@ -746,7 +748,7 @@ class PropertyLoader(MapperProperty): return (obj2, obj1) def process_dependencies(self, task, deplist, uowcommit, delete = False): - #print self.mapper.table.name + " " + repr(len(deplist)) + " process_dep isdelete " + repr(delete) + print self.mapper.table.name + " " + repr(len(deplist)) + " process_dep isdelete " + repr(delete) # fucntion to set properties across a parent/child object plus an "association row", # based on a join condition diff --git a/test/objectstore.py b/test/objectstore.py index faa579353e..a8b3cd112a 100644 --- a/test/objectstore.py +++ b/test/objectstore.py @@ -313,20 +313,32 @@ class SaveTest(AssertMixin): self.assert_(addresstable[0].row == (addressid, userid, 'somethingnew@foo.com')) self.assert_(u.user_id == userid and a2.address_id == addressid) - def testonetomany2(self): + def testmapperswitch(self): + """test that, if we change mappers, the new one gets used fully. not sure if + i want it to work that way, but probably.""" users.insert().execute( dict(user_id = 7, user_name = 'jack'), dict(user_id = 8, user_name = 'ed'), dict(user_id = 9, user_name = 'fred') ) db.connection().commit() + + User.mapper = assignmapper(users) + User.mapper.select() User.mapper = assignmapper(users, properties = dict( addresses = relation(Address, addresses, lazy = False) )) u = User.mapper.select() u[0].addresses.append(Address()) u[0].addresses[0].email_address='hi' - objectstore.commit() + self.assert_sql(db, lambda: objectstore.commit(), + [ + ( + "INSERT INTO email_addresses (address_id, user_id, email_address) VALUES (:address_id, :user_id, :email_address)", + {'email_address': 'hi', 'address_id': None, 'user_id': 7} + ), + ] + ) def testchildmanipulations(self): """digs deeper into modifying the child items of an object to insure the correct diff --git a/test/testbase.py b/test/testbase.py index f72d58c9da..8f7496c631 100644 --- a/test/testbase.py +++ b/test/testbase.py @@ -61,7 +61,7 @@ class EngineAssert(object): (query, params) = item if callable(params): params = params() - self.unittest.assert_(statement == query and params == parameters, query + repr(params) + statement + repr(parameters)) + self.unittest.assert_(statement == query and params == parameters, "Testing for query '%s' params %s, received '%s' with params %s" % (query, repr(params), statement, repr(parameters))) return self.realexec(statement, parameters, **kwargs) def runTests(suite):