Skip to content

Commit 2ed2d49

Browse files
authored
TEST-#7076: Explicitly check for exceptions in test_map_metadata.py (#7077)
Signed-off-by: Anatoly Myachev <anatoly.myachev@intel.com>
1 parent 39de7fa commit 2ed2d49

File tree

1 file changed

+63
-35
lines changed

1 file changed

+63
-35
lines changed

modin/pandas/test/dataframe/test_map_metadata.py

Lines changed: 63 additions & 35 deletions
Original file line numberDiff line numberDiff line change
@@ -35,8 +35,6 @@
3535
eval_general,
3636
indices_keys,
3737
indices_values,
38-
int_arg_keys,
39-
int_arg_values,
4038
name_contains,
4139
numeric_dfs,
4240
random_state,
@@ -448,13 +446,17 @@ def test_astype():
448446
@pytest.mark.parametrize("errors", ["raise", "ignore"])
449447
def test_astype_errors(errors):
450448
data = {"a": ["a", 2, -1]}
451-
modin_df, pandas_df = pd.DataFrame(data), pandas.DataFrame(data)
449+
modin_df, pandas_df = create_test_dfs(data)
450+
raising_exceptions = None
451+
if errors == "raise":
452+
pytest.xfail(reason="https://github.com/modin-project/modin/issues/7025")
452453
eval_general(
453454
modin_df,
454455
pandas_df,
455456
lambda df: df.astype("int", errors=errors),
456457
# https://github.com/modin-project/modin/issues/5962
457458
comparator_kwargs={"check_dtypes": errors != "ignore"},
459+
raising_exceptions=raising_exceptions,
458460
)
459461

460462

@@ -565,8 +567,6 @@ def test_astype_int64_to_astype_category_github_issue_6259():
565567
index=["a", "b", "c", "d", "e"],
566568
),
567569
lambda df: df["c0"].astype("Int64").astype("category"),
568-
# work around https://github.com/modin-project/modin/issues/6016
569-
raising_exceptions=(Exception,),
570570
)
571571

572572

@@ -1276,32 +1276,48 @@ def test_dropna_subset(request, data):
12761276
@pytest.mark.parametrize("data", test_data_values, ids=test_data_keys)
12771277
@pytest.mark.parametrize("axis,subset", [(0, list("EF")), (1, [4, 5])])
12781278
def test_dropna_subset_error(data, axis, subset):
1279-
eval_general(*create_test_dfs(data), lambda df: df.dropna(axis=axis, subset=subset))
1279+
eval_general(
1280+
*create_test_dfs(data),
1281+
lambda df: df.dropna(axis=axis, subset=subset),
1282+
raising_exceptions=KeyError(["E", "F"]),
1283+
)
12801284

12811285

12821286
@pytest.mark.parametrize("data", test_data_values, ids=test_data_keys)
12831287
@pytest.mark.parametrize("astype", ["category", "int32", "float"])
1284-
def test_insert_dtypes(data, astype):
1288+
def test_insert_dtypes(data, astype, request):
12851289
modin_df, pandas_df = pd.DataFrame(data), pandas.DataFrame(data)
12861290

12871291
# categories with NaN works incorrect for now
12881292
if astype == "category" and pandas_df.iloc[:, 0].isnull().any():
12891293
return
12901294

1295+
raising_exceptions = None
1296+
if "int32-float_nan_data" in request.node.callspec.id:
1297+
pytest.xfail(reason="https://github.com/modin-project/modin/issues/7026")
12911298
eval_insert(
12921299
modin_df,
12931300
pandas_df,
12941301
col="TypeSaver",
12951302
value=lambda df: df.iloc[:, 0].astype(astype),
1303+
raising_exceptions=raising_exceptions,
12961304
)
12971305

12981306

12991307
@pytest.mark.parametrize("data", test_data_values, ids=test_data_keys)
1300-
@pytest.mark.parametrize("loc", int_arg_values, ids=arg_keys("loc", int_arg_keys))
1308+
@pytest.mark.parametrize("loc", [-3, 0, 3])
13011309
def test_insert_loc(data, loc):
13021310
modin_df, pandas_df = pd.DataFrame(data), pandas.DataFrame(data)
1303-
1304-
eval_insert(modin_df, pandas_df, loc=loc, value=lambda df: df.iloc[:, 0])
1311+
raising_exceptions = None
1312+
if loc == -3:
1313+
raising_exceptions = ValueError("unbounded slice")
1314+
eval_insert(
1315+
modin_df,
1316+
pandas_df,
1317+
loc=loc,
1318+
value=lambda df: df.iloc[:, 0],
1319+
raising_exceptions=raising_exceptions,
1320+
)
13051321

13061322

