[z3-checkins] r5475 - in z3/sqlos/trunk: . container ftests interfaces services transaction

dreamcatcher at codespeak.net dreamcatcher at codespeak.net
Wed Jul 7 17:52:34 MEST 2004


Author: dreamcatcher
Date: Wed Jul  7 17:52:34 2004
New Revision: 5475

Removed:
   z3/sqlos/trunk/factory.py
   z3/sqlos/trunk/services/servicenames.py
   z3/sqlos/trunk/services/sqlfactoryservice.py
   z3/sqlos/trunk/services/sqlfactoryservice.zcml
Modified:
   z3/sqlos/trunk/__init__.py
   z3/sqlos/trunk/attributeannotations.py
   z3/sqlos/trunk/container/__init__.py
   z3/sqlos/trunk/ftests/test_transaction.py
   z3/sqlos/trunk/interfaces/services.py
   z3/sqlos/trunk/meta.zcml
   z3/sqlos/trunk/transaction/__init__.py
Log:
Get rid of sqlfactoryservice and a couple dead chickens with it.

Modified: z3/sqlos/trunk/__init__.py
==============================================================================
--- z3/sqlos/trunk/__init__.py	(original)
+++ z3/sqlos/trunk/__init__.py	Wed Jul  7 17:52:34 2004
@@ -14,6 +14,7 @@
 
 from datetime import datetime, date
 from zope.interface import classImplements
+from zope.app import zapi
 from zope.security.checker import NamesChecker, NoProxy, defineChecker
 
 from sqlobject.dbconnection import DBConnection, DBAPI
@@ -21,8 +22,8 @@
 from sqlobject.main import SQLObject, SelectResults
 from sqlobject.sqlbuilder import registerConverter, \
      SQLObjectTable
-from sqlos.interfaces import IDBConnection, \
-     IDBAPI, ISQLConnection, ISQLObject, ISelectResults
+from sqlos.interfaces import IDBConnection, IDBAPI, ISQLConnection
+from sqlos.interfaces import IISQLObject, ISQLObject, ISelectResults
 
 defineChecker(SQLObjectTable, NoProxy)
 
@@ -53,3 +54,7 @@
     return repr(value.isoformat())
 
 registerConverter(date, DateConverter)
+
+
+def getFactory(name, context=None, default=None):
+    return zapi.queryUtility(IISQLObject, name, default=default, context=context)

Modified: z3/sqlos/trunk/attributeannotations.py
==============================================================================
--- z3/sqlos/trunk/attributeannotations.py	(original)
+++ z3/sqlos/trunk/attributeannotations.py	Wed Jul  7 17:52:34 2004
@@ -19,8 +19,7 @@
 from zope.app.interfaces.location import ILocation
 
 from sqlobject import *
-from sqlos.factory import SQLObjectFactory
-from zopeproducts.sfbr.interfaces.security import ISecurityRole
+from sqlos import getFactory
 from zope.app.location import Location
 
 class AnnotationProxy(object):
@@ -58,7 +57,7 @@
             self.__context[name] = value
             self.__parent[self.__key] = self.__context
 
-class AnnotationSource(SQLObjectFactory, Location):
+class AnnotationSource(Location):
 
     def __init__(self, context):
         self.context = context
@@ -69,7 +68,7 @@
         self.className = 'Annotations'
 
     def __getitem__(self, name):
-        factory = self.getFactory(self.className)
+        factory = getFactory(self.className)
         clause = "location = %r and key = %r" % (str(self.location),
                                                  str(name))
         result = factory.select(clause = clause)
@@ -86,7 +85,7 @@
             return item
 
     def __setitem__(self, name, value):
-        factory = self.getFactory(self.className)
+        factory = getFactory(self.className)
         clause = "location = %r and key = %r" % (str(self.location),
                                                  str(name))
         result = factory.select(clause = clause)

Modified: z3/sqlos/trunk/container/__init__.py
==============================================================================
--- z3/sqlos/trunk/container/__init__.py	(original)
+++ z3/sqlos/trunk/container/__init__.py	Wed Jul  7 17:52:34 2004
@@ -24,8 +24,7 @@
 
 from sqlos.interfaces.container import ISQLObjectContainer
 from sqlos.interfaces.container import ISQLObjectAdding
