[z3-checkins] r36456 - in z3/sqlos/trunk/src/sqlos: . testing
kobold at codespeak.net
kobold at codespeak.net
Thu Jan 11 11:09:05 CET 2007
Author: kobold
Date: Thu Jan 11 11:08:50 2007
New Revision: 36456
Modified:
z3/sqlos/trunk/src/sqlos/configure.zcml
z3/sqlos/trunk/src/sqlos/ftesting.zcml
z3/sqlos/trunk/src/sqlos/testing/sampleperson.py
z3/sqlos/trunk/src/sqlos/zsqlobject.py
Log:
Splitted SQLOS and SQLOSContainer, so the users can choose which one they want to subclass.
Modified: z3/sqlos/trunk/src/sqlos/configure.zcml
==============================================================================
--- z3/sqlos/trunk/src/sqlos/configure.zcml (original)
+++ z3/sqlos/trunk/src/sqlos/configure.zcml Thu Jan 11 11:08:50 2007
@@ -79,7 +79,7 @@
attribute="contents"
/>
- <!-- Database adapters -->
+ <!-- Database adapters and security declarations -->
<class class=".adapter.MySQLAdapter">
<require
Modified: z3/sqlos/trunk/src/sqlos/ftesting.zcml
==============================================================================
--- z3/sqlos/trunk/src/sqlos/ftesting.zcml (original)
+++ z3/sqlos/trunk/src/sqlos/ftesting.zcml Thu Jan 11 11:08:50 2007
@@ -12,7 +12,7 @@
You should only need to change the connectionName in order to
test against a different database that sqlite -->
- <sqlos:connectionName name='pg2sql' />
+ <sqlos:connectionName name='sqlite' />
<adapter
provides=".interfaces.IZopeSQLConnection"
Modified: z3/sqlos/trunk/src/sqlos/testing/sampleperson.py
==============================================================================
--- z3/sqlos/trunk/src/sqlos/testing/sampleperson.py (original)
+++ z3/sqlos/trunk/src/sqlos/testing/sampleperson.py Thu Jan 11 11:08:50 2007
@@ -18,7 +18,7 @@
from zope.app.container import constraints
from zope.app.container.interfaces import IContained
-from sqlos.zsqlobject import SQLOS
+from sqlos.zsqlobject import SQLOS, SQLOSContainer
from sqlos.interfaces import ISQLSchema, IISQLObjectIsolated, ISQLObjectIsolated
from sqlos.container import SQLObjectContainer
from sqlos.container import SQLObjectIsolatedContainer, SQLObjectMonoContainer
@@ -92,7 +92,7 @@
factory = 'sqlos.testing.SamplePerson'
-class SamplePerson(SQLOS):
+class SamplePerson(SQLOSContainer):
implements(IPerson, IPersonContained)
@@ -102,7 +102,7 @@
dogs = SQLMultipleJoin('SampleDog', joinColumn='owner_id')
-class SampleIsolatedPerson(SQLOS):
+class SampleIsolatedPerson(SQLOSContainer):
classProvides(IISQLObjectIsolated)
implements(IPerson, ISQLObjectIsolated)
@@ -165,7 +165,7 @@
)
-class SampleDog(SQLOS):
+class SampleDog(SQLOSContainer):
implements(IDog)
Modified: z3/sqlos/trunk/src/sqlos/zsqlobject.py
==============================================================================
--- z3/sqlos/trunk/src/sqlos/zsqlobject.py (original)
+++ z3/sqlos/trunk/src/sqlos/zsqlobject.py Thu Jan 11 11:08:50 2007
@@ -56,9 +56,6 @@
>>> from zope.interface.verify import verifyObject
>>> verifyObject(ISQLObject, s)
True
- >>> verifyObject(IReadContainer, s)
- True
-
And finally call tearDown and cleanup:
@@ -66,10 +63,9 @@
"""
- implements(ISQLObject, IReadContainer)
+ implements(ISQLObject)
_connection = ConnectionDescriptor()
- _containers = None
class sqlmeta:
lazyUpdate = True
@@ -101,6 +97,36 @@
def setParent(self, parent):
self.__parent__ = parent
+
+class SQLOSContainer(SQLOS):
+ """Subclass SQLOS to provide a container for subitems. The subitems
+ supported are ForeignKeys, SQLSingleJoin, SQLMultipleJoin and
+ SQLRelatedJoins.
+
+ First, make a test data base:
+
+ >>> from sqlos import testing
+ >>> testdb = testing.TestDB([SQLOSContainer])
+
+ Test the interface:
+
+ >>> s = SQLOSContainer()
+ >>> from zope.interface.verify import verifyObject
+ >>> verifyObject(ISQLObject, s)
+ True
+ >>> verifyObject(IReadContainer, s)
+ True
+
+ And finally call tearDown and cleanup:
+
+ >>> testdb.tearDown()
+
+ """
+
+ implements(IReadContainer)
+
+ _containers = None
+
def __getitem__(self, name):
"""See zope.app.container.interfaces.IReadContainer"""
if self._containers is None:
More information about the z3-checkins
mailing list