def test_null_foreign_keys(self): src = Db(self.source_sqla, dummy_args) dest = Db(self.dest_sqla, dummy_args) src.assign_target(dest) src.create_subset_in(dest) zeppelins = self.dest_db.execute("SELECT * FROM zeppelins").fetchall() self.assertEqual(len(zeppelins), 1)
def test_full_tables(self): args_with_full = DummyArgs() args_with_full.full_tables = ['city',] src = Db(self.source_sqla, args_with_full) dest = Db(self.dest_sqla, args_with_full) src.assign_target(dest) src.create_subset_in(dest) cities = self.dest_db.execute("SELECT * FROM city").fetchall() self.assertEqual(len(cities), 4)
def test_exclude_tables(self): args_with_exclude = DummyArgs() args_with_exclude.exclude_tables = ['zeppelins',] src = Db(self.source_sqla, args_with_exclude) dest = Db(self.dest_sqla, args_with_exclude) src.assign_target(dest) src.create_subset_in(dest) zeppelins = self.dest_db.execute("SELECT * FROM zeppelins").fetchall() self.assertEqual(len(zeppelins), 0)
def test_parents_kept(self): src = Db(self.source_sqla, dummy_args) dest = Db(self.dest_sqla, dummy_args) src.assign_target(dest) src.create_subset_in(dest) cities = self.dest_db.execute("SELECT * FROM city").fetchall() self.assertEqual(len(cities), 1) joined = self.dest_db.execute("""SELECT c.name, s.name FROM city c JOIN state s ON (c.state_abbrev = s.abbrev)""") joined = joined.fetchall() self.assertEqual(len(joined), 1)
def test_tables_and_exclude_tables(self): args_with_tables_and_exclude_tables = DummyArgs() args_with_tables_and_exclude_tables.tables = ['state', 'city'] args_with_tables_and_exclude_tables.exclude_tables = ['city'] src = Db(self.source_sqla, args_with_tables_and_exclude_tables) dest = Db(self.dest_sqla, args_with_tables_and_exclude_tables) src.assign_target(dest) src.create_subset_in(dest) states = self.dest_db.execute("SELECT * FROM state").fetchall() self.assertEqual(len(states), 1) excluded_tables = ('city', 'landmark', 'languages_better_than_python', 'zeppos', 'zeppelins') for table in excluded_tables: rows = self.dest_db.execute("SELECT * FROM {}".format(table)).fetchall() self.assertEqual(len(rows), 0)