Пример #1
0
    def test_connections(self):
        # create two clients
        conn = monetdbe.connect(autocommit=True)
        conn2 = monetdbe.connect()
        # create a table within a transaction in one client
        monetdbe.sql('START TRANSACTION', client=conn)
        monetdbe.create('pylite05', {'i': numpy.arange(100000)}, client=conn)

        # check that table was successfully created
        result = monetdbe.sql('SELECT MIN(i) AS minimum FROM pylite05',
                              client=conn)
        assert result['minimum'][0] == 0, "Incorrect result"
        # attempt to query the table from another client
        with pytest.raises(monetdbe.DatabaseError):
            monetdbe.sql('SELECT * FROM pylite05', client=conn2)

        # now commit the table
        monetdbe.sql('COMMIT', client=conn)
        # query the table again from the other client, this time it should be there
        result = monetdbe.sql('SELECT MIN(i) AS minimum FROM pylite05',
                              client=conn2)
        assert result['minimum'][0] == 0, "Incorrect result"
 def test_monetdbe_create_multiple_columns(self):
     arrays = numpy.arange(100000).reshape((5, 20000))
     cur = monetdbe.create(
         'pylite03', {
             'i': arrays[0],
             'j': arrays[1],
             'k': arrays[2],
             'l': arrays[3],
             'm': arrays[4]
         })
     result = cur.execute('select * from pylite03').fetchnumpy()
     assert len(result) == 5, "Incorrect amount of columns"
     assert len(result['i']) == 20000, "Incorrect amount of rows"
 def test_empty_colnames(self):
     # empty colnames
     with pytest.raises(monetdbe.DatabaseError):
         monetdbe.create('pylite07', {'': []})
 def test_invalid_colnames(self):
     # invalid colnames
     with pytest.raises(monetdbe.DatabaseError):
         monetdbe.create('pylite06', {33: []})
 def test_monetdbe_insert(self):
     cur = monetdbe.create('pylite02', {'i': numpy.arange(1000)})
     cur.insert('pylite02', {'i': numpy.arange(1000)})
     result = cur.execute('select * from pylite02').fetchdf()
     assert len(result['i']) == 2000, "Incorrect result"
 def test_monetdbe_create(self):
     cur = monetdbe.create('pylite01', {'i': numpy.arange(1000)})
     result = monetdbe.sql('select * from pylite01', client=cur.connection)
     assert len(result['i']) == 1000, "Incorrect result"
 def test_bad_column_number(self):
     # too few columns in insert
     cur = monetdbe.create('pylite10', dict(a=[], b=[], c=[]))
     with pytest.raises(monetdbe.DatabaseError):
         cur.insert('pylite10', {'a': [33], 'b': [44]})
 def test_missing_dict_key(self):
     # missing dict key in insert
     cur = monetdbe.create('pylite09', dict(a=[], b=[], c=[]))
     with pytest.raises(monetdbe.DatabaseError):
         cur.insert('pylite09', dict(a=33, b=44))
 def test_invalid_key_dict(self):
     # dictionary with invalid keys
     d = dict()
     d[33] = 44
     with pytest.raises(monetdbe.ProgrammingError):
         monetdbe.create('pylite08', d)
Пример #10
0
 def test_bad_column_number(self):
     # too few columns in insert
     monetdbe.create('pylite10', dict(a=[], b=[], c=[]))
     with pytest.raises(monetdbe.DatabaseError):
         monetdbe.insert('pylite10', [[33], [44]])
Пример #11
0
 def test_missing_dict_key(self, ):
     # FIXME: segfault
     # missing dict key in insert
     monetdbe.create('pylite09', dict(a=[], b=[], c=[]))
     with pytest.raises(monetdbe.DatabaseError):
         monetdbe.insert('pylite09', dict(a=33, b=44))