33 lines
1.1 KiB
Python
33 lines
1.1 KiB
Python
from pandas.core.frame import DataFrame
|
|
|
|
import pytest
|
|
import pandas.util.testing as tm
|
|
|
|
|
|
@pytest.fixture
|
|
def dataframe():
|
|
return DataFrame({'a': [1, 2], 'b': [3, 4]})
|
|
|
|
|
|
class TestDataFrameValidate(object):
|
|
"""Tests for error handling related to data types of method arguments."""
|
|
|
|
@pytest.mark.parametrize("func", ["query", "eval", "set_index",
|
|
"reset_index", "dropna",
|
|
"drop_duplicates", "sort_values"])
|
|
@pytest.mark.parametrize("inplace", [1, "True", [1, 2, 3], 5.0])
|
|
def test_validate_bool_args(self, dataframe, func, inplace):
|
|
msg = "For argument \"inplace\" expected type bool"
|
|
kwargs = dict(inplace=inplace)
|
|
|
|
if func == "query":
|
|
kwargs["expr"] = "a > b"
|
|
elif func == "eval":
|
|
kwargs["expr"] = "a + b"
|
|
elif func == "set_index":
|
|
kwargs["keys"] = ["a"]
|
|
elif func == "sort_values":
|
|
kwargs["by"] = ["a"]
|
|
|
|
with tm.assert_raises_regex(ValueError, msg):
|
|
getattr(dataframe, func)(**kwargs)
|