-from sqlos.factory import SQLObjectFactory
-from sqlos.services.servicenames import SQLObjectFactory as SQLOService
+from sqlos import getFactory
 
 from sqlobject import *
 from sqlobject.main import CreateNewSQLObject
@@ -38,41 +37,28 @@
         pass
 
     def keys(self):
-        """Return a sequence-like object containing the names
-           associated with the objects that appear in the folder
+        """ Return a sequence-like object containing the names
+        associated with the objects that appear in the folder
         """
-        keys = []
-        fs = zapi.getService(self, SQLOService)
-        getFactory = fs.getFactory
-        for factoryName in self.classNames:
-            keys.extend([factoryName+'.'+str(p.id) for p in
-                        getFactory(factoryName).select()])
-        return keys
+        return [k for k, v in self.items()]
 
     def __iter__(self):
         return iter(self.keys())
 
     def values(self):
-        """Return a sequence-like object containing the objects that
-           appear in the folder.
+        """ Return a sequence-like object containing the objects that
+        appear in the folder.
         """
-        values = []
-        fs = zapi.getService(self, SQLOService)
-        factories = fs.getFactories(self.classNames)
-        for factory in factories:
-            values.extend(factory.select())
-        return values
+        return [v for k, v in self.items()]
 
     def items(self):
         """Return a sequence-like object containing tuples of the form
-           (name, object) for the objects that appear in the folder.
+        (name, object) for the objects that appear in the folder.
         """
         items = []
-        fs = zapi.getService(self, SQLOService)
-        getFactory = fs.getFactory
         for factoryName in self.classNames:
-            items.extend([(factoryName+'.'+str(p.id),p) for p in
-                         getFactory(factoryName).select()])
+            items.extend([('%s.%s' % (factoryName, p.id), p)
+                          for p in getFactory(factoryName).select()])
         return items
 
     def __getitem__(self, name):
@@ -82,17 +68,16 @@
            KeyError is raised.
         """
         try:
-            factoryName,id = name.split('.')
+            factoryName, id = name.split('.')
             id = int(id)
         except ValueError:
             raise KeyError(name)
 
-        fs = zapi.getService(self, SQLOService)
-        factory = fs.getFactory(factoryName)
+        factory = getFactory(factoryName)
         try:
-            return factory(id)
+            return factory.get(id)
         except SQLObjectNotFound:
-            raise KeyError(name)
+            raise KeyError, name
 
     def get(self, name, default=None):
         """Return the named object, or the value of the default

Deleted: /z3/sqlos/trunk/factory.py
==============================================================================
--- /z3/sqlos/trunk/factory.py	Wed Jul  7 17:52:34 2004
+++ (empty file)
@@ -1,49 +0,0 @@
-##############################################################################
-#
-# Copyright (c) 2004 Enfold Systems LLC. All rights reserved.
-#
-# This software is distributed under the terms of the Zope Public
-# License (ZPL) v2.1. See COPYING.txt for more information.
-#
-##############################################################################
-"""
-$Id$
-"""
-
-import warnings
-from zope.interface import implements
-from zope.app import zapi
-
-from sqlos.interfaces import IISQLObject
-from sqlos.interfaces.container import ISQLObjectContainerSchema, \
-     ISQLObjectFactory
-from sqlos.connection import getConnection, connCache
-
-class SQLObjectFactory(object):
-
-    implements(ISQLObjectContainerSchema, ISQLObjectFactory)
-
-    classNames = []
-    connectionName = None
-
-    def getFactory(self, className):
-        warnings.warn('The SQLObjectFactory service is deprecated '
-                      'please update your code to use '
-                      'zapi.queryUtility(IISQLObject, name, context=context).',
-                      DeprecationWarning, 2)
-        klass = zapi.queryUtility(IISQLObject, className,
-                                  default=None, context=self)
-        if klass is None:
-            raise KeyError, className
-        return klass
-
-    def getFactories(self, classNames=None):
-        if classNames is None:
-            classNames = self.classNames
-        getFactory = self.getFactory
-        factories = []
-        for className in classNames:
-            klass = getFactory(className)
-            factories.append(klass)
-        return tuple(factories)
-

