Skip to content

Commit ac8c9cb

Browse files
committed
TEST-#0000: don't use pandas._testing.ensure_clean
Signed-off-by: Anatoly Myachev <anatoly.myachev@intel.com>
1 parent a966395 commit ac8c9cb

File tree

2 files changed

+55
-74
lines changed

2 files changed

+55
-74
lines changed

modin/conftest.py

Lines changed: 5 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,6 @@
1616

1717
import os
1818
import platform
19-
import shutil
2019
import subprocess
2120
import sys
2221
import time
@@ -340,16 +339,15 @@ def fixture(tmp_path):
340339

341340

342341
@pytest.fixture
343-
def make_parquet_file():
342+
def make_parquet_file(tmp_path):
344343
"""Pytest fixture factory that makes a parquet file/dir for testing.
345344
346345
Yields:
347346
Function that generates a parquet file/dir
348347
"""
349-
filenames = []
350348

351349
def _make_parquet_file(
352-
filename,
350+
filename=None,
353351
nrows=NROWS,
354352
ncols=2,
355353
force=True,
@@ -369,6 +367,8 @@ def _make_parquet_file(
369367
partitioned_columns: Create a partitioned directory using pandas.
370368
row_group_size: Maximum size of each row group.
371369
"""
370+
if filename is None:
371+
filename = get_unique_filename(extension=".parquet", data_dir=tmp_path)
372372
if force or not os.path.exists(filename):
373373
df = pandas.DataFrame(
374374
{f"col{x + 1}": np.arange(nrows) for x in range(ncols)}
@@ -395,19 +395,11 @@ def _make_parquet_file(
395395
)
396396
else:
397397
df.to_parquet(filename, row_group_size=row_group_size)
398-
filenames.append(filename)
398+
return filename
399399

400400
# Return function that generates parquet files
401401
yield _make_parquet_file
402402

403-
# Delete parquet file that was created
404-
for path in filenames:
405-
if os.path.exists(path):
406-
if os.path.isdir(path):
407-
shutil.rmtree(path)
408-
else:
409-
os.remove(path)
410-
411403

412404
@pytest.fixture
413405
def make_sql_connection():

modin/pandas/test/test_io.py

Lines changed: 50 additions & 61 deletions
Original file line numberDiff line numberDiff line change
@@ -1387,44 +1387,41 @@ def _test_read_parquet(
13871387
"Skipping empty filters error case to avoid race condition - see #6460"
13881388
)
13891389

1390-
with ensure_clean(".parquet") as unique_filename:
1391-
unique_filename = path_type(unique_filename)
1392-
make_parquet_file(
1393-
filename=unique_filename,
1394-
row_group_size=row_group_size,
1395-
range_index_start=range_index_start,
1396-
range_index_step=range_index_step,
1397-
range_index_name=range_index_name,
1398-
)
1390+
unique_filename = make_parquet_file(
1391+
row_group_size=row_group_size,
1392+
range_index_start=range_index_start,
1393+
range_index_step=range_index_step,
1394+
range_index_name=range_index_name,
1395+
)
1396+
unique_filename = path_type(unique_filename)
13991397

1400-
eval_io(
1401-
fn_name="read_parquet",
1402-
# read_parquet kwargs
1403-
engine=engine,
1404-
path=unique_filename,
1405-
columns=columns,
1406-
filters=filters,
1407-
)
1398+
eval_io(
1399+
fn_name="read_parquet",
1400+
# read_parquet kwargs
1401+
engine=engine,
1402+
path=unique_filename,
1403+
columns=columns,
1404+
filters=filters,
1405+
)
14081406

14091407
@pytest.mark.parametrize(
14101408
"dtype_backend", [lib.no_default, "numpy_nullable", "pyarrow"]
14111409
)
14121410
def test_read_parquet_dtype_backend(self, engine, make_parquet_file, dtype_backend):
1413-
with ensure_clean(".parquet") as unique_filename:
1414-
make_parquet_file(filename=unique_filename, row_group_size=100)
1411+
unique_filename = make_parquet_file(row_group_size=100)
14151412

1416-
def comparator(df1, df2):
1417-
df_equals(df1, df2)
1418-
df_equals(df1.dtypes, df2.dtypes)
1413+
def comparator(df1, df2):
1414+
df_equals(df1, df2)
1415+
df_equals(df1.dtypes, df2.dtypes)
14191416

1420-
eval_io(
1421-
fn_name="read_parquet",
1422-
# read_parquet kwargs
1423-
engine=engine,
1424-
path=unique_filename,
1425-
dtype_backend=dtype_backend,
1426-
comparator=comparator,
1427-
)
1417+
eval_io(
1418+
fn_name="read_parquet",
1419+
# read_parquet kwargs
1420+
engine=engine,
1421+
path=unique_filename,
1422+
dtype_backend=dtype_backend,
1423+
comparator=comparator,
1424+
)
14281425

14291426
# Tests issue #6778
14301427
def test_read_parquet_no_extension(self, engine, make_parquet_file):
@@ -1496,23 +1493,20 @@ def test_read_parquet_range_index(
14961493
def test_read_parquet_list_of_files_5698(self, engine, make_parquet_file):
14971494
if engine == "fastparquet" and os.name == "nt":
14981495
pytest.xfail(reason="https://github.com/pandas-dev/pandas/issues/51720")
1499-
with ensure_clean(".parquet") as f1, ensure_clean(
1500-
".parquet"
1501-
) as f2, ensure_clean(".parquet") as f3:
1502-
for f in [f1, f2, f3]:
1503-
make_parquet_file(filename=f)
1504-
eval_io(fn_name="read_parquet", path=[f1, f2, f3], engine=engine)
1505-
1506-
def test_read_parquet_indexing_by_column(self, tmp_path, engine, make_parquet_file):
1496+
filenames = [None] * 3
1497+
for i in range(3):
1498+
filenames[i] = make_parquet_file()
1499+
eval_io(fn_name="read_parquet", path=filenames, engine=engine)
1500+
1501+
def test_read_parquet_indexing_by_column(self, engine, make_parquet_file):
15071502
# Test indexing into a column of Modin with various parquet file row lengths.
15081503
# Specifically, tests for https://github.com/modin-project/modin/issues/3527
15091504
# which fails when min_partition_size < nrows < min_partition_size * (num_partitions - 1)
15101505

15111506
nrows = (
15121507
MinPartitionSize.get() + 1
15131508
) # Use the minimal guaranteed failing value for nrows.
1514-
unique_filename = get_unique_filename(extension="parquet", data_dir=tmp_path)
1515-
make_parquet_file(filename=unique_filename, nrows=nrows)
1509+
unique_filename = make_parquet_file(nrows=nrows)
15161510

15171511
parquet_df = pd.read_parquet(unique_filename, engine=engine)
15181512
for col in parquet_df.columns:
@@ -1731,17 +1725,14 @@ def test_read_parquet_directory_range_index_consistent_metadata(
17311725
)
17321726
def test_read_parquet_partitioned_directory(
17331727
self,
1734-
tmp_path,
17351728
make_parquet_file,
17361729
columns,
17371730
filters,
17381731
range_index_start,
17391732
range_index_step,
17401733
engine,
17411734
):
1742-
unique_filename = get_unique_filename(extension=None, data_dir=tmp_path)
1743-
make_parquet_file(
1744-
filename=unique_filename,
1735+
unique_filename = make_parquet_file(
17451736
partitioned_columns=["col1"],
17461737
range_index_start=range_index_start,
17471738
range_index_step=range_index_step,
@@ -2063,11 +2054,10 @@ def test_read_parquet_s3_with_column_partitioning(
20632054
# TODO(https://github.com/modin-project/modin/issues/3655): Get rid of this
20642055
# commment once we turn all default to pandas messages into errors.
20652056
def test_read_parquet_relative_to_user_home(make_parquet_file):
2066-
with ensure_clean(".parquet") as unique_filename:
2067-
make_parquet_file(filename=unique_filename)
2068-
_check_relative_io(
2069-
"read_parquet", unique_filename, "path", storage_default=("Hdk",)
2070-
)
2057+
unique_filename = make_parquet_file()
2058+
_check_relative_io(
2059+
"read_parquet", unique_filename, "path", storage_default=("Hdk",)
2060+
)
20712061

20722062

20732063
@pytest.mark.filterwarnings(default_to_pandas_ignore_string)
@@ -2756,20 +2746,19 @@ def test_fwf_file_usecols(self, make_fwf_file, usecols):
27562746
"dtype_backend", [lib.no_default, "numpy_nullable", "pyarrow"]
27572747
)
27582748
def test_read_fwf_dtype_backend(self, make_fwf_file, dtype_backend):
2759-
with ensure_clean(".fwf") as unique_filename:
2760-
make_fwf_file(filename=unique_filename)
2749+
unique_filename = make_fwf_file()
27612750

2762-
def comparator(df1, df2):
2763-
df_equals(df1, df2)
2764-
df_equals(df1.dtypes, df2.dtypes)
2751+
def comparator(df1, df2):
2752+
df_equals(df1, df2)
2753+
df_equals(df1.dtypes, df2.dtypes)
27652754

2766-
eval_io(
2767-
fn_name="read_fwf",
2768-
# read_csv kwargs
2769-
filepath_or_buffer=unique_filename,
2770-
dtype_backend=dtype_backend,
2771-
comparator=comparator,
2772-
)
2755+
eval_io(
2756+
fn_name="read_fwf",
2757+
# read_csv kwargs
2758+
filepath_or_buffer=unique_filename,
2759+
dtype_backend=dtype_backend,
2760+
comparator=comparator,
2761+
)
27732762

27742763
def test_fwf_file_chunksize(self, make_fwf_file):
27752764
unique_filename = make_fwf_file()

0 commit comments

Comments
 (0)