[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
gnue appserver/src/_featuretest/GEDI.py appserv...
From: |
Jan Ischebeck |
Subject: |
gnue appserver/src/_featuretest/GEDI.py appserv... |
Date: |
Wed, 19 Jun 2002 16:42:17 -0400 |
CVSROOT: /cvsroot/gnue
Module name: gnue
Changes by: Jan Ischebeck <address@hidden> 02/06/19 16:42:17
Modified files:
appserver/src/_featuretest: GEDI.py README atest.py
geasConnectionPool.py
geasMetaObject.py
geasObjectServer.py
common/src : GTest.py
Log message:
add very very basic introspection support and enhanced the atest file
add an option for _featuretest to gtestcvs
CVSWeb URLs:
http://savannah.gnu.org/cgi-bin/viewcvs/gnue/gnue/appserver/src/_featuretest/GEDI.py.diff?tr1=1.3&tr2=1.4&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/gnue/gnue/appserver/src/_featuretest/README.diff?tr1=1.2&tr2=1.3&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/gnue/gnue/appserver/src/_featuretest/atest.py.diff?tr1=1.2&tr2=1.3&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/gnue/gnue/appserver/src/_featuretest/geasConnectionPool.py.diff?tr1=1.1&tr2=1.2&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/gnue/gnue/appserver/src/_featuretest/geasMetaObject.py.diff?tr1=1.3&tr2=1.4&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/gnue/gnue/appserver/src/_featuretest/geasObjectServer.py.diff?tr1=1.1&tr2=1.2&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/gnue/gnue/common/src/GTest.py.diff?tr1=1.4&tr2=1.5&r1=text&r2=text
Patches:
Index: gnue/appserver/src/_featuretest/GEDI.py
diff -c gnue/appserver/src/_featuretest/GEDI.py:1.3
gnue/appserver/src/_featuretest/GEDI.py:1.4
*** gnue/appserver/src/_featuretest/GEDI.py:1.3 Wed Jun 19 09:15:46 2002
--- gnue/appserver/src/_featuretest/GEDI.py Wed Jun 19 16:42:17 2002
***************
*** 19,25 ****
# write to the Free Software Foundation, Inc., 59 Temple Place
# - Suite 330, Boston, MA 02111-1307, USA.
#
! # $Id: GEDI.py,v 1.3 2002/06/19 13:15:46 siesel Exp $
#
=============================================================================
# Basic class
--- 19,25 ----
# write to the Free Software Foundation, Inc., 59 Temple Place
# - Suite 330, Boston, MA 02111-1307, USA.
#
! # $Id: GEDI.py,v 1.4 2002/06/19 20:42:17 siesel Exp $
#
=============================================================================
# Basic class
***************
*** 27,33 ****
import geasObject
! from gnue.common import GDataSource
class GEDI:
--- 27,33 ----
import geasObject
! from gnue.common import GDataSource,GConditions
class GEDI:
***************
*** 42,87 ****
self.OID_hint_cache={}
# load OID_hint_cache from database
! def addStorage(self,storage):
! self._storage.append[storage]
!
! #
! # a) this function returns an object stored at any place just out of the OID
! # passed, if you know which class you need you should use the getInstances
! # function of the class which should be much faster
! # b) this function don't look into the cache, if an object with that OID is
! # already loaded
! #
!
! def getObjectData (self,GOID, tablename, indexrow, fieldList ):
! return self.storage[0].getObjectData (GOID, tablename,indexrow, fieldList)
!
! def getObjectByOID(self,OID,hint=None,classOID=None):
! # 1. check OID lookup cache (if OID in cache, go directly to datasource X)
! # 2. check Datastore a,b,c,d, until OID is found
! # 2b. check on all other remote appserver instances for that OID
! # ( if found on remote and used often here, think about
! # transfering it here)
! # 3. write OID into datasource lookup cache
! if classOID!=None:
! # check if class contains hint, and use then use that hint
! pass
! if hint!=None:
! pass # check datasource 'hint'
!
! # if not found:
! # for all dataStorage check for that OID
!
! if classOID!=None:
! # MetaObj=getObjectByOID(classOID)
! # MetaObj.loadInstanceFrom(OID,datasource)
! pass
! else:
! # try out all classes for one that fits.
! pass
! def requestStorageAdapter(self,info1,info2):
! return databaseStorageAdapter()
class basicStorageAdapter:
pass
--- 42,52 ----
self.OID_hint_cache={}
# load OID_hint_cache from database
! def addStorageType(self,storage):
! self._storagetypes.append[storage]
! def requestStorageAdapter(self,info):
! return databaseStorageAdapter(self._connections)
class basicStorageAdapter:
pass
***************
*** 95,124 ****
def __init__ (self, connections):
self._connections = connections
! #
---------------------------------------------------------------------------
! # getObjectbyOID
! # from which this is a child object.
! # (just the geasSuperObject has no OID
! #
---------------------------------------------------------------------------
!
! def returnOIDRange(self):
! pass
!
! def setOIDRange(self):
! pass
!
! def storeObject( self,Object ):
! pass
!
! def getObject( self,OID ):
! return OID
!
! def getObjectData (self, GOID, tablename, indexrow, fieldList ):
! self._conditions = []
! self._sort = ["zip"]
self._datasource = GDataSource.GDataSource ()
- # TODO: get the table name from the class name
self._datasource.buildObject (name = "",
database = "gnue",
table = tablename)
--- 60,70 ----
def __init__ (self, connections):
self._connections = connections
! def setTableName(self,tablename):
! # 1. cleanup old datasources
! # 2. build new _datasource
self._datasource = GDataSource.GDataSource ()
self._datasource.buildObject (name = "",
database = "gnue",
table = tablename)
***************
*** 128,139 ****
self._datasource._datasourceDictionary={}
self._datasource.phaseInit ()
for field in fieldList:
self._datasource.referenceField (field)
self._datasource.referenceField (indexrow)
! self._resultset = self._datasource.createResultSet ()
moreRecords=self._resultset.firstRecord ()
data=[]
--- 74,101 ----
self._datasource._datasourceDictionary={}
self._datasource.phaseInit ()
+
+ def returnOIDRange(self):
+ pass
+
+ def setOIDRange(self):
+ pass
+
+ def getIndexedRowData (self, GOID, tablename, indexrow, fieldList ):
+
+ self.setTableName( tablename)
for field in fieldList:
self._datasource.referenceField (field)
self._datasource.referenceField (indexrow)
+
+ # build indexrow==GOID condition
+ condition=GConditions.GCondition()
+ _h=GConditions.GCeq(condition)
+ GConditions.GCField(_h,indexrow)
+ GConditions.GCConst(_h,GOID)
! self._resultset = self._datasource.createResultSet (condition)
moreRecords=self._resultset.firstRecord ()
data=[]
***************
*** 147,153 ****
--- 109,140 ----
moreRecords=self._resultset.nextRecord ()
if len(newdr)>0:
data.append(newdr)
+
+ del(self._resultset)
+
+ return data
+
+ def getWholeRowData (self, tablename, fieldList ):
+ self.setTableName( tablename)
+
+ for field in fieldList:
+ self._datasource.referenceField (field)
+
+ self._resultset = self._datasource.createResultSet ()
+
+ moreRecords=self._resultset.firstRecord ()
+ data=[]
+ while (moreRecords==1):
+ newdr={}
+ record=self._resultset.current
+ for field in fieldList:
+ newdr[field] = record.getField(field)
+ data.append(newdr)
+ moreRecords=self._resultset.nextRecord ()
+
+ del(self._resultset)
+
return data
def getObjectbyOID (self,OID):
Index: gnue/appserver/src/_featuretest/README
diff -c gnue/appserver/src/_featuretest/README:1.2
gnue/appserver/src/_featuretest/README:1.3
*** gnue/appserver/src/_featuretest/README:1.2 Wed Jun 19 09:15:46 2002
--- gnue/appserver/src/_featuretest/README Wed Jun 19 16:42:17 2002
***************
*** 24,36 ****
HOW TO TEST
============
! To try out this version just call "python atest.py" in this directory.
! You have to set the INSTALL_PREFIX and possibly add an --connections command
! line option to your call. gnue.common has to be in your PYTHON_PATH
The programm opens a database defined as "gnue" in your connection file.
This database has to be setup with the file "create_tables.sql"
At the moment just postgres is working.
Jan Ischebeck <address@hidden>
--- 24,44 ----
HOW TO TEST
============
! 1. setup your database:
The programm opens a database defined as "gnue" in your connection file.
This database has to be setup with the file "create_tables.sql"
At the moment just postgres is working.
+
+ 2. call the program:
+
+ a) new method:
+ just call gtestcvs and choose option 4 or directly write 'gtestcvs 4'
+
+ b) old method:
+ To try out this version just call "python atest.py" in this directory.
+ You have to set the INSTALL_PREFIX and possibly add an --connections
+ command line option to your call. gnue.common has to be in your PYTHON_PATH
Jan Ischebeck <address@hidden>
Index: gnue/appserver/src/_featuretest/atest.py
diff -c gnue/appserver/src/_featuretest/atest.py:1.2
gnue/appserver/src/_featuretest/atest.py:1.3
*** gnue/appserver/src/_featuretest/atest.py:1.2 Wed Jun 19 09:15:46 2002
--- gnue/appserver/src/_featuretest/atest.py Wed Jun 19 16:42:17 2002
***************
*** 19,36 ****
# write to the Free Software Foundation, Inc., 59 Temple Place
# - Suite 330, Boston, MA 02111-1307, USA.
#
! # $Id: atest.py,v 1.2 2002/06/19 13:15:46 siesel Exp $
import os
from gnue.common import GClientApp
from gnue.common import GLoginHandler
- #import geasSession
- #import geasSuperObject
- #import geasNameSpace
import geasObjectServer
import GEDI
import geasConnectionPool
#
=============================================================================
# Test application
#
=============================================================================
--- 19,54 ----
# write to the Free Software Foundation, Inc., 59 Temple Place
# - Suite 330, Boston, MA 02111-1307, USA.
#
! # $Id: atest.py,v 1.3 2002/06/19 20:42:17 siesel Exp $
import os
from gnue.common import GClientApp
from gnue.common import GLoginHandler
import geasObjectServer
import GEDI
import geasConnectionPool
+ import sys, string, os
+
+ def getInput(message, default, responseSet=None):
+ print ""
+ while 1:
+ if default != None:
+ print "%s [%s] " % (message, default),
+ else:
+ print "%s " % (message),
+
+ val = string.strip(sys.stdin.readline())
+ print ""
+
+ if not len(val) and default != None:
+ return default
+ elif responseSet and string.upper(val) in (responseSet):
+ return string.upper(val)
+ elif not responseSet:
+ return val
+
+
#
=============================================================================
# Test application
#
=============================================================================
***************
*** 45,60 ****
self.connections.setLoginHandler (testLoginHandler ())
print "Server initalisation..."
! server=geasObjectServer.geasObjectServer()
! server.gedi=GEDI.GEDI(self.connections)
! cp=geasConnectionPool.geasConnectionPool(server) # get connection pool
cp.loadConfiguration('/etc/gnue/appserver.conf')
print "New Session"
! sess=cp.getSession()
!
print "\nNew Instance"
! instance=sess.Address.newInstance()
instance.name="_a_name_"
instance.street="_a_street_"
instance.city="_a_city_"
--- 63,80 ----
self.connections.setLoginHandler (testLoginHandler ())
print "Server initalisation..."
! self._server=geasObjectServer.geasObjectServer()
! self._server.gedi=GEDI.GEDI(self.connections)
! cp=geasConnectionPool.geasConnectionPool(self._server)# get connection
pool
cp.loadConfiguration('/etc/gnue/appserver.conf')
print "New Session"
! self.sess=cp.getSession()
! self.classbrowsing()
!
! def basictest(self):
print "\nNew Instance"
! instance=self.sess.Address.newInstance()
instance.name="_a_name_"
instance.street="_a_street_"
instance.city="_a_city_"
***************
*** 69,82 ****
instance.do("nothing", "in the sun", "working","on the edge")
print "\nCall showAddress for all Instances:\n"
! list=sess.Address.getAllInstances()
instance=list.firstInstance ()
while instance!=None:
print instance.formatAddress()
instance=list.nextInstance ()
print "Thank you for playing!"
!
#
=============================================================================
# Login Handler
#
=============================================================================
--- 89,155 ----
instance.do("nothing", "in the sun", "working","on the edge")
print "\nCall showAddress for all Instances:\n"
! list=self.sess.Address.getAllInstances()
instance=list.firstInstance ()
while instance!=None:
print instance.formatAddress()
instance=list.nextInstance ()
print "Thank you for playing!"
!
! def execMenu(self,menu,default):
! print
! keys=menu.keys()
! keys.sort()
! for i in keys:
! print "%s -> %s \n" % (i,menu[i])
! return getInput('Your choice:',default,keys)
!
! def classbrowsing(self):
! res=0
! while res!='9':
! menu = {'0':'Show all classes','1':'show object server cache',
! '2':'basic test run',
! '9':'end'}
! res=self.execMenu(menu,'2')
! if res=='0':
! classes=self.sess.classManager.getAllChildren()
! keys=classes.keys()
! keys.sort()
! print 'Registered Classes'
! print '-' * 40
! print '| OID | linked to table | number of instances'
! print '-' * 40
! for i in keys:
! instance_count=0
! list=classes[i].getAllInstances()
! inst=list.firstInstance()
! while inst!=None:
! instance_count=instance_count+1
! inst=list.nextInstance()
!
! print '| %7d | %s | %s |' % \
! (i,classes[i]._classAttribs["_tablename"],\
! instance_count)
! print '-' * 40
!
! elif res=='1':
! # print self._server._object_cache
! cachetoshow= self._server._object_cache
! keys=cachetoshow.keys()
! keys.sort()
! print 'Object Server Cache'
! print '-' * 40
! for i in keys:
! name="%s" % cachetoshow[i]
! print '| %7d | ..%s' % (i,name[24:])
!
! print '-' * 40
! elif res=='2':
! self.basictest()
!
!
!
#
=============================================================================
# Login Handler
#
=============================================================================
***************
*** 87,94 ****
username = os.environ ["LOGNAME"]
return {"_username": username, "_password": "(none)"}
#
=============================================================================
# Let it rock
#
=============================================================================
! (testApp ()).run ()
--- 160,170 ----
username = os.environ ["LOGNAME"]
return {"_username": username, "_password": "(none)"}
+ def run():
+ testApp().run()
#
=============================================================================
# Let it rock
#
=============================================================================
! if __name__ == "__main__":
! run ()
Index: gnue/appserver/src/_featuretest/geasConnectionPool.py
diff -c gnue/appserver/src/_featuretest/geasConnectionPool.py:1.1
gnue/appserver/src/_featuretest/geasConnectionPool.py:1.2
*** gnue/appserver/src/_featuretest/geasConnectionPool.py:1.1 Wed Jun 19
09:15:46 2002
--- gnue/appserver/src/_featuretest/geasConnectionPool.py Wed Jun 19
16:42:17 2002
***************
*** 19,25 ****
# write to the Free Software Foundation, Inc., 59 Temple Place
# - Suite 330, Boston, MA 02111-1307, USA.
#
! # $Id: geasConnectionPool.py,v 1.1 2002/06/19 13:15:46 siesel Exp $
from gnue.common import GDataSource
import geasObject
--- 19,25 ----
# write to the Free Software Foundation, Inc., 59 Temple Place
# - Suite 330, Boston, MA 02111-1307, USA.
#
! # $Id: geasConnectionPool.py,v 1.2 2002/06/19 20:42:17 siesel Exp $
from gnue.common import GDataSource
import geasObject
***************
*** 50,67 ****
## (this function should moved to the real server object later)
# [geasNameSpace] ->
!
! nsfactory=geasMetaObject.geasSimpleObjectFactory(3,1,self.objserv.gedi,
"geas_name_space",
! geasNameSpace.geasNameSpace,
'goid',
["name", "ref_OID"],
'registerObject')
- # nsfactory=geasNameSpace.geasNameSpaceFactory(3,1,self.objserv.gedi)
self.objserv.registerObject(nsfactory)
# [classfactory]
! # factory=geasMultipleRowOneTableFactory
# tablename='geas_classes'
# classname='geasClass'
# populatefunction=addAttribute
--- 50,68 ----
## (this function should moved to the real server object later)
# [geasNameSpace] ->
!
! nsdatastore=self.objserv.gedi.requestStorageAdapter('database:gnue')
! nsfactory=geasMetaObject.geasSimpleObjectFactory(3,1,nsdatastore,
"geas_name_space",
!
geasNameSpace.geasNameSpace,
'goid',
["name", "ref_OID"],
'registerObject')
self.objserv.registerObject(nsfactory)
# [classfactory]
! # factory=geasSimpleObjectFactory
! # datastore=database:gnue
# tablename='geas_classes'
# classname='geasClass'
# populatefunction=addAttribute
***************
*** 69,86 ****
# row1='name'
# row2='type'
# row3='default' ->
!
! clfactory=geasMetaObject.geasSimpleObjectFactory(4,1,self.objserv.gedi,
"geas_meta_object",
geasMetaObject.geasClass,
'goid',
["name", "type",
"value"],
'addAttribute')
self.objserv.registerObject(clfactory)
!
# globalNameSpace=2 ->
self.globalnamespace = getObject(2)
def getSession(self):
--- 70,93 ----
# row1='name'
# row2='type'
# row3='default' ->
!
! cldatastore=self.objserv.gedi.requestStorageAdapter('database:gnue')
! # nsdatastore=self.objserv.gedi.getDataStore('gfdfile:../packages')
! clfactory=geasMetaObject.geasSimpleObjectFactory(4,1,cldatastore,
"geas_meta_object",
geasMetaObject.geasClass,
'goid',
["name", "type",
"value"],
'addAttribute')
self.objserv.registerObject(clfactory)
!
# globalNameSpace=2 ->
self.globalnamespace = getObject(2)
+
+ # add clfactory to namespace (to make introspection work now)
+ self.globalnamespace.registerObject('classManager',4)
+
def getSession(self):
Index: gnue/appserver/src/_featuretest/geasMetaObject.py
diff -c gnue/appserver/src/_featuretest/geasMetaObject.py:1.3
gnue/appserver/src/_featuretest/geasMetaObject.py:1.4
*** gnue/appserver/src/_featuretest/geasMetaObject.py:1.3 Wed Jun 19
09:26:11 2002
--- gnue/appserver/src/_featuretest/geasMetaObject.py Wed Jun 19 16:42:17 2002
***************
*** 19,25 ****
# write to the Free Software Foundation, Inc., 59 Temple Place
# - Suite 330, Boston, MA 02111-1307, USA.
#
! # $Id: geasMetaObject.py,v 1.3 2002/06/19 13:26:11 siesel Exp $
from gnue.common import GDebug
import geasObject
--- 19,25 ----
# write to the Free Software Foundation, Inc., 59 Temple Place
# - Suite 330, Boston, MA 02111-1307, USA.
#
! # $Id: geasMetaObject.py,v 1.4 2002/06/19 20:42:17 siesel Exp $
from gnue.common import GDebug
import geasObject
***************
*** 36,41 ****
--- 36,51 ----
def getChildByOID(self,OID):
return None
+ def getAllChildren(self):
+ return None
+
+ def newChild(self):
+ pass
+
+ def _saveChild(self, c):
+ pass
+ # write child c back to db
+
class geasSimpleObjectFactory(geasMetaObject):
# this class is a factory which loads and stores namespaces, class objects
# etc., which could be described in a config file by this settings:
***************
*** 69,77 ****
def getChildByOID(self,OID):
! # self._oidrow should also be send to datasource
! # at the moment it defaults to "goid"
! data=self._datasource.getObjectData(OID,self._tablename,
self._oidrow,self._rownames)
if data and len(data)>0:
# build new object
--- 79,85 ----
def getChildByOID(self,OID):
! data=self._datasource.getIndexedRowData(OID,self._tablename,
self._oidrow,self._rownames)
if data and len(data)>0:
# build new object
***************
*** 85,96 ****
# save object into cache
registerObject(o)
!
# return new object
return o
else:
return None
#
=============================================================================
# Basic class
--- 93,140 ----
# save object into cache
registerObject(o)
!
# return new object
return o
else:
return None
+ def getAllChildren(self):
+ # load all possible children / attention, there is no search in the cache
+ # at the moment
+ objects={}
+ data=self._datasource.getWholeRowData(self._tablename,
+ self._rownames+[self._oidrow])
+ if data:
+ for record in data:
+
+ OID=record[self._oidrow]
+ if not objects.has_key(OID):
+ # build new object
+ objects[OID] = self._objclass(OID,self._OID)
+ # save object into cache
+ registerObject(objects[OID])
+ # print "Create object with OID %s" % OID
+
+ populate = getattr(objects[OID],self._populatefunction)
+ params=[]
+ for i in self._rownames:
+ params.append(record[i])
+ populate(*params)
+
+
+
+ return objects
+
+
+
+ def newChild(self):
+ pass
+
+ def _saveChild(self, c):
+ pass
+ # write child c back to db
+
#
=============================================================================
# Basic class
***************
*** 146,152 ****
im=self._instanceMethods[i]
im.setAssociatedObject(instance)
instance.__dict__.update({i:im})
!
return instance
def buildInstance(self,data):
--- 190,197 ----
im=self._instanceMethods[i]
im.setAssociatedObject(instance)
instance.__dict__.update({i:im})
!
! registerObject(instance)
return instance
def buildInstance(self,data):
***************
*** 171,177 ****
im=copy.copy(self._instanceMethods[i])
im.setAssociatedObject(instance)
instance.__dict__.update({i:im})
!
return instance
def storeInstance(self, instance):
--- 216,223 ----
im=copy.copy(self._instanceMethods[i])
im.setAssociatedObject(instance)
instance.__dict__.update({i:im})
!
! registerObject(instance)
return instance
def storeInstance(self, instance):
***************
*** 190,196 ****
raise AttributeError, "Object description (OID=%s) has no tablename" % \
self._OID
! list.setPrefetch (self._instanceAttribs.keys())
list.setConditions ([])
parent=getObject(self._parent_OID)
self._connections=parent._datasource._connections
--- 236,242 ----
raise AttributeError, "Object description (OID=%s) has no tablename" % \
self._OID
! list.setPrefetch (self._instanceAttribs.keys()+['_OID'])
list.setConditions ([])
parent=getObject(self._parent_OID)
self._connections=parent._datasource._connections
Index: gnue/appserver/src/_featuretest/geasObjectServer.py
diff -c gnue/appserver/src/_featuretest/geasObjectServer.py:1.1
gnue/appserver/src/_featuretest/geasObjectServer.py:1.2
*** gnue/appserver/src/_featuretest/geasObjectServer.py:1.1 Wed Jun 19
09:15:46 2002
--- gnue/appserver/src/_featuretest/geasObjectServer.py Wed Jun 19 16:42:17 2002
***************
*** 19,25 ****
# write to the Free Software Foundation, Inc., 59 Temple Place
# - Suite 330, Boston, MA 02111-1307, USA.
#
! # $Id: geasObjectServer.py,v 1.1 2002/06/19 13:15:46 siesel Exp $
from gnue.common import GDataSource
import thread
--- 19,25 ----
# write to the Free Software Foundation, Inc., 59 Temple Place
# - Suite 330, Boston, MA 02111-1307, USA.
#
! # $Id: geasObjectServer.py,v 1.2 2002/06/19 20:42:17 siesel Exp $
from gnue.common import GDataSource
import thread
***************
*** 55,61 ****
# register global functions
import __builtin__
__builtin__.__dict__["getObject"]=self.getObject
! __builtin__.__dict__["registerObject"]=self.getObject
__builtin__.__dict__["getNewOID"]=self.getNewOID
# =======================================================================
--- 55,61 ----
# register global functions
import __builtin__
__builtin__.__dict__["getObject"]=self.getObject
! __builtin__.__dict__["registerObject"]=self.registerObject
__builtin__.__dict__["getNewOID"]=self.getNewOID
# =======================================================================
***************
*** 76,82 ****
return obj
def registerObject(self,obj):
! # check if object with that OID already exist.
if self._object_cache.has_key(obj._OID):
# if it exists and it is equal do nothing
# if it exists and it not equal raise an error
--- 76,86 ----
return obj
def registerObject(self,obj):
! # print "Registering %s" % obj
! if (not hasattr(obj,'_OID')) or obj._OID==None:
! # don't store objects without OID
! return
! # check if object with that OID already exist.
if self._object_cache.has_key(obj._OID):
# if it exists and it is equal do nothing
# if it exists and it not equal raise an error
Index: gnue/common/src/GTest.py
diff -c gnue/common/src/GTest.py:1.4 gnue/common/src/GTest.py:1.5
*** gnue/common/src/GTest.py:1.4 Wed Jun 5 15:58:31 2002
--- gnue/common/src/GTest.py Wed Jun 19 16:42:17 2002
***************
*** 20,26 ****
# write to the Free Software Foundation, Inc., 59 Temple Place
# - Suite 330, Boston, MA 02111-1307, USA.
#
! # $Id: GTest.py,v 1.4 2002/06/05 19:58:31 siesel Exp $
import sys, string, os
--- 20,26 ----
# write to the Free Software Foundation, Inc., 59 Temple Place
# - Suite 330, Boston, MA 02111-1307, USA.
#
! # $Id: GTest.py,v 1.5 2002/06/19 20:42:17 siesel Exp $
import sys, string, os
***************
*** 71,81 ****
--- 71,86 ----
please type 'gacvs' on an other console to start
it up.)
+ 4) GNU Application Server demo (feature enhanced, unofficial version)
+ (you have to setup the database first. Please read
+ gnue/appserver/src/_featuretest/README for more information.
+
9) quit
"""
return getNumber("Your choice:")
+
def runTest(x):
if x=="0":
***************
*** 142,150 ****
elif x=="3":
from gnue.appserver import geasRpcClient
geasRpcClient.run()
else:
sys.exit()
if __name__ == "__main__":
! runTest(chooseTest())
--- 147,163 ----
elif x=="3":
from gnue.appserver import geasRpcClient
geasRpcClient.run()
+ elif x=="4":
+ from gnue.appserver._featuretest import atest
+ atest.run()
else:
sys.exit()
if __name__ == "__main__":
! if len(sys.argv)>1:
! choice=sys.argv[1]
! else:
! choice=chooseTest()
!
! runTest(choice)
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- gnue appserver/src/_featuretest/GEDI.py appserv...,
Jan Ischebeck <=