13071323
@pytest.mark.parametrize("data", test_data_values, ids=test_data_keys)
@@ -1312,18 +1328,14 @@ def test_insert(data):
13121328
modin_df, pandas_df, col="Duplicate", value=lambda df: df[df.columns[0]]
13131329
)
13141330
eval_insert(modin_df, pandas_df, col="Scalar", value=100)
1315-
eval_insert(
1316-
pd.DataFrame(columns=list("ab")),
1317-
pandas.DataFrame(columns=list("ab")),
1318-
col=lambda df: df.columns[0],
1319-
value=lambda df: df[df.columns[0]],
1320-
)
1321-
eval_insert(
1322-
pd.DataFrame(index=modin_df.index),
1323-
pandas.DataFrame(index=pandas_df.index),
1324-
col=lambda df: df.columns[0],
1325-
value=lambda df: df[df.columns[0]],
1326-
)
1331+
if StorageFormat.get() != "Hdk":
1332+
# FIXME: https://github.com/modin-project/modin/issues/7027
1333+
eval_insert(
1334+
pd.DataFrame(columns=list("ab")),
1335+
pandas.DataFrame(columns=list("ab")),
1336+
col=lambda df: df.columns[0],
1337+
value=lambda df: df[df.columns[0]],
1338+
)
13271339
eval_insert(
13281340
modin_df,
13291341
pandas_df,
@@ -1358,25 +1370,32 @@ def test_insert(data):
13581370
pandas_df,
13591371
col="Too Short",
13601372
value=lambda df: list(df[df.columns[0]])[:-1],
1373+
raising_exceptions=ValueError(
1374+
f"Length of values ({len(pandas_df)-1}) does not match length of index ({len(pandas_df)})"
1375+
),
13611376
)
13621377
eval_insert(
13631378
modin_df,
13641379
pandas_df,
13651380
col=lambda df: df.columns[0],
13661381
value=lambda df: df[df.columns[0]],
1382+
raising_exceptions=ValueError("cannot insert 2d list insert, already exists"),
13671383
)
13681384
eval_insert(
13691385
modin_df,
13701386
pandas_df,
13711387
loc=lambda df: len(df.columns) + 100,
13721388
col="Bad Loc",
13731389
value=100,
1390+
raising_exceptions=IndexError(
1391+
f"index {len(pandas_df.columns) + 100} is out of bounds for axis 0 with size {len(pandas_df.columns)}"
1392+
),
13741393
)
13751394

13761395

13771396
def test_insert_4407():
13781397
data = {"col1": [1, 2, 3], "col2": [2, 3, 4]}
1379-
modin_df, pandas_df = pd.DataFrame(data), pandas.DataFrame(data)
1398+
modin_df, pandas_df = create_test_dfs(data)
13801399

13811400
def comparator(df1, df2):
13821401
assert_series_equal(df1.dtypes, df2.dtypes, check_index=False)
@@ -1385,13 +1404,22 @@ def comparator(df1, df2):
13851404
for idx, value in enumerate(
13861405
(pandas_df.to_numpy(), np.array([[1]] * 3), np.array([[1, 2, 3], [4, 5, 6]]))
13871406
):
1407+
raising_exceptions = None
1408+
if idx == 0:
1409+
raising_exceptions = ValueError(
1410+
"Expected a 1D array, got an array with shape (3, 2)"
1411+
)
1412+
elif idx == 2:
1413+
# FIXME: https://github.com/modin-project/modin/issues/7080
1414+
raising_exceptions = False
13881415
eval_insert(
13891416
modin_df,
13901417
pandas_df,
13911418
loc=0,
13921419
col=f"test_col{idx}",
13931420
value=value,
13941421
comparator=lambda df1, df2: comparator(df1, df2),
1422+
raising_exceptions=raising_exceptions,
13951423
)
13961424

13971425

@@ -1604,7 +1632,9 @@ def test_transpose(data):
16041632
def test_update(data, other_data, errors):
16051633
modin_df, pandas_df = create_test_dfs(data)
16061634
other_modin_df, other_pandas_df = create_test_dfs(other_data)
1607-
1635+
raising_exceptions = None
1636+
if errors == "raise":
1637+
raising_exceptions = ValueError("Data overlaps.")
16081638
eval_general(
16091639
modin_df,
16101640
pandas_df,
@@ -1614,6 +1644,7 @@ def test_update(data, other_data, errors):
16141644
else df.update(other_pandas_df, errors=errors)
16151645
),
16161646
__inplace__=True,
1647+
raising_exceptions=raising_exceptions,
16171648
)
16181649

16191650

@@ -1633,10 +1664,14 @@ def test___neg__(request, data):
16331664

16341665

16351666
@pytest.mark.parametrize("data", test_data_values, ids=test_data_keys)
1636-
def test___invert__(data):
1637-
modin_df = pd.DataFrame(data)
1638-
pandas_df = pandas.DataFrame(data)
1639-
eval_general(modin_df, pandas_df, lambda df: ~df)
1667+
def test___invert__(data, request):
1668+
raising_exceptions = None
1669+
if "float_nan_data" in request.node.callspec.id:
1670+
# FIXME: https://github.com/modin-project/modin/issues/7081
1671+
raising_exceptions = False
1672+
eval_general(
1673+
*create_test_dfs(data), lambda df: ~df, raising_exceptions=raising_exceptions
1674+
)
16401675

16411676

16421677
def test___invert___bool():
@@ -1648,13 +1683,6 @@ def test___invert___bool():
16481683
df_equals(modin_result, pandas_result)
16491684

16501685

1651-
def test___hash__():
1652-
data = test_data_values[0]
1653-
pandas_df = pandas.DataFrame(data)
1654-
modin_df = pd.DataFrame(data)
1655-
eval_general(modin_df, pandas_df, hash)
1656-
1657-
16581686
@pytest.mark.parametrize("data", test_data_values, ids=test_data_keys)
16591687
def test___delitem__(request, data):
16601688
modin_df = pd.DataFrame(data)

0 commit comments

Comments
 (0)