Modified: z3/sqlos/trunk/ftests/test_transaction.py
==============================================================================
--- z3/sqlos/trunk/ftests/test_transaction.py	(original)
+++ z3/sqlos/trunk/ftests/test_transaction.py	Wed Jul  7 17:52:34 2004
@@ -19,19 +19,16 @@
 from zope.app.rdb.interfaces import IZopeDatabaseAdapter
 from zope.security.checker import defineChecker, NoProxy
 
+from sqlos import getFactory
 from sqlos.container import SQLObjectContainer
 from sqlos.services.classservice import registerClass
 from sqlos.tests.sampleperson import SamplePerson
-from sqlos.services.servicenames import SQLObjectFactory
-from sqlos.services.sqlfactoryservice import \
-     LocalSQLObjectFactoryService
 
-
-from zopeproducts.psycopgda.adapter import PsycopgAdapter
+from psycopgda.adapter import PsycopgAdapter
 
 __metaclass__ = type
 
-DSN = 'dbi://sidnei:passthru@localhost:5432/template1'
+DSN = 'dbi://zope3:123@localhost:5432/zope3'
 
 defineChecker(SamplePerson, NoProxy)
 
@@ -49,16 +46,7 @@
         # Create a service manager at the approot level
         mgr = setup.createServiceManager(container)
 
-        # Create a SQLObjectFactoryService
-        setup.addService(mgr, SQLObjectFactory,
-                         LocalSQLObjectFactoryService())
-
-        # Set the SQLObjectFactory connection name
-        sqlfservice = zapi.getService(container, 'SQLObjectFactory')
-        sqlfservice.connectionName = 'stub'
-
         container.classNames = ['SamplePerson',]
-        container.connectionName = 'stub'
         kwargs = {'fullname':'Sidnei da Silva',
                 'username':'sidnei',
                 'password':'test'}
@@ -71,8 +59,7 @@
         return folder['sqlcontainer']
 
     def createObject(self, container, **kwargs):
-        fs = zapi.getService(container, SQLObjectFactory)
-        factory = fs.getFactory(container.classNames[0])
+        factory = getFactory(container.classNames[0])
         person = factory.new(**kwargs)
         container['sampleperson'] =  person
         return container['SamplePerson.%s' % person.id]

Modified: z3/sqlos/trunk/interfaces/services.py
==============================================================================
--- z3/sqlos/trunk/interfaces/services.py	(original)
+++ z3/sqlos/trunk/interfaces/services.py	Wed Jul  7 17:52:34 2004
@@ -12,19 +12,6 @@
 from zope.interface import Interface
 from zope.schema import Choice
 
-class ILocalSQLObjectFactoryService(Interface):
-    """ Provides an easy way to get SQLObject factory classes
-
-    XXX This should go away and be replaced by zope's factory
-    service implementation.
-    """
-
-    connectionName = Choice(
-        title=(u"Connection Name"),
-        description=(u"The Connection Name for the connection to be used."),
-        vocabulary="Connection Names",
-        required=True)
-
 class IClassService(Interface):
     """ A simple registry of factory classes """
 

Modified: z3/sqlos/trunk/meta.zcml
==============================================================================
--- z3/sqlos/trunk/meta.zcml	(original)
+++ z3/sqlos/trunk/meta.zcml	Wed Jul  7 17:52:34 2004
@@ -31,6 +31,4 @@
 
   </meta:directives>
 
-  <include package=".services" file="sqlfactoryservice.zcml" />
-
 </configure>

Deleted: /z3/sqlos/trunk/services/servicenames.py
==============================================================================
--- /z3/sqlos/trunk/services/servicenames.py	Wed Jul  7 17:52:34 2004
+++ (empty file)
@@ -1,12 +0,0 @@
-##############################################################################
-#
-# Copyright (c) 2004 Enfold Systems LLC. All rights reserved.
-#
-# This software is distributed under the terms of the Zope Public
-# License (ZPL) v2.1. See COPYING.txt for more information.
-#
-##############################################################################
-"""
-$Id$
-"""
-SQLObjectFactory = 'SQLObjectFactory'

