from sqlalchemy.mapper import *
import StringIO
import sqlalchemy.objectstore as objectstore
+import testbase
+echo = testbase.echo
+testbase.echo = False
from tables import *
keywords.delete().execute()
db.connection().commit()
+db.echo = echo
+testbase.echo = echo
class HistoryTest(AssertMixin):
def testattr(self):
u.address = a
u.address.email_address = 'myonlyaddress@foo.com'
objectstore.uow().commit()
-
+ self.echo("\n\n\n")
objectstore.uow().register_deleted(u)
objectstore.uow().commit()
self.assert_(a.address_id is not None and a.user_id is None and not objectstore.uow().identity_map.has_key(u._instance_key) and objectstore.uow().identity_map.has_key(a._instance_key))
self.echo( repr(u.orders))
self.assert_result(l, data[0], *data[1:])
+ self.echo("\n\n\n")
objectstore.uow().register_deleted(l[0])
objectstore.uow().register_deleted(l[2])
res = self.capture_exec(db, lambda: objectstore.uow().commit())
[{'email_address': 'emailaddress3', 'user_id': %d, 'email_addresses_address_id': %d}, {'email_address': 'emailaddress1', 'user_id': None, 'email_addresses_address_id': %d}]
""" % (u2.user_id, u1.user_id, a3.address_id, a1.address_id))
+ def testbackwardsmanipulations(self):
+ m = mapper(Address, addresses, properties = dict(
+ user = relation(User, users, lazy = True, uselist = False)
+ ))
+ a1 = Address()
+ a1.email_address = 'emailaddress1'
+ u1 = User()
+ u1.user_name='user1'
+
+ a1.user = u1
+ objectstore.commit()
+
+ objectstore.delete(u1)
+ a1.user = None
+ objectstore.commit()
+
def _testalias(self):
"""tests that an alias of a table can be used in a mapper.
the mapper has to locate the original table and columns to keep it all straight."""