[Checkins] SVN: z3c.zalchemy/trunk/ Merged changes for
compatibility with SQLAlchemy 0.4 from darryl's branch.
Christian Theune
ct at gocept.com
Fri Dec 28 05:34:52 EST 2007
Log message for revision 82475:
Merged changes for compatibility with SQLAlchemy 0.4 from darryl's branch.
Made a minor adjustment to the TRANSACTION.txt tests because an exception
representation changed in SQLAlchemy.
Simplified setup.py/buildout.cfg a bit
--This line, and those below, will be ignored--
M buildout.cfg
M CHANGES.txt
M src/z3c/zalchemy/demo/demo_1/message.py
M src/z3c/zalchemy/demo/demo_2/message.py
M src/z3c/zalchemy/demo/demo_3/message.py
M src/z3c/zalchemy/demo/demo_4/message.py
M src/z3c/zalchemy/datamanager.py
M src/z3c/zalchemy/tests/TRANSACTION.txt
M src/z3c/zalchemy/tests/environ.py
M src/z3c/zalchemy/tests/test_container.py
M src/z3c/zalchemy/intid/keyreference.txt
M src/z3c/zalchemy/intid/keyreference.py
M src/z3c/zalchemy/container.py
M src/z3c/zalchemy/README.txt
M setup.py
Changed:
U z3c.zalchemy/trunk/CHANGES.txt
U z3c.zalchemy/trunk/buildout.cfg
U z3c.zalchemy/trunk/setup.py
U z3c.zalchemy/trunk/src/z3c/zalchemy/README.txt
U z3c.zalchemy/trunk/src/z3c/zalchemy/container.py
U z3c.zalchemy/trunk/src/z3c/zalchemy/datamanager.py
U z3c.zalchemy/trunk/src/z3c/zalchemy/demo/demo_1/message.py
U z3c.zalchemy/trunk/src/z3c/zalchemy/demo/demo_2/message.py
U z3c.zalchemy/trunk/src/z3c/zalchemy/demo/demo_3/message.py
U z3c.zalchemy/trunk/src/z3c/zalchemy/demo/demo_4/message.py
U z3c.zalchemy/trunk/src/z3c/zalchemy/intid/keyreference.py
U z3c.zalchemy/trunk/src/z3c/zalchemy/intid/keyreference.txt
U z3c.zalchemy/trunk/src/z3c/zalchemy/tests/TRANSACTION.txt
U z3c.zalchemy/trunk/src/z3c/zalchemy/tests/environ.py
U z3c.zalchemy/trunk/src/z3c/zalchemy/tests/test_container.py
-=-
Modified: z3c.zalchemy/trunk/CHANGES.txt
===================================================================
--- z3c.zalchemy/trunk/CHANGES.txt 2007-12-28 10:20:13 UTC (rev 82474)
+++ z3c.zalchemy/trunk/CHANGES.txt 2007-12-28 10:34:52 UTC (rev 82475)
@@ -2,9 +2,13 @@
Changes
=======
-0.2.2 - unreleased
+0.3 - (unreleased)
==================
+ - Updated to SQLAlchmy 0.4 compatibility. `z3c.zalchemy` now requires
+ SQLAlchemy 0.4
+
+
0.2.1 - 2007-11-13
==================
Modified: z3c.zalchemy/trunk/buildout.cfg
===================================================================
--- z3c.zalchemy/trunk/buildout.cfg 2007-12-28 10:20:13 UTC (rev 82474)
+++ z3c.zalchemy/trunk/buildout.cfg 2007-12-28 10:34:52 UTC (rev 82475)
@@ -1,9 +1,7 @@
[buildout]
parts = test
develop = .
-find-links = http://download.zope.org/distribution
[test]
recipe = zc.recipe.testrunner
eggs = z3c.zalchemy [test]
-
Modified: z3c.zalchemy/trunk/setup.py
===================================================================
--- z3c.zalchemy/trunk/setup.py 2007-12-28 10:20:13 UTC (rev 82474)
+++ z3c.zalchemy/trunk/setup.py 2007-12-28 10:34:52 UTC (rev 82475)
@@ -2,7 +2,7 @@
from setuptools import setup, find_packages
setup(name='z3c.zalchemy',
- version='0.2.2dev',
+ version='0.3dev',
author='Juergen Kartnaller and the Zope Community',
author_email='zope3-dev at zope.org',
url='http://pypi.python.org/pypi/z3c.sqlalchemy',
@@ -20,7 +20,7 @@
include_package_data = True,
zip_safe=False,
install_requires=['setuptools',
- 'SQLAlchemy>=0.3.9,<0.4dev',
+ 'SQLAlchemy>=0.4',
'ZODB3',
'zope.component',
'zope.interface',
Modified: z3c.zalchemy/trunk/src/z3c/zalchemy/README.txt
===================================================================
--- z3c.zalchemy/trunk/src/z3c/zalchemy/README.txt 2007-12-28 10:20:13 UTC (rev 82474)
+++ z3c.zalchemy/trunk/src/z3c/zalchemy/README.txt 2007-12-28 10:34:52 UTC (rev 82475)
@@ -66,6 +66,7 @@
need to call z3c.zalchemy.metadata.
>>> import sqlalchemy
+ >>> import sqlalchemy.orm
>>> import z3c.zalchemy
>>> table3 = sqlalchemy.Table(
... 'table3',
@@ -82,7 +83,7 @@
Now we map the table to our class.
- >>> sqlalchemy.mapper(A, table3) is not None
+ >>> sqlalchemy.orm.mapper(A, table3) is not None
True
To let zalchemy do its work we need to register our database utility.
@@ -104,7 +105,12 @@
>>> a = A()
>>> a.value = 1
+ >>> from z3c.zalchemy.datamanager import getSession as session
+Save the object in the session.
+
+ >>> session().save(a)
+
Committing a transaction will automatically trigger a flush and clear the
session.
@@ -114,7 +120,6 @@
Now let's try to get the object back in a new transaction (we're in a new
transaction already because the old transaction was committed):
- >>> from z3c.zalchemy.datamanager import getSession as session
>>> a = session().get(A, 1)
>>> a.value
1
@@ -156,7 +161,7 @@
>>> class B(object):
... pass
- >>> B.mapper = sqlalchemy.mapper(B, bTable)
+ >>> B.mapper = sqlalchemy.orm.mapper(B, bTable)
Assign bTable to the new engine and create the table.
This time we do it inside of a session.
@@ -166,6 +171,7 @@
>>> b = B()
>>> b.value = 'b1'
+ >>> session().save(b)
>>> a = A()
>>> a.value = 321
@@ -183,7 +189,7 @@
>>> class Aa(object):
... pass
- >>> sqlalchemy.mapper(Aa, table3) is not None
+ >>> sqlalchemy.orm.mapper(Aa, table3) is not None
True
Now we can assign the class to the engine :
Modified: z3c.zalchemy/trunk/src/z3c/zalchemy/container.py
===================================================================
--- z3c.zalchemy/trunk/src/z3c/zalchemy/container.py 2007-12-28 10:20:13 UTC (rev 82474)
+++ z3c.zalchemy/trunk/src/z3c/zalchemy/container.py 2007-12-28 10:34:52 UTC (rev 82475)
@@ -110,7 +110,7 @@
def items(self):
session = z3c.zalchemy.getSession()
query = session.query(self._class)
- for obj in query.select():
+ for obj in query.all():
name = self._toStringIdentifier(obj)
yield (name, contained(obj, self, name) )
@@ -127,7 +127,7 @@
return self[name]
except KeyError:
return default
-
+
def __contains__(self, name):
return self.get(name) is not None
@@ -153,9 +153,8 @@
session.flush()
def _toStringIdentifier(self, obj):
- session = z3c.zalchemy.getSession()
- mapper = session.mapper(obj.__class__)
- instance_key = mapper.instance_key(obj)
+ mapper = sqlalchemy.orm.class_mapper(obj.__class__)
+ instance_key = mapper.identity_key_from_instance(obj)
ident = '-'.join(map(str, instance_key[1]))
return '%s-%s'%(instance_key[0].__name__, ident)
Modified: z3c.zalchemy/trunk/src/z3c/zalchemy/datamanager.py
===================================================================
--- z3c.zalchemy/trunk/src/z3c/zalchemy/datamanager.py 2007-12-28 10:20:13 UTC (rev 82474)
+++ z3c.zalchemy/trunk/src/z3c/zalchemy/datamanager.py 2007-12-28 10:34:52 UTC (rev 82475)
@@ -24,10 +24,11 @@
import z3c.zalchemy.interfaces
import sqlalchemy
+import sqlalchemy.orm
from sqlalchemy.orm.mapper import global_extensions
-from sqlalchemy.ext.sessioncontext import SessionContext
-from sqlalchemy.orm.session import Session
+from sqlalchemy.orm import scoped_session, sessionmaker
+
class AlchemyEngineUtility(persistent.Persistent):
"""A utility providing a database engine.
"""
@@ -85,7 +86,7 @@
if util is None:
raise ValueError("No engine utility registered")
engine = util.getEngine()
- session = sqlalchemy.create_session(bind_to=engine)
+ session = SessionFactory(bind=engine)
# This session is now only bound to the default engine. We need to bind
# the other explicitly bound tables and classes as well.
@@ -94,7 +95,10 @@
transaction.get().join(AlchemyDataManager(session))
return session
+SessionFactory = sessionmaker(autoflush=True, transactional=True)
+Session = scoped_session(createSession)
+
def bind_session(session):
"""Applies all table and class bindings to the given session."""
for table, engine in _tableToEngine.items():
@@ -103,12 +107,8 @@
_assignClass(class_, engine, session)
-ctx = SessionContext(createSession)
-global_extensions.append(ctx.mapper_extension)
-
-
def getSession():
- return ctx.current
+ return Session()
def getEngineForTable(t):
@@ -156,7 +156,7 @@
util = getUtility(z3c.zalchemy.interfaces.IAlchemyEngineUtility,
name=engine)
if session is None:
- session = ctx.current
+ session = Session()
session.bind_table(t, util.getEngine())
@@ -165,7 +165,7 @@
util = getUtility(z3c.zalchemy.interfaces.IAlchemyEngineUtility,
name=engine)
if session is None:
- session = ctx.current
+ session = Session()
session.bind_mapper(m,util.getEngine())
@@ -203,27 +203,26 @@
def __init__(self, session):
self.session = session
- self.transaction = session.create_transaction()
def abort(self, trans):
- self.transaction.rollback()
+ self.session.rollback()
self._cleanup()
- def tpc_begin(self, trans):
- pass
-
def commit(self, trans):
self._flush_session()
+ def tpc_begin(self, trans):
+ pass
+
def tpc_vote(self, trans):
pass
def tpc_finish(self, trans):
- self.transaction.commit()
+ self.session.commit()
self._cleanup()
def tpc_abort(self, trans):
- self.transaction.rollback()
+ self.session.rollback()
self._cleanup()
def sortKey(self):
@@ -234,8 +233,7 @@
return AlchemySavepoint()
def _cleanup(self):
- self.session.clear()
- del ctx.current
+ Session.remove()
def _flush_session(self):
try:
Modified: z3c.zalchemy/trunk/src/z3c/zalchemy/demo/demo_1/message.py
===================================================================
--- z3c.zalchemy/trunk/src/z3c/zalchemy/demo/demo_1/message.py 2007-12-28 10:20:13 UTC (rev 82474)
+++ z3c.zalchemy/trunk/src/z3c/zalchemy/demo/demo_1/message.py 2007-12-28 10:34:52 UTC (rev 82475)
@@ -1,11 +1,14 @@
import sqlalchemy
-import z3c.zalchemy
+import sqlalchemy.orm
+
+from zope.component.factory import Factory
from zope.interface import implements
from zope.schema.fieldproperty import FieldProperty
+import z3c.zalchemy
+
from interfaces import IHelloWorldMessage
-from zope.component.factory import Factory
# Define and create the table object for storing messages
HelloWorldMessageTable = sqlalchemy.Table(
@@ -31,7 +34,7 @@
# Map the table to the class
-sqlalchemy.mapper(HelloWorldMessage, HelloWorldMessageTable)
+sqlalchemy.orm.mapper(HelloWorldMessage, HelloWorldMessageTable)
messageFactory=Factory(
HelloWorldMessage,
Modified: z3c.zalchemy/trunk/src/z3c/zalchemy/demo/demo_2/message.py
===================================================================
--- z3c.zalchemy/trunk/src/z3c/zalchemy/demo/demo_2/message.py 2007-12-28 10:20:13 UTC (rev 82474)
+++ z3c.zalchemy/trunk/src/z3c/zalchemy/demo/demo_2/message.py 2007-12-28 10:34:52 UTC (rev 82475)
@@ -1,12 +1,13 @@
import sqlalchemy
-import z3c.zalchemy
+import sqlalchemy.orm
+from zope.component.factory import Factory
from zope.interface import implements
from zope.schema.fieldproperty import FieldProperty
+import z3c.zalchemy
from interfaces import IHelloWorldMessage2
-from zope.component.factory import Factory
# define and create the RDBMS table for storing messages
HelloWorldMessageTable2 = sqlalchemy.Table(
@@ -29,7 +30,7 @@
self.who = who
# Map the message class to the message table
-messagemapper = sqlalchemy.mapper(HelloWorldMessage2, HelloWorldMessageTable2)
+messagemapper = sqlalchemy.orm.mapper(HelloWorldMessage2, HelloWorldMessageTable2)
messageFactory=Factory(
HelloWorldMessage2,
Modified: z3c.zalchemy/trunk/src/z3c/zalchemy/demo/demo_3/message.py
===================================================================
--- z3c.zalchemy/trunk/src/z3c/zalchemy/demo/demo_3/message.py 2007-12-28 10:20:13 UTC (rev 82474)
+++ z3c.zalchemy/trunk/src/z3c/zalchemy/demo/demo_3/message.py 2007-12-28 10:34:52 UTC (rev 82475)
@@ -1,6 +1,7 @@
from datetime import datetime
import sqlalchemy
+import sqlalchemy.orm
import z3c.zalchemy
@@ -66,7 +67,7 @@
self.modified = modified
# Map the metadata table to the metadata class
-relationalmapper = sqlalchemy.mapper(RelationalDC, RelationalDCTable)
+relationalmapper = sqlalchemy.orm.mapper(RelationalDC, RelationalDCTable)
# The class defining the adapter between the message object and the
# IZopeDublinCore interface.
@@ -112,8 +113,8 @@
description = property(getDescription, setDescription,
doc="RelationalDC description")
-
-
+
+
# The class defining the message object
class HelloWorldMessage3(object):
implements(IHelloWorldMessage3)
@@ -128,10 +129,10 @@
# map the message class to the message table
-messagemapper = sqlalchemy.mapper(HelloWorldMessage3, HelloWorldMessageTable3)
+messagemapper = sqlalchemy.orm.mapper(HelloWorldMessage3, HelloWorldMessageTable3)
# add an additional property to the message mapper that maps
# to the metadata class
-messagemapper.add_property('rdc', sqlalchemy.relation(RelationalDC,
+messagemapper.add_property('rdc', sqlalchemy.orm.relation(RelationalDC,
cascade="all"))
messageFactory=Factory(
Modified: z3c.zalchemy/trunk/src/z3c/zalchemy/demo/demo_4/message.py
===================================================================
--- z3c.zalchemy/trunk/src/z3c/zalchemy/demo/demo_4/message.py 2007-12-28 10:20:13 UTC (rev 82474)
+++ z3c.zalchemy/trunk/src/z3c/zalchemy/demo/demo_4/message.py 2007-12-28 10:34:52 UTC (rev 82475)
@@ -1,6 +1,7 @@
from datetime import datetime
import sqlalchemy
+import sqlalchemy.orm
import z3c.zalchemy
from z3c.zalchemy.container import contained
@@ -57,7 +58,7 @@
class RelationalDC(object):
-
+
creators = FieldProperty(IZopeDublinCore['creators'])
title = FieldProperty(IZopeDublinCore['title'])
description = FieldProperty(IZopeDublinCore['description'])
@@ -78,9 +79,9 @@
else:
self.modified = modified
-
-relationalmapper = sqlalchemy.mapper(RelationalDC, RelationalDCTable)
+relationalmapper = sqlalchemy.orm.mapper(RelationalDC, RelationalDCTable)
+
class RelationalDCAdapter(object):
adapts(IHelloWorldMessage4)
implements(IZopeDublinCore)
@@ -120,7 +121,6 @@
description = property(getDescription, setDescription,
doc="RelationalDC description")
-
class HelloWorldFragment(Contained):
@@ -131,7 +131,7 @@
def __init__(self, what):
self.what = what
-fragmentmapper = sqlalchemy.mapper(HelloWorldFragment, HelloWorldFragmentTable)
+fragmentmapper = sqlalchemy.orm.mapper(HelloWorldFragment, HelloWorldFragmentTable)
class HelloWorldMessage4(Contained):
@@ -210,11 +210,11 @@
return session.query(HelloWorldFragment).get_by(id=ident)
-messagemapper = sqlalchemy.mapper(HelloWorldMessage4, HelloWorldMessageTable4)
-messagemapper.add_property('rdc', sqlalchemy.relation(RelationalDC,
+messagemapper = sqlalchemy.orm.mapper(HelloWorldMessage4, HelloWorldMessageTable4)
+messagemapper.add_property('rdc', sqlalchemy.orm.relation(RelationalDC,
cascade="all"))
messagemapper.add_property('fragments',
- sqlalchemy.relation(HelloWorldFragment,
+ sqlalchemy.orm.relation(HelloWorldFragment,
cascade="all"))
messageFactory=Factory(
Modified: z3c.zalchemy/trunk/src/z3c/zalchemy/intid/keyreference.py
===================================================================
--- z3c.zalchemy/trunk/src/z3c/zalchemy/intid/keyreference.py 2007-12-28 10:20:13 UTC (rev 82474)
+++ z3c.zalchemy/trunk/src/z3c/zalchemy/intid/keyreference.py 2007-12-28 10:34:52 UTC (rev 82475)
@@ -23,11 +23,15 @@
from z3c.zalchemy.interfaces import ISQLAlchemyObject
import z3c.zalchemy
+import sqlalchemy.orm
+
+
class RefToSQLAlchemyObject(object):
-
"""An IKeyReference for objects stored in an sql database by
- zalchemy whith a mapper attached to the class"""
-
+ zalchemy whith a mapper attached to the class.
+
+ """
+
interface.implements(zope.app.keyreference.interfaces.IKeyReference)
component.adapts(ISQLAlchemyObject)
@@ -35,18 +39,17 @@
def __init__(self, object):
object = removeSecurityProxy(object)
- session = z3c.zalchemy.getSession()
- mapper = session.mapper(object.__class__)
- self.ident = mapper.instance_key(object)[:2]
- self._class,self.pk = self.ident
-
+ mapper = sqlalchemy.orm.class_mapper(object.__class__)
+ self.ident = mapper.identity_key_from_instance(object)[:2]
+ self._class, self.pk = self.ident
+
def __call__(self):
session = z3c.zalchemy.getSession()
- return session.get(self._class,self.pk)
+ return session.get(self._class, self.pk)
def __hash__(self):
return hash(self.ident)
-
+
def __cmp__(self, other):
if self.key_type_id == other.key_type_id:
return cmp(self.ident,other.ident)
Modified: z3c.zalchemy/trunk/src/z3c/zalchemy/intid/keyreference.txt
===================================================================
--- z3c.zalchemy/trunk/src/z3c/zalchemy/intid/keyreference.txt 2007-12-28 10:20:13 UTC (rev 82474)
+++ z3c.zalchemy/trunk/src/z3c/zalchemy/intid/keyreference.txt 2007-12-28 10:34:52 UTC (rev 82475)
@@ -9,10 +9,10 @@
>>> from z3c.zalchemy.intid.keyreference import RefToSQLAlchemyObject
>>> component.provideAdapter(RefToSQLAlchemyObject)
-
Let's create a simple mapper and an according class.
>>> import sqlalchemy
+ >>> import sqlalchemy.orm
>>> import z3c.zalchemy
>>> aTable = sqlalchemy.Table(
... 'aTable',z3c.zalchemy.metadata(),
@@ -27,9 +27,9 @@
>>> class A(object):
... interface.implements(ISQLAlchemyObject)
... pass
- >>> sqlalchemy.mapper(A, aTable) is not None
+ >>> sqlalchemy.orm.mapper(A, aTable) is not None
True
-
+
>>> z3c.zalchemy.createTable('aTable', '')
Start a transaction.
@@ -38,13 +38,11 @@
>>> txn = transaction.begin()
>>> session = z3c.zalchemy.getSession()
-
>>> a = A()
>>> session.save(a)
>>> a.id = 1
>>> a.value = 1
-
Now let us create a reference to the object
>>> from zope.app.keyreference.interfaces import IKeyReference
@@ -59,10 +57,10 @@
>>> ref1 == ref2
True
-We have not commited, our transaction therefore the ref returns None
+We have not committed our transaction, therefore the reference returns None
because it is not in the database.
- >>> ref1() is None
+ >>> ref1() is a
True
>>> transaction.commit()
@@ -74,8 +72,7 @@
>>> a2.value
1
-
+
>>> ref3 = IKeyReference(a2)
>>> ref3 == ref2 == ref1
True
-
Modified: z3c.zalchemy/trunk/src/z3c/zalchemy/tests/TRANSACTION.txt
===================================================================
--- z3c.zalchemy/trunk/src/z3c/zalchemy/tests/TRANSACTION.txt 2007-12-28 10:20:13 UTC (rev 82474)
+++ z3c.zalchemy/trunk/src/z3c/zalchemy/tests/TRANSACTION.txt 2007-12-28 10:34:52 UTC (rev 82475)
@@ -19,6 +19,7 @@
Setup a sqlalchemy table and class :
>>> import sqlalchemy
+ >>> import sqlalchemy.orm
>>> import z3c.zalchemy
>>> table2 = sqlalchemy.Table(
... 'table2',
@@ -29,7 +30,7 @@
... )
>>> class A(object):
... pass
- >>> A.mapper = sqlalchemy.mapper(A, table2)
+ >>> A.mapper = sqlalchemy.orm.mapper(A, table2)
Now start a zope transaction :
@@ -173,7 +174,7 @@
>>> transaction.commit()
Traceback (most recent call last):
...
- SQLError: (IntegrityError) PRIMARY KEY must be unique u'INSERT INTO table2 (id, value) VALUES (?, ?)' [2, 3]
+ IntegrityError: (IntegrityError) PRIMARY KEY must be unique u'INSERT INTO table2 (id, value) VALUES (?, ?)' [2, 3]
Finally we need to abort zope's transaction.
@@ -189,7 +190,7 @@
>>> transaction.commit()
Traceback (most recent call last):
...
- SQLError: (IntegrityError) PRIMARY KEY must be unique u'INSERT INTO table2 (id, value) VALUES (?, ?)' [2, 3]
+ IntegrityError: (IntegrityError) PRIMARY KEY must be unique u'INSERT INTO table2 (id, value) VALUES (?, ?)' [2, 3]
We need to manually abort the transaction.
@@ -230,7 +231,7 @@
>>> dm.commit(None)
Traceback (most recent call last):
...
-SQLError: (ValueError) Conflict 'UPDATE bla...' (1, 2, 3)
+DBAPIError: (ValueError) Conflict 'UPDATE bla...' (1, 2, 3)
When we now provide an adapter from SQLError to IConflictError we'll get a
@@ -256,16 +257,16 @@
Note, that we added a condition to the adapter, so we'll only get a conflict
-error when the argument is "Conflict". Otherise the original exception is
+error when the argument is "Conflict". Otherwise the original exception is
raised:
>>> MockSession.conflict = 'No conflict'
>>> dm.commit(None)
Traceback (most recent call last):
...
-SQLError: (ValueError) No conflict 'UPDATE bla...' (1, 2, 3)
-
+DBAPIError: (ValueError) No conflict 'UPDATE bla...' (1, 2, 3)
+
The same happens for savepoints where conflicts also might happen:
>>> MockSession.conflict = 'Conflict'
@@ -281,7 +282,7 @@
>>> dm.savepoint()
Traceback (most recent call last):
...
-SQLError: (ValueError) Not at all 'UPDATE bla...' (1, 2, 3)
+DBAPIError: (ValueError) Not at all 'UPDATE bla...' (1, 2, 3)
Modified: z3c.zalchemy/trunk/src/z3c/zalchemy/tests/environ.py
===================================================================
--- z3c.zalchemy/trunk/src/z3c/zalchemy/tests/environ.py 2007-12-28 10:20:13 UTC (rev 82474)
+++ z3c.zalchemy/trunk/src/z3c/zalchemy/tests/environ.py 2007-12-28 10:34:52 UTC (rev 82475)
@@ -12,9 +12,11 @@
#
##############################################################################
-import z3c.zalchemy
import sqlalchemy
+import sqlalchemy.orm
+import z3c.zalchemy
+
testTable = sqlalchemy.Table(
'testTable',
z3c.zalchemy.metadata(),
@@ -33,5 +35,5 @@
class mappedTestClass(object):
pass
-sqlalchemy.mapper(mappedTestClass, testTable)
+sqlalchemy.orm.mapper(mappedTestClass, testTable)
Modified: z3c.zalchemy/trunk/src/z3c/zalchemy/tests/test_container.py
===================================================================
--- z3c.zalchemy/trunk/src/z3c/zalchemy/tests/test_container.py 2007-12-28 10:20:13 UTC (rev 82474)
+++ z3c.zalchemy/trunk/src/z3c/zalchemy/tests/test_container.py 2007-12-28 10:34:52 UTC (rev 82475)
@@ -18,6 +18,7 @@
from zope.app.testing.placelesssetup import PlacelessSetup
import sqlalchemy
+import sqlalchemy.orm
import z3c.zalchemy
@@ -31,7 +32,7 @@
class SQLTestSingle(object):
pass
-sqlalchemy.mapper(SQLTestSingle, singlePrimaryKeyTable)
+sqlalchemy.orm.mapper(SQLTestSingle, singlePrimaryKeyTable)
multiPrimaryKeyTable = sqlalchemy.Table(
@@ -47,7 +48,7 @@
self.id1 = id1
self.id2 = id2
-sqlalchemy.mapper(SQLTestMulti, multiPrimaryKeyTable)
+sqlalchemy.orm.mapper(SQLTestMulti, multiPrimaryKeyTable)
def setUp(test):
More information about the Checkins
mailing list