text: """
  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)
  