def test_bulk_dump(self): hook = PostgresHook() input_data = ["foo", "bar", "baz"] with hook.get_conn() as conn: with conn.cursor() as cur: cur.execute("CREATE TABLE {} (c VARCHAR)".format(self.table)) values = ",".join("('{}')".format(data) for data in input_data) cur.execute("INSERT INTO {} VALUES {}".format(self.table, values)) conn.commit() with NamedTemporaryFile() as f: hook.bulk_dump(self.table, f.name) f.seek(0) results = [line.rstrip().decode("utf-8") for line in f.readlines()] self.assertEqual(sorted(input_data), sorted(results))
def test_bulk_dump(self): hook = PostgresHook() input_data = ["foo", "bar", "baz"] with hook.get_conn() as conn: with conn.cursor() as cur: cur.execute(f"CREATE TABLE {self.table} (c VARCHAR)") values = ",".join(f"('{data}')" for data in input_data) cur.execute(f"INSERT INTO {self.table} VALUES {values}") conn.commit() with NamedTemporaryFile() as f: hook.bulk_dump(self.table, f.name) f.seek(0) results = [line.rstrip().decode("utf-8") for line in f.readlines()] assert sorted(input_data) == sorted(results)
def dump_data(table: str): pg_hook = PostgresHook(postgres_conn_id='my_postgres_conn', schema='breakfast') pg_hook.bulk_dump(table, f'/opt/airflow/dags/{table}_export')