def handler_seed_mouse(postgresql): for [eartag, birthdate, genotype, sex, _, _, _, _] in seed_mouse: genotype = utils.encode_genotype(genotype) sex = utils.prep_string_for_db(sex) with TestingCursor(postgresql) as cursor: database.seed_tables.seed_tables.seed_mouse_table( cursor, eartag, birthdate, genotype, sex)
def test_add_new_experiment(self): test_exp = Experiment(self.seed_exp[0], self.seed_exp[1]).save_to_db( testing=True, postgresql=self.postgresql) self.assertEqual(util.prep_string_for_db(self.seed_exp[0]), test_exp.experiment_name) self.assertEqual(self.seed_exp[1], test_exp.experiment_dir) self.assertFalse(test_exp.experiment_id is None)
def setUp(self): self.postgresql = Postgresql() database.handlers.handlers.handler_seed_sessions_table(self.postgresql) [eartag, _, _, _, _, experiment_name, _, _] = test_mouse_table_seed.pop() self.mouse = Mouse.from_db(eartag, testing=True, postgresql=self.postgresql) self.experiment = Experiment.from_db(experiment_name, testing=True, postgresql=self.postgresql) possible_sessions = test_session_table_seed[eartag, utils.prep_string_for_db(experiment_name)] self.session_date, self.session_dir = possible_sessions.pop()
def test_from_db(self): load_exp = Experiment.from_db(self.seed_tup[0], testing=True, postgresql=self.postgresql) self.assertEqual(util.prep_string_for_db(self.seed_tup[0]), load_exp.experiment_name) self.assertEqual(self.seed_tup[1], load_exp.experiment_dir) self.assertFalse(load_exp.experiment_name is None)
def from_db(cls, experiment_name, testing=False, postgresql=None): experiment_name = utils.prep_string_for_db(experiment_name) if testing: with TestingCursor(postgresql) as cursor: return cls.__from_db(cursor, experiment_name) else: with Cursor() as cursor: return cls.__from_db(cursor, experiment_name)
def seed_mouse_table(a_cursor): for mouse in test_mouse_table_seed: genotype = util.encode_genotype(mouse[2]) sex = util.prep_string_for_db(mouse[3]) a_cursor.execute("INSERT INTO mouse" " (eartag, birthdate, genotype, sex) " "VALUES" " (%s, %s, %s, %s);", (mouse[0], mouse[1], genotype, sex))
def test_delete_experiment(self): experiment_to_delete = Experiment.from_db(self.seed_tup[0], testing=True, postgresql=self.postgresql) experiment_to_delete.delete_from_db(testing=True, postgresql=self.postgresql) with TestingCursor(self.postgresql) as cursor: all_experiments = list_all_experiments(cursor) self.assertFalse( util.prep_string_for_db(self.seed_tup[0]) in all_experiments)
def test_update_existing_experiment(self): new_name = "New Experiment Name" load_exp = Experiment.from_db(self.seed_tup[0], testing=True, postgresql=self.postgresql) update_exp = load_exp update_exp.experiment_name = new_name saved_exp = update_exp.save_to_db(testing=True, postgresql=self.postgresql) self.assertEqual(util.prep_string_for_db(new_name), saved_exp.experiment_name) self.assertTrue(load_exp.experiment_id == saved_exp.experiment_id) self.assertTrue(load_exp.experiment_dir == saved_exp.experiment_dir)
def get_id(cls, experiment_name, testing=False, postgresql=None): experiment_name = utils.prep_string_for_db(experiment_name) def main(a_cursor, exp_name): a_cursor.execute( "SELECT experiment_id FROM experiments WHERE experiment_name = %s;", (exp_name, )) exp_id = cursor.fetchall() if exp_id is None: print(f"No experiment in the database with name {exp_name}") return None return utils.list_from_cursor(exp_id) if testing: with TestingCursor(postgresql) as cursor: return main(cursor, experiment_name) else: with Cursor() as cursor: return main(cursor, experiment_name)
def handler_seed_experiments(postgresql): prepped_exp_one = (utils.prep_string_for_db(exp_one[0]), exp_one[1]) prepped_exp_two = (utils.prep_string_for_db(exp_two[0]), exp_two[1]) with TestingCursor(postgresql) as cursor: database.seed_tables.seed_tables.seed_experiments_table( cursor, prepped_exp_one, prepped_exp_two)
def test_slash_skilledreaching(self): strings_to_test = ["skilled/reaching", "Skilled/Reaching", "Skilled/reaching", "skilled/Reaching"] for string in strings_to_test: self.assertEqual("skilled-reaching", utilities.prep_string_for_db(string))
def test_underscore_skilledreaching(self): strings_to_test = ["skilled_reaching", "Skilled_Reaching", "Skilled_reaching", "skilled_Reaching"] for string in strings_to_test: self.assertEqual("skilled-reaching", utilities.prep_string_for_db(string))
def __init__(self, experiment_name, experiment_dir, experiment_id=None): self.experiment_name = utils.prep_string_for_db(experiment_name) self.experiment_dir = experiment_dir self.experiment_id = experiment_id
def seed_experiments_table(a_cursor): prepped_exp_one = (util.prep_string_for_db(exp_one[0]), exp_one[1]) prepped_exp_two = (util.prep_string_for_db(exp_two[0]), exp_two[1]) a_cursor.execute("INSERT INTO experiments (experiment_name, experiment_dir) VALUES (%s, %s);", prepped_exp_one) a_cursor.execute("INSERT INTO experiments (experiment_name, experiment_dir) VALUES (%s, %s);", prepped_exp_two)