def test_expect_compound_columns_to_be_unique(sa): engine = sa.create_engine("sqlite://") data = pd.DataFrame({ "col1": [1, 2, 3, 1, 2, 3, 4, 5, None], "col2": [1, 2, 2, 2, 2, 3, None, None, None], "col3": [1, 1, 2, 2, 3, 2, None, None, None], "col4": [1, None, 2, 2, None, None, None, None, None], }) data.to_sql(name="test_sql_data", con=engine, index=False) dataset = SqlAlchemyDataset("test_sql_data", engine=engine) assert not dataset.expect_compound_columns_to_be_unique(["col1", "col2" ]).success assert not dataset.expect_compound_columns_to_be_unique(["col2", "col3" ]).success assert not dataset.expect_compound_columns_to_be_unique(["col1", "col3" ]).success assert dataset.expect_compound_columns_to_be_unique( ["col1", "col2", "col3"]).success assert not dataset.expect_compound_columns_to_be_unique( ["col1", "col2", "col4"]).success assert dataset.expect_compound_columns_to_be_unique( ["col1", "col2", "col4"], ignore_row_if="any_value_is_missing", ).success assert not dataset.expect_compound_columns_to_be_unique( ["col1", "col2", "col4"], ignore_row_if="never", ).success
def test_expect_compound_columns_to_be_unique_with_no_rows(sa): engine = sa.create_engine("sqlite://") data = pd.DataFrame({ "col1": [], "col2": [], "col3": [], "col4": [], }) data.to_sql(name="test_sql_data", con=engine, index=False) dataset = SqlAlchemyDataset("test_sql_data", engine=engine) assert dataset.expect_compound_columns_to_be_unique(["col1", "col2"]).success