[Checkins] SVN: z3c.sqlalchemy/trunk/ - fixed registering of custom mappers
Christian Zagrodnick
cz at gocept.com
Wed Dec 2 07:26:58 EST 2009
Log message for revision 106165:
- fixed registering of custom mappers
- using tempfile for the sqllite default db (->speedup, no locks)
Changed:
U z3c.sqlalchemy/trunk/CHANGES.txt
U z3c.sqlalchemy/trunk/src/z3c/sqlalchemy/base.py
U z3c.sqlalchemy/trunk/src/z3c/sqlalchemy/tests/testSQLAlchemy.py
-=-
Modified: z3c.sqlalchemy/trunk/CHANGES.txt
===================================================================
--- z3c.sqlalchemy/trunk/CHANGES.txt 2009-12-02 10:42:39 UTC (rev 106164)
+++ z3c.sqlalchemy/trunk/CHANGES.txt 2009-12-02 12:26:57 UTC (rev 106165)
@@ -2,8 +2,11 @@
------------------
- removed compatibility code with older Zope versions
+
- fixed import issue with modern zope.component versions
+- fixed registering of custom mappers
+
1.3.11 (unreleased)
-------------------
Modified: z3c.sqlalchemy/trunk/src/z3c/sqlalchemy/base.py
===================================================================
--- z3c.sqlalchemy/trunk/src/z3c/sqlalchemy/base.py 2009-12-02 10:42:39 UTC (rev 106164)
+++ z3c.sqlalchemy/trunk/src/z3c/sqlalchemy/base.py 2009-12-02 12:26:57 UTC (rev 106165)
@@ -114,7 +114,7 @@
#return session.connection().connection.connection
def registerMapper(self, mapper, name):
- self._mappers.registerMapper(mapper, name)
+ self._mappers._registerMapper(mapper, name)
def getMapper(self, tablename, schema='public'):
return self._mappers.getMapper(tablename, schema)
Modified: z3c.sqlalchemy/trunk/src/z3c/sqlalchemy/tests/testSQLAlchemy.py
===================================================================
--- z3c.sqlalchemy/trunk/src/z3c/sqlalchemy/tests/testSQLAlchemy.py 2009-12-02 10:42:39 UTC (rev 106164)
+++ z3c.sqlalchemy/trunk/src/z3c/sqlalchemy/tests/testSQLAlchemy.py 2009-12-02 12:26:57 UTC (rev 106165)
@@ -15,7 +15,9 @@
import os
import sqlalchemy
+import sqlalchemy.orm
import unittest
+import tempfile
from sqlalchemy import MetaData, Integer, String, Column, Table
from sqlalchemy.ext.declarative import declarative_base
@@ -35,7 +37,11 @@
def setUp(self):
- self.dsn = os.environ.get('TEST_DSN', 'sqlite:///test')
+ self.dsn = os.environ.get('TEST_DSN')
+ self.tempfile = None
+ if not self.dsn:
+ self.tempfile = tempfile.mktemp()
+ self.dsn = 'sqlite:///%s' % self.tempfile
self.db = wrapper = createSAWrapper(self.dsn)
metadata = MetaData(bind=wrapper.engine)
@@ -51,10 +57,11 @@
metadata.create_all()
def tearDown(self):
- self.dsn = os.environ.get('TEST_DSN', 'sqlite:///test')
- wrapper = createSAWrapper(self.dsn)
- metadata = MetaData(bind=wrapper.engine)
- metadata.drop_all()
+ if self.tempfile:
+ os.remove(self.tempfile)
+ else:
+ metadata = MetaData(bind=self.db.engine)
+ metadata.drop_all()
def testIFaceZopePostgres(self):
verifyClass(ISQLAlchemyWrapper , ZopePostgresWrapper)
@@ -96,7 +103,17 @@
User = db.getMapper('users')
self.assertEqual(User, myUser)
+ def testCustomMapperRegister(self):
+ mytable = Table(
+ 'mytable', self.db.metadata,
+ Column('id', Integer, primary_key=True),
+ )
+ class MyClass(object):
+ pass
+ mapper = sqlalchemy.orm.mapper(MyClass, mytable)
+ self.db.registerMapper(mapper, 'mymapper')
+
# def testCustomMapperClassWithWrongType(self):
#
# class myUser(object):
@@ -172,6 +189,7 @@
session = self.db.session
session.add(User(id=1, firstname='udo', lastname='juergens'))
session.add(User(id=2, firstname='heino', lastname='n/a'))
+ session.flush()
conn = self.db.connection
cursor = conn.cursor()
More information about the checkins
mailing list