Skip to content

Commit cc35414

Browse files
committed
Make test_sql.py postgresql_connectable tests parallelizable
1 parent 60f1a14 commit cc35414

File tree

1 file changed

+18
-13
lines changed

1 file changed

+18
-13
lines changed

pandas/tests/io/test_sql.py

Lines changed: 18 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -1317,23 +1317,25 @@ def psql_insert_copy(table, conn, keys, data_iter):
13171317
return expected_count
13181318

13191319
conn = request.getfixturevalue(conn)
1320+
table_uuid = table_uuid_gen("test_frame")
13201321
expected = DataFrame({"col1": [1, 2], "col2": [0.1, 0.2], "col3": ["a", "n"]})
13211322
result_count = expected.to_sql(
1322-
name="test_frame", con=conn, index=False, method=psql_insert_copy
1323+
name=table_uuid, con=conn, index=False, method=psql_insert_copy
13231324
)
13241325
# GH 46891
13251326
if expected_count is None:
13261327
assert result_count is None
13271328
else:
13281329
assert result_count == expected_count
1329-
result = sql.read_sql_table("test_frame", conn)
1330+
result = sql.read_sql_table(table_uuid, conn)
13301331
tm.assert_frame_equal(result, expected)
13311332

13321333

13331334
@pytest.mark.parametrize("conn", postgresql_connectable)
13341335
def test_insertion_method_on_conflict_do_nothing(conn, request):
13351336
# GH 15988: Example in to_sql docstring
13361337
conn = request.getfixturevalue(conn)
1338+
table_uuid = table_uuid_gen("test_insert_conflict")
13371339

13381340
from sqlalchemy.dialects.postgresql import insert
13391341
from sqlalchemy.engine import Engine
@@ -1350,8 +1352,8 @@ def insert_on_conflict(table, conn, keys, data_iter):
13501352
return result.rowcount
13511353

13521354
create_sql = text(
1353-
"""
1354-
CREATE TABLE test_insert_conflict (
1355+
f"""
1356+
CREATE TABLE {table_uuid} (
13551357
a integer PRIMARY KEY,
13561358
b numeric,
13571359
c text
@@ -1368,24 +1370,24 @@ def insert_on_conflict(table, conn, keys, data_iter):
13681370

13691371
expected = DataFrame([[1, 2.1, "a"]], columns=list("abc"))
13701372
expected.to_sql(
1371-
name="test_insert_conflict", con=conn, if_exists="append", index=False
1373+
name=table_uuid, con=conn, if_exists="append", index=False
13721374
)
13731375

13741376
df_insert = DataFrame([[1, 3.2, "b"]], columns=list("abc"))
13751377
inserted = df_insert.to_sql(
1376-
name="test_insert_conflict",
1378+
name=table_uuid,
13771379
con=conn,
13781380
index=False,
13791381
if_exists="append",
13801382
method=insert_on_conflict,
13811383
)
1382-
result = sql.read_sql_table("test_insert_conflict", conn)
1384+
result = sql.read_sql_table(table_uuid, conn)
13831385
tm.assert_frame_equal(result, expected)
13841386
assert inserted == 0
13851387

13861388
# Cleanup
13871389
with sql.SQLDatabase(conn, need_transaction=True) as pandasSQL:
1388-
pandasSQL.drop_table("test_insert_conflict")
1390+
pandasSQL.drop_table(table_uuid)
13891391

13901392

13911393
@pytest.mark.parametrize("conn", all_connectable)
@@ -1474,8 +1476,8 @@ def test_read_view_postgres(conn, request):
14741476
from sqlalchemy.engine import Engine
14751477
from sqlalchemy.sql import text
14761478

1477-
table_name = f"group_{uuid.uuid4().hex}"
1478-
view_name = f"group_view_{uuid.uuid4().hex}"
1479+
table_name = table_uuid_gen("group")
1480+
view_name = table_uuid_gen("group_view")
14791481

14801482
sql_stmt = text(
14811483
f"""
@@ -2864,21 +2866,23 @@ def test_datetime_with_timezone_query(conn, request, parse_dates):
28642866
# to datetime64[ns,psycopg2.tz.FixedOffsetTimezone..], which is ok
28652867
# but should be more natural, so coerce to datetime64[ns] for now
28662868
conn = request.getfixturevalue(conn)
2869+
table_uuid = table_uuid_gen("datetz")
28672870
expected = create_and_load_postgres_datetz(conn)
28682871

28692872
# GH11216
2870-
df = read_sql_query("select * from datetz", conn, parse_dates=parse_dates)
2873+
df = read_sql_query(f"select * from {table_uuid}", conn, parse_dates=parse_dates)
28712874
col = df.DateColWithTz
28722875
tm.assert_series_equal(col, expected)
28732876

28742877

28752878
@pytest.mark.parametrize("conn", postgresql_connectable)
28762879
def test_datetime_with_timezone_query_chunksize(conn, request):
28772880
conn = request.getfixturevalue(conn)
2881+
table_uuid = table_uuid_gen("datetz")
28782882
expected = create_and_load_postgres_datetz(conn)
28792883

28802884
df = concat(
2881-
list(read_sql_query("select * from datetz", conn, chunksize=1)),
2885+
list(read_sql_query(f"select * from {table_uuid}", conn, chunksize=1)),
28822886
ignore_index=True,
28832887
)
28842888
col = df.DateColWithTz
@@ -2888,8 +2892,9 @@ def test_datetime_with_timezone_query_chunksize(conn, request):
28882892
@pytest.mark.parametrize("conn", postgresql_connectable)
28892893
def test_datetime_with_timezone_table(conn, request):
28902894
conn = request.getfixturevalue(conn)
2895+
table_uuid = table_uuid_gen("datetz")
28912896
expected = create_and_load_postgres_datetz(conn)
2892-
result = sql.read_sql_table("datetz", conn)
2897+
result = sql.read_sql_table(table_uuid, conn)
28932898

28942899
exp_frame = expected.to_frame()
28952900
tm.assert_frame_equal(result, exp_frame)

0 commit comments

Comments
 (0)