Skip to content

Commit

Permalink
test(polars): unroll outer join mutability test cases
Browse files Browse the repository at this point in the history
  • Loading branch information
cpcloud committed Dec 18, 2023
1 parent 6b1f53a commit bcb1006
Showing 1 changed file with 50 additions and 22 deletions.
72 changes: 50 additions & 22 deletions ibis/backends/tests/test_join.py
Original file line number Diff line number Diff line change
Expand Up @@ -334,46 +334,74 @@ def test_join_with_trivial_predicate(awards_players, predicate, how, pandas_valu
assert len(result) == len(expected)


outer_join_nullability_failures = [
pytest.mark.notyet(
["mysql"],
raises=sa.exc.ProgrammingError,
reason="mysql doesn't support full outer joins",
)
] + [pytest.mark.notyet(["sqlite"])] * (vparse(sqlite3.sqlite_version) < vparse("3.39"))


@pytest.mark.notimpl(
["druid", "exasol"],
raises=sa.exc.NoSuchTableError,
reason="`win` table isn't loaded",
)
@pytest.mark.notimpl(["flink"], reason="`win` table isn't loaded")
@pytest.mark.parametrize(
("how", "nrows"),
("how", "nrows", "gen_right", "keys"),
[
param("left", 2, id="left"),
param("right", 1, id="right"),
param(
"outer",
"left",
2,
id="outer",
marks=[
pytest.mark.notyet(
["mysql"],
raises=sa.exc.ProgrammingError,
reason="mysql doesn't support full outer joins",
)
]
+ [pytest.mark.notyet(["sqlite"])]
* (vparse(sqlite3.sqlite_version) < vparse("3.39")),
lambda left: left.filter(lambda t: t.x == 1).select(y=lambda t: t.x),
[("x", "y")],
id="left-xy",
marks=pytest.mark.notyet(["polars"], reason="renaming fails"),
),
param(
"left",
2,
lambda left: left.filter(lambda t: t.x == 1),
"x",
id="left-x",
marks=pytest.mark.notimpl(["pyspark"], reason="overlapping columns"),
),
],
)
@pytest.mark.parametrize(
("gen_right", "keys"),
[
param(
"right",
1,
lambda left: left.filter(lambda t: t.x == 1).select(y=lambda t: t.x),
[("x", "y")],
id="non_overlapping",
id="right-xy",
marks=pytest.mark.notyet(["polars"], reason="renaming fails"),
),
param(
"right",
1,
lambda left: left.filter(lambda t: t.x == 1),
"x",
id="overlapping",
marks=[pytest.mark.notimpl(["pyspark"], reason="overlapping columns")],
id="right-x",
marks=pytest.mark.notimpl(["pyspark"], reason="overlapping columns"),
),
param(
"outer",
2,
lambda left: left.filter(lambda t: t.x == 1).select(y=lambda t: t.x),
[("x", "y")],
id="outer-xy",
marks=outer_join_nullability_failures,
),
param(
"outer",
2,
lambda left: left.filter(lambda t: t.x == 1),
"x",
id="outer-x",
marks=[
pytest.mark.notimpl(["pyspark"], reason="overlapping columns"),
*outer_join_nullability_failures,
],
),
],
)
Expand Down

0 comments on commit bcb1006

Please sign in to comment.