def migrate(self, fromdb, todb): """Migrates tables from one database ('dbfrom') to another database ('dbto')""" start_time = time.time() self.settings['dbfrom'] = DbSqlite(self.settings, fromdb) self.settings['dbto'] = DbSqlite(self.settings, todb) self.settings['dbto'].create_table() values = self.settings['dbfrom'].get_values() self.settings['dbto'].set_values(values) functions = self.settings['dbfrom'].get_functions() self.settings['dbto'].set_functions(functions) self.settings['dbto'].commit() finish_time = time.time() - start_time self.settings['logger'].info("Finished, time elapsed %s seconds" % str(finish_time)[:5])
def print_table(self, fromdb, table): """Print all the conents of a table""" if table is None: help("You must select a table.") self.settings['output_file'] = None self.settings['db'] = DbSqlite(self.settings, fromdb) columns = self.settings['db'].get_columns(table) rows = self.settings['db'].get_rows(table) if columns: dump = Dump(self.settings) dump.general("txt", table, columns, [rows]) else: self.print_valid_tables(table)
def generate(self, fromdb): """Generate the testcases with a permutation of values and functions""" start_time = time.time() self.settings['db'] = DbSqlite(self.settings, fromdb) self.settings['db'].create_table() values = self.settings['db'].get_values() functions = self.settings['db'].get_functions() self.settings['logger'].info("Values: %s - Functions: %s" % (str(len(values)), str(len(functions)))) total = self.permute(functions, values) self.settings['db'].commit() finish_time = time.time() - start_time self.settings['logger'].info("Testcases generated: %s" % str(total)) self.settings['logger'].info("Time required: %s seconds" % str(round(finish_time, 2)))
def insert_table(self, fromdb, table, separator, insert): """Insert a row into a table""" if table is None: help("You must select a table.") self.settings['db'] = DbSqlite(self.settings, fromdb) columns = self.settings['db'].get_columns(table) if columns: # If the user supplied one value less than the one required and the first column is called id, just ignore that column.. if len(columns) == (len(insert.split(separator)) + 1) and columns[0] == 'id': del columns[0] if len(columns) != len(insert.split(separator)): print("The table '" + table + "' has " + str(len(columns)) + " columns: " + str(columns) + ". However, you want to insert " + str(len(insert.split(separator))) + " value/s: " + str(insert.split(separator)) + ". It doesn't work like that.") else: self.settings['db'].insert_row(table, columns, insert.split(separator)) else: self.print_valid_tables(table)