def writeDBForm(self, method='get', action=''): if method: method = 'method="%s"' % method if action: action = 'action="%s"' % action source = '''\ name,type,comment,value database,text,"e.g., MySQL" host,text user,text password,password ''' fields = DataTable() fields.readString(source) req = self.request() wr = self.writeln self.writeHeading('Enter database connection info:') wr('<form %(method)s %(action)s>' % locals()) wr('<table border="0" cellpadding="2" cellspacing="0">') for field in fields: field['value'] = req.value(field['name'], '') wr('<tr><td>%(name)s:</td><td></td><td>' '<input type="%(type)s" name="%(name)s" value="%(value)s">' '</td><td>%(comment)s</td></tr>' % field) wr('<tr><td colspan="2"> </td><td align="right">' '<input type="submit" value="OK"></td><td> </td></tr>') wr('</table></form>')
def writeDBForm(self, method='GET', action=''): if method: method = 'method=' + method if action: action = 'action=' + action source = '''\ name,type,comment,value database,text,"e.g., MySQL" host,text user,text password,password ''' fields = DataTable() fields.readString(source) req = self.request() wr = self.writeln self.writeHeading('Enter database connection info:') wr('<form %(method)s %(action)s>' % locals()) wr('<table border=0 cellpadding=1 cellspacing=0>') for field in fields: field['value'] = repr(req.value(field['name'], '')) wr('<tr> <td> %(name)s: </td> <td> <input type=%(type)s name=%(name)s value=%(value)s> </td> <td> %(comment)s </td> </tr>' % field) wr('<tr> <td> </td> <td align=right> <input type=submit value=OK> </td> <td> </td> </tr>' ) wr('</table></form>')
def writeDBForm(self, method='get', action=''): if method: method = 'method="%s"' % method if action: action = 'action="%s"' % action source = '''\ name,type,comment,value database,text,"e.g., MySQL" host,text user,text password,password ''' fields = DataTable() fields.readString(source) req = self.request() wr = self.writeln self.writeHeading('Enter database connection info:') wr('<form %(method)s %(action)s>' % locals()) wr('<table>') for field in fields: field['value'] = req.value(field['name'], '') wr('<tr><td>%(name)s:</td><td></td><td>' '<input type="%(type)s" name="%(name)s" value="%(value)s">' '</td><td>%(comment)s</td></tr>' % field) wr('<tr><td colspan="2"> </td><td style="text-align:right">' '<input type="submit" value="OK"></td><td> </td></tr>') wr('</table></form>')
def test(store): from Thing import Thing from Person import Person from MiscUtils.DataTable import DataTable dataSource = ''' b:int,i:int,l:long,f:float,s:string,d:int 0,0,0,0,0,0 0,0,0,0.0,0.0,0 1,1,1,1,a,0 0,-1,8589934592,-3.14,'x',0 ''' data = DataTable() data.readString(dataSource) for values in data: print values t = Thing() for attr in list('bilfsd'): t.setValueForKey(attr, values[attr]) store.addObject(t) store.saveChanges() # Try an immediate fetch results = store.fetchObjectsOfClass(Thing) assert len(results) == 1, 'len=%s, results=%s' % (len(results), results) # This tests the uniquing feature of MiddleKit: assert id(results[0]) == id(t) # Clear the store's in memory objects and try a fetch again store.clear() results = store.fetchObjectsOfClass(Thing) assert len(results) == 1 assert results[0].allAttrs() == t.allAttrs() # Make sure what we got from the store is what we put in for attr in list('bils'): assert results[0].valueForKey(attr) == values[attr] different = 0.000001 # @@ 2000-11-25 ce: more work needed on floats assert abs(results[0].valueForKey('f') - values['f']) < different # Insert the fetched attributes t2 = Thing() for attr in list('bilfsd'): t2.setValueForKey(attr, results[0].valueForKey(attr)) store.addObject(t2) store.saveChanges() results = store.fetchObjectsOfClass(Thing) assert len(results) == 2, 'len=%r' % len(results) assert results[0].allAttrs() == results[1].allAttrs() # Reset store.clear() store.executeSQLTransaction('delete from Thing;')
def test(store): from Thing import Thing from Person import Person from MiscUtils.DataTable import DataTable dataSource = ''' b:int,i:int,l:long,f:float,s:string,d:int 0,0,0,0,0,0 0,0,0,0.0,0.0,0 1,1,1,1,a,0 0,-1,8589934592,-3.14,'x',0 ''' data = DataTable() data.readString(dataSource) for values in data: print values t = Thing() for attr in list('bilfsd'): t.setValueForKey(attr, values[attr]) store.addObject(t) store.saveChanges() # Try an immediate fetch results = store.fetchObjectsOfClass(Thing) assert len(results) == 1, 'len=%s, results=%s' % (len(results), results) # This tests the uniquing feature of MiddleKit: assert id(results[0]) == id(t) # Clear the store's in memory objects and try a fetch again store.clear() results = store.fetchObjectsOfClass(Thing) assert len(results) == 1 assert results[0].allAttrs() == t.allAttrs() # Make sure what we got from the store is what we put in for attr in list('bils'): assert results[0].valueForKey(attr) == values[attr] different = 0.000001 # @@ 2000-11-25 ce: more work needed on floats assert abs(results[0].valueForKey('f')-values['f']) < different # Insert the fetched attributes t2 = Thing() for attr in list('bilfsd'): t2.setValueForKey(attr, results[0].valueForKey(attr)) store.addObject(t2) store.saveChanges() results = store.fetchObjectsOfClass(Thing) assert len(results) == 2, 'len=%r' % len(results) assert results[0].allAttrs() == results[1].allAttrs() # Reset store.clear() store.executeSQLTransaction('delete from Thing;')
def test(store): from Foo import Foo f = Foo() # legal sets: f.setRi(1) f.setNi(2) f.setRs('a') f.setNs('b') f.setNi(None) f.setNs(None) # illegal sets: errMsg = 'Set None for required attribute, but no exception was raised.' try: f.setRi(None) except: pass else: raise Exception, errMsg try: f.setRs(None) except: pass else: raise Exception, errMsg store.addObject(f) store.saveChanges() store.clear() results = store.fetchObjectsOfClass(Foo) assert len(results) == 1 f = results[0] assert f.ri() == 1 assert f.ni() == None assert f.rs() == 'a' assert f.ns() == None return from MiscUtils.DataTable import DataTable dataSource = ''' b:int,i:int,l:long,f:float,s:string 0,0,0,0,0 0,0,0,0.0,0.0 1,1,1,1,a 0,-1,8589934592,-3.14,'x' ''' data = DataTable() data.readString(dataSource) for values in data: print values t = Thing() t.setB(values['b']) t.setI(values['i']) t.setL(values['l']) t.setF(values['f']) t.setS(values['s']) store.addObject(t) store.saveChanges() # Try an immediate fetch results = store.fetchObjectsOfClass(Thing) assert len(results) == 1 # This tests the uniquing feature of MiddleKit: assert id(results[0]) == id(t) # Clear the store's in memory objects and try a fetch again store.clear() results = store.fetchObjectsOfClass(Thing) assert len(results) == 1 assert results[0].allAttrs() == t.allAttrs() # Make sure what we got from the store is what we put in assert t.b() == values['b'] assert t.i() == values['i'] assert t.l() == values['l'] assert t.f() == values['f'] assert t.s() == values['s'] # Reset store.clear() store.executeSQL('delete from Thing;') del t
def benchFileNamed(self, name): contents = open(name).read() for n in xrange(self._iters): # we duplicate lines to reduce the overhead of the loop dt = DataTable() dt.readString(contents) dt = DataTable() dt.readString(contents) dt = DataTable() dt.readString(contents) dt = DataTable() dt.readString(contents) dt = DataTable() dt.readString(contents) dt = DataTable() dt.readString(contents) dt = DataTable() dt.readString(contents) dt = DataTable() dt.readString(contents)
def benchFileNamed(self, name): with open(name) as f: contents = f.read() for _iteration in range(self._iterations): # we duplicate lines to reduce the overhead of the loop dt = DataTable() dt.readString(contents) dt = DataTable() dt.readString(contents) dt = DataTable() dt.readString(contents) dt = DataTable() dt.readString(contents) dt = DataTable() dt.readString(contents) dt = DataTable() dt.readString(contents) dt = DataTable() dt.readString(contents) dt = DataTable() dt.readString(contents)
def test(store): from Foo import Foo f = Foo() # legal sets: f.setRi(1) f.setNi(2) f.setRs('a') f.setNs('b') f.setNi(None) f.setNs(None) # illegal sets: errMsg = 'Set None for required attribute, but no exception was raised.' try: f.setRi(None) except Exception: pass else: raise Exception(errMsg) try: f.setRs(None) except Exception: pass else: raise Exception(errMsg) store.addObject(f) store.saveChanges() store.clear() results = store.fetchObjectsOfClass(Foo) assert len(results) == 1 f = results[0] assert f.ri() == 1 assert f.ni() is None assert f.rs() == 'a' assert f.ns() is None return from MiscUtils.DataTable import DataTable dataSource = ''' b:int,i:int,l:long,f:float,s:string 0,0,0,0,0 0,0,0,0.0,0.0 1,1,1,1,a 0,-1,8589934592,-3.14,'x' ''' data = DataTable() data.readString(dataSource) for values in data: print values t = Thing() t.setB(values['b']) t.setI(values['i']) t.setL(values['l']) t.setF(values['f']) t.setS(values['s']) store.addObject(t) store.saveChanges() # Try an immediate fetch results = store.fetchObjectsOfClass(Thing) assert len(results) == 1 # This tests the uniquing feature of MiddleKit: assert id(results[0]) == id(t) # Clear the store's in memory objects and try a fetch again store.clear() results = store.fetchObjectsOfClass(Thing) assert len(results) == 1 assert results[0].allAttrs() == t.allAttrs() # Make sure what we got from the store is what we put in assert t.b() == values['b'] assert t.i() == values['i'] assert t.l() == values['l'] assert t.f() == values['f'] assert t.s() == values['s'] # Reset store.clear() store.executeSQLTransaction('delete from Thing;') del t