def test_add_column_row_condition(): e = PandasExecutionEngine() # Checking that adding a simple column row condition is functional new_domain_kwargs = e.add_column_row_condition({}, "a") assert new_domain_kwargs == { "condition_parser": "great_expectations__experimental__", "row_condition": 'col("a").notnull()', } # Ensuring that this also works when formatted differently new_domain_kwargs = e.add_column_row_condition({"column": "a"}) assert new_domain_kwargs == { "column": "a", "condition_parser": "great_expectations__experimental__", "row_condition": 'col("a").notnull()', } # Ensuring that everything still works if a row condition of None given new_domain_kwargs = e.add_column_row_condition( {"column": "a", "row_condition": None} ) assert new_domain_kwargs == { "column": "a", "row_condition": None, "condition_parser": "great_expectations__experimental__", "row_condition": 'col("a").notnull()', } # Identity case new_domain_kwargs = e.add_column_row_condition({}, "a", filter_null=False) assert new_domain_kwargs == {}
def test_add_column_row_condition_with_unsupported_conditions(): e = PandasExecutionEngine() # Ensuring that an attempt to filter nans within base class yields an error with pytest.raises(GreatExpectationsError) as error: new_domain_kwargs = e.add_column_row_condition({}, "a", filter_nan=True) # Having a pre-existing row condition should result in an error, as we should not be updating it with pytest.raises(GreatExpectationsError) as error: new_domain_kwargs = e.add_column_row_condition( {"column": "a", "row_condition": "col(a) == 2"} ) # Testing that error raised when column not given with pytest.raises(AssertionError) as error: new_domain_kwargs = e.add_column_row_condition({})