Exemplo n.º 1
0
 def test_monetdblite_insert(self):
     monetdblite.create('pylite02', {'i': numpy.arange(100000)})
     try:
         import pandas
         monetdblite.insert('pylite02', numpy.arange(100000))
         result = monetdblite.sql('select * from pylite02')
         self.assertEquals(len(result['i']), 200000, "Incorrect result")
     except:
         #no pandas
         result = monetdblite.sql('select * from pylite02')
         self.assertEquals(len(result['i']), 100000, "Incorrect result")
         return
Exemplo n.º 2
0
 def test_monetdblite_create_multiple_columns(self, initialize_monetdblite):
     arrays = numpy.arange(100000).reshape((5, 20000))
     monetdblite.create(
         'pylite03', {
             'i': arrays[0],
             'j': arrays[1],
             'k': arrays[2],
             'l': arrays[3],
             'm': arrays[4]
         })
     result = monetdblite.sql('select * from pylite03')
     assert len(result) == 5, "Incorrect amount of columns"
     assert len(result['i']) == 20000, "Incorrect amount of rows"
Exemplo n.º 3
0
    def test_errors(self):
        global dbfarm
        monetdblite.shutdown()

        if PY26:
            return

        # select before init
        with self.assertRaises(monetdblite.DatabaseError):
            monetdblite.sql('select * from tables')

        # init with weird argument
        with self.assertRaises(Exception):
            monetdblite.init(33)

        # init in unwritable directory
        with self.assertRaises(monetdblite.DatabaseError):
            monetdblite.init('/unwritabledir')

        # proper init
        monetdblite.init(dbfarm)

        # select from non-existent table
        with self.assertRaises(monetdblite.DatabaseError):
            monetdblite.sql('select * from nonexistenttable')

        # invalid connection object
        with self.assertRaises(monetdblite.DatabaseError):
            monetdblite.sql('select * from tables', client=33)

        # invalid colnames
        with self.assertRaises(monetdblite.DatabaseError):
            monetdblite.create('pylite08', {33: []})

        # empty colnames
        with self.assertRaises(monetdblite.DatabaseError):
            monetdblite.create('pylite08', {'': []})

        # dictionary with invalid keys
        d = dict()
        d[33] = 44
        with self.assertRaises(monetdblite.DatabaseError):
            monetdblite.create('pylite08', d)

        monetdblite.sql('DROP TABLE pylite08')
        monetdblite.create('pylite08', dict(a=[], b=[], c=[]))

        # FIXME: segfault
        # missing dict key in insert
        #with self.assertRaises(monetdblite.DatabaseError):
        #   monetdblite.insert('pylite08', dict(a=33,b=44))

        # too few columns in insert
        try:
            import pandas
            with self.assertRaises(monetdblite.DatabaseError):
                monetdblite.insert('pylite08', [[33], [44]])
        except:
            return
Exemplo n.º 4
0
    def test_connections(self, initialize_monetdblite):
        # create two clients
        conn = monetdblite.connectclient()
        conn2 = monetdblite.connectclient()
        # create a table within a transaction in one client
        monetdblite.sql('START TRANSACTION', client=conn)
        monetdblite.create('pylite05', {'i': numpy.arange(100000)},
                           client=conn)

        # check that table was successfully created
        result = monetdblite.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
        if not PY26:
            with pytest.raises(monetdblite.DatabaseError):
                monetdblite.sql('SELECT * FROM pylite05', client=conn2)

        # now commit the table
        monetdblite.sql('COMMIT', client=conn)
        # query the table again from the other client, this time it should be there
        result = monetdblite.sql('SELECT MIN(i) AS minimum FROM pylite05',
                                 client=conn2)
        assert result['minimum'][0] == 0, "Incorrect result"
Exemplo n.º 5
0
 def test_monetdblite_insert(self, initialize_monetdblite):
     monetdblite.create('pylite02', {'i': numpy.arange(100000)})
     monetdblite.insert('pylite02', numpy.arange(100000))
     result = monetdblite.sql('select * from pylite02')
     assert len(result['i']) == 200000, "Incorrect result"
Exemplo n.º 6
0
 def test_bad_column_number(self, initialize_monetdblite):
     # too few columns in insert
     monetdblite.create('pylite10', dict(a=[], b=[], c=[]))
     with pytest.raises(monetdblite.DatabaseError):
         monetdblite.insert('pylite10', [[33], [44]])
Exemplo n.º 7
0
 def test_missing_dict_key(self, initialize_monetdblite):
     # FIXME: segfault
     # missing dict key in insert
     monetdblite.create('pylite09', dict(a=[], b=[], c=[]))
     with pytest.raises(monetdblite.DatabaseError):
         monetdblite.insert('pylite09', dict(a=33, b=44))
Exemplo n.º 8
0
 def test_invalid_key_dict(self, initialize_monetdblite):
     # dictionary with invalid keys
     d = dict()
     d[33] = 44
     with pytest.raises(monetdblite.DatabaseError):
         monetdblite.create('pylite08', d)
Exemplo n.º 9
0
 def test_empty_colnames(self, initialize_monetdblite):
     # empty colnames
     with pytest.raises(monetdblite.DatabaseError):
         monetdblite.create('pylite07', {'': []})
Exemplo n.º 10
0
 def test_invalid_colnames(self, initialize_monetdblite):
     # invalid colnames
     with pytest.raises(monetdblite.DatabaseError):
         monetdblite.create('pylite06', {33: []})
Exemplo n.º 11
0
 def test_monetdblite_create(self):
     monetdblite.create('pylite01', {'i': numpy.arange(100000)})
     result = monetdblite.sql('select * from pylite01')
     self.assertEquals(len(result['i']), 100000, "Incorrect result")