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)