Skip to content

Commit 59af5d3

Browse files
author
Jesse Whitehouse
committed
Test bulk insert using SQLAlchemy core .values() call
Signed-off-by: Jesse Whitehouse <[email protected]>
1 parent 1bfa1b8 commit 59af5d3

File tree

1 file changed

+28
-0
lines changed

1 file changed

+28
-0
lines changed

tests/e2e/sqlalchemy/test_queries.py

Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -79,6 +79,34 @@ def test_create_table_not_null(db_engine, metadata_obj):
7979

8080
metadata_obj.drop_all()
8181

82+
def test_bulk_insert_with_core(db_engine, metadata_obj, session):
83+
84+
import random
85+
86+
num_to_insert = random.choice(range(10_000, 20_000))
87+
88+
table_name = "PySQLTest_{}".format(datetime.datetime.utcnow().strftime("%s"))
89+
90+
names = ["Bim", "Miki", "Sarah", "Ira"]
91+
92+
SampleTable = Table(
93+
table_name,
94+
metadata_obj,
95+
Column("name", String(255)),
96+
Column("number", Integer)
97+
)
98+
99+
rows = [{"name": names[i%3], "number": random.choice(range(10000))} for i in range(num_to_insert)]
100+
101+
metadata_obj.create_all()
102+
db_engine.execute(insert(SampleTable).values(rows))
103+
104+
rows = db_engine.execute(select(SampleTable)).fetchall()
105+
106+
assert len(rows) == num_to_insert
107+
108+
109+
82110

83111

84112
def test_create_insert_drop_table_core(base, db_engine, metadata_obj: MetaData):

0 commit comments

Comments
 (0)