You cannot select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
				
	
	
		
			42 lines
		
	
	
		
			1.1 KiB
		
	
	
	
		
			Python
		
	
			
		
		
	
	
			42 lines
		
	
	
		
			1.1 KiB
		
	
	
	
		
			Python
		
	
import pytest
 | 
						|
 | 
						|
from pandas.core.frame import DataFrame
 | 
						|
 | 
						|
 | 
						|
@pytest.fixture
 | 
						|
def dataframe():
 | 
						|
    return DataFrame({"a": [1, 2], "b": [3, 4]})
 | 
						|
 | 
						|
 | 
						|
class TestDataFrameValidate:
 | 
						|
    """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 = {"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 pytest.raises(ValueError, match=msg):
 | 
						|
            getattr(dataframe, func)(**kwargs)
 |