def test_insert_qb(self, x_conn): rows = [ { 'id': 1, 'value': '2', 'col1': 1223.4, 'col2': datetime.datetime.now(), 'colb': True }, { 'id': 2, 'value': None, 'col1': None, 'col2': None, 'colb': None }, ] sql, params = query_builder.multi_insert('x', *rows) res = x_conn.query(sql, **params) assert isinstance(res, int) assert res == 2 # 2 affected row all_rows = x_conn.query('SELECT * FROM x ORDER BY id ASC') assert len(all_rows) == 2 assert all_rows[0].value == 2 assert all_rows[0].col1 == "1223.4" assert all_rows[1].value == None
def test_multi_insert(): rows = [{'a': 1, 'b': '2', 'c': 1223.4}, {'a': 2, 'b': '5', 'c': 1}] sql, params = query_builder.multi_insert('foo', *rows) assert sql == 'INSERT INTO `foo` (`a`, `b`, `c`) VALUES (%(_QB_ROW_0)s), (%(_QB_ROW_1)s)' assert params == {'_QB_ROW_0': [1, '2', 1223.4], '_QB_ROW_1': [2, '5', 1]} assert database.escape_query( sql, params ) == r"INSERT INTO `foo` (`a`, `b`, `c`) VALUES (1,'2',1223.4), (2,'5',1)"
def insert_data(data,indexname): """ :param data: Accepts list of dicts :param indexname: tablename in MEMSql :return: """ if cache_state == 0: return True print 'Inserting data to cache...' tablename = indexname #TODO Check if data is null (skip take is exceeded) for item in data: try: item.update((k, str(v)) for k, v in item.iteritems() if k == "__osHeaders") except: print "cant update" sql, params = multi_insert(tablename,*data) with get_connection() as conn: try: c = conn.execute(sql,**params) except Exception, err: print err raise print 'Cache insertion successful!' return c
def test_multi_insert(): rows = [{ 'a': 1, 'b': '2', 'c': 1223.4 }, { 'a': 2, 'b': '5', 'c': 1 }] sql, params = query_builder.multi_insert('foo', *rows) assert sql == 'INSERT INTO `foo` (`a`, `b`, `c`) VALUES (%(_QB_ROW_0)s), (%(_QB_ROW_1)s)' assert params == { '_QB_ROW_0': [1, '2', 1223.4], '_QB_ROW_1': [2, '5', 1] } assert database.escape_query(sql, params) == r"INSERT INTO `foo` (`a`, `b`, `c`) VALUES (1,'2',1223.4), (2,'5',1)"