예제 #1
0
    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">&nbsp;</td><td align="right">'
            '<input type="submit" value="OK"></td><td>&nbsp;</td></tr>')
        wr('</table></form>')
예제 #2
0
    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> &nbsp; </td> <td align=right> <input type=submit value=OK> </td> <td> &nbsp; </td> </tr>'
           )
        wr('</table></form>')
예제 #3
0
    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">&nbsp;</td><td style="text-align:right">'
            '<input type="submit" value="OK"></td><td>&nbsp;</td></tr>')
        wr('</table></form>')
예제 #4
0
파일: TestEmpty.py 프로젝트: korkin25/w4py
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;')
예제 #5
0
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;')
예제 #6
0
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
예제 #7
0
 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)
예제 #8
0
 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)
예제 #9
0
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