[Checkins] SVN: z3c.sqlalchemy/branches/declarative-integration/src/z3c/sqlalchemy/tests/testSQLAlchemy.py integrated with existing mapper magic

Andreas Jung andreas at andreas-jung.com
Mon Jun 2 10:56:25 EDT 2008


Log message for revision 87107:
  integrated with existing mapper magic
  

Changed:
  U   z3c.sqlalchemy/branches/declarative-integration/src/z3c/sqlalchemy/tests/testSQLAlchemy.py

-=-
Modified: z3c.sqlalchemy/branches/declarative-integration/src/z3c/sqlalchemy/tests/testSQLAlchemy.py
===================================================================
--- z3c.sqlalchemy/branches/declarative-integration/src/z3c/sqlalchemy/tests/testSQLAlchemy.py	2008-06-02 14:56:15 UTC (rev 87106)
+++ z3c.sqlalchemy/branches/declarative-integration/src/z3c/sqlalchemy/tests/testSQLAlchemy.py	2008-06-02 14:56:25 UTC (rev 87107)
@@ -17,7 +17,11 @@
 import sqlalchemy
 
 from sqlalchemy import MetaData, Integer, String, Column, Table
+from sqlalchemy.ext.declarative import declarative_base
+from sqlalchemy.orm import relation
+from sqlalchemy.schema import ForeignKey
 
+
 from zope.interface.verify import verifyClass
 
 from z3c.sqlalchemy.interfaces import ISQLAlchemyWrapper, IModel
@@ -198,10 +202,6 @@
 
     def testDeclarative(self):
 
-        from sqlalchemy.ext.declarative import declarative_base
-        from sqlalchemy.orm import relation
-        from sqlalchemy.schema import ForeignKey
-
         db = createSAWrapper(self.dsn)
         session = db.session
         metadata = db.metadata
@@ -223,6 +223,33 @@
         self.assertEqual(len(rows), 2)
 
 
+    def testDeclarativeWithModel(self):
+        def getModel(metadata):
+
+            model = Model()
+            Base = declarative_base(metadata=metadata)
+
+            class Foo(Base):
+                __tablename__ = 'foo'
+
+                id = Column('id', Integer, primary_key=True)
+                name = Column('name', String(50))
+
+            model.add('foo', mapper_class=Foo)
+            Base.metadata.create_all()
+            return model
+
+        db = createSAWrapper(self.dsn, model=getModel)
+        session = db.session
+        Foo = db.getMapper('foo')
+
+        session.save(Foo(id=1, name='Andreas Jung'))
+        session.save(Foo(id=2, name='Peter Becker'))
+        session.flush()
+
+        rows = session.query(Foo).all()
+        self.assertEqual(len(rows), 2)
+
 def test_suite():
     from unittest import TestSuite, makeSuite
     suite = TestSuite()



More information about the Checkins mailing list