Deleted: /z3/sqlos/trunk/services/sqlfactoryservice.py
==============================================================================
--- /z3/sqlos/trunk/services/sqlfactoryservice.py	Wed Jul  7 17:52:34 2004
+++ (empty file)
@@ -1,29 +0,0 @@
-##############################################################################
-#
-# Copyright (c) 2004 Enfold Systems LLC. All rights reserved.
-#
-# This software is distributed under the terms of the Zope Public
-# License (ZPL) v2.1. See COPYING.txt for more information.
-#
-##############################################################################
-"""
-$Id$
-"""
-__metaclass__ = type
-
-from persistent import Persistent
-
-from zope.app.site.interfaces import ISimpleService
-from zope.interface import implements
-from zope.app.container.contained import Contained
-
-from sqlos.interfaces.services import ILocalSQLObjectFactoryService
-from sqlos.interfaces.container import ISQLObjectFactory
-from sqlos.factory import SQLObjectFactory
-
-class LocalSQLObjectFactoryService(Persistent, Contained, SQLObjectFactory):
-    __doc__ = ILocalSQLObjectFactoryService.__doc__
-
-    connectionName = None
-
-    implements(ILocalSQLObjectFactoryService, ISimpleService)

Deleted: /z3/sqlos/trunk/services/sqlfactoryservice.zcml
==============================================================================
--- /z3/sqlos/trunk/services/sqlfactoryservice.zcml	Wed Jul  7 17:52:34 2004
+++ (empty file)
@@ -1,58 +0,0 @@
-<configure xmlns="http://namespaces.zope.org/zope"
-           xmlns:browser="http://namespaces.zope.org/browser">
-
-  <!-- start LocalSQLObjectFactoryService -->
-
-  <content
-      class="sqlos.services.sqlfactoryservice.LocalSQLObjectFactoryService">
-
-    <implements
-        interface="sqlos.interfaces.services.ILocalSQLObjectFactoryService"
-        />
-
-    <factory
-        title="SQLObject Factory Service"
-        description="A SQLObject Factory Service"
-        />
-
-    <require
-        permission="zope.ManageServices"
-        interface="sqlos.interfaces.container.ISQLObjectFactory"
-        />
-
-    <require
-        permission="zope.ManageServices"
-        interface="sqlos.interfaces.container.ISQLObjectContainerSchema"
-        />
-
-    <require
-        permission="zope.ManageServices"
-        set_schema="sqlos.interfaces.container.ISQLObjectContainerSchema"
-        />
-
-  </content>
-
-  <browser:addMenuItem
-      class="sqlos.services.sqlfactoryservice.LocalSQLObjectFactoryService"
-      title="SQLObject Factory Service"
-      description="A SQLObject Factory Service"
-      permission="zope.ManageServices"
-      />
-
-  <serviceType
-      id="SQLObjectFactory"
-      interface="sqlos.interfaces.services.ILocalSQLObjectFactoryService"
-      />
-
-  <browser:addform
-      schema="sqlos.interfaces.services.ILocalSQLObjectFactoryService"
-      for="zope.app.container.interfaces.IAdding"
-      name="AddFactoryService"
-      label="Edit Connection Settings"
-      permission="zope.ManageContent"
-      content_factory="sqlos.services.sqlfactoryservice.LocalSQLObjectFactoryService"
-      set_after_add="connectionName"
-      />
-
-</configure>
-

Modified: z3/sqlos/trunk/transaction/__init__.py
==============================================================================
--- z3/sqlos/trunk/transaction/__init__.py	(original)
+++ z3/sqlos/trunk/transaction/__init__.py	Wed Jul  7 17:52:34 2004
@@ -37,8 +37,14 @@
     >>> SamplePerson.createTable(ifNotExists=True)
     >>> person = SamplePerson(fullname='Sidnei', username='sidnei',
     ... password='123')
-    >>> person
-    <SamplePerson 1 fullname='Sidnei' username='sidnei' password='123'>
+    >>> person.id
+    1
+    >>> person.fullname
+    'Sidnei'
+    >>> person.username
+    'sidnei'
+    >>> person.password
+    '123'
 
     Create a temp method to ease testing:
 


More information about the z3-checkins mailing list