59 lines
		
	
	
		
			1.8 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
			
		
		
	
	
			59 lines
		
	
	
		
			1.8 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
"""
 | 
						|
Helper module to populate a dummy Cassandra tables with data.
 | 
						|
"""
 | 
						|
 | 
						|
from tests.integration.datatype_utils import PRIMITIVE_DATATYPES, get_sample
 | 
						|
 | 
						|
 | 
						|
def create_table_with_all_types(table_name, session, N):
 | 
						|
    """
 | 
						|
    Method that given a table_name and session construct a table that contains
 | 
						|
    all possible primitive types.
 | 
						|
 | 
						|
    :param table_name: Name of table to create
 | 
						|
    :param session: session to use for table creation
 | 
						|
    :param N: the number of items to insert into the table
 | 
						|
 | 
						|
    :return: a list of column names
 | 
						|
    """
 | 
						|
    # create table
 | 
						|
    alpha_type_list = ["primkey int PRIMARY KEY"]
 | 
						|
    col_names = ["primkey"]
 | 
						|
    start_index = ord('a')
 | 
						|
    for i, datatype in enumerate(PRIMITIVE_DATATYPES):
 | 
						|
        alpha_type_list.append("{0} {1}".format(chr(start_index + i), datatype))
 | 
						|
        col_names.append(chr(start_index + i))
 | 
						|
 | 
						|
    session.execute("CREATE TABLE {0} ({1})".format(
 | 
						|
                        table_name, ', '.join(alpha_type_list)), timeout=120)
 | 
						|
 | 
						|
    # create the input
 | 
						|
 | 
						|
    for key in range(N):
 | 
						|
        params = get_all_primitive_params(key)
 | 
						|
 | 
						|
        # insert into table as a simple statement
 | 
						|
        columns_string = ', '.join(col_names)
 | 
						|
        placeholders = ', '.join(["%s"] * len(col_names))
 | 
						|
        session.execute("INSERT INTO {0} ({1}) VALUES ({2})".format(
 | 
						|
                            table_name, columns_string, placeholders), params, timeout=120)
 | 
						|
    return col_names
 | 
						|
 | 
						|
 | 
						|
def get_all_primitive_params(key):
 | 
						|
    """
 | 
						|
    Simple utility method used to give back a list of all possible primitive data sample types.
 | 
						|
    """
 | 
						|
    params = [key]
 | 
						|
    for datatype in PRIMITIVE_DATATYPES:
 | 
						|
        # Also test for empty strings
 | 
						|
        if key == 1 and datatype == 'ascii':
 | 
						|
            params.append('')
 | 
						|
        else:
 | 
						|
            params.append(get_sample(datatype))
 | 
						|
    return params
 | 
						|
 | 
						|
 | 
						|
def get_primitive_datatypes():
 | 
						|
    return ['int'] + list(PRIMITIVE_DATATYPES)
 |