awslabs / awslabs/python-deequ

satisfies test fails if assertion is not provided

Open
#182 4 comments 0 reactions 0 assignees View on GitHub
bug
Dominant language
Jupyter Notebook
Stars
826
Forks
158
PR merge metrics
No merged PRs in 30d

Description

**Describe the bug**
`satisfies` test fails if assertion is not provided despite there being a default value for the argument.

I believe the reference `satisfies$default$2` should be `satisfies$default$3` but I need to test that.

**To Reproduce**
```
from pydeequ.checks import *
from pydeequ.verification import *

check = Check(spark, CheckLevel.Warning, "test satisfies")

checkResult = VerificationSuite(spark)
.onData(df)
.addCheck(
check
.satisfies("r in ('123','456','789')","r cannot contain any values excpet"))
.run()

Error:

py4j.Py4JException: Method satisfies$default$2([]) does not exist

--> 542 else getattr(self._Check, "satisfies$default$2")()
543 hint = self._jvm.scala.Option.apply(hint)
544 self._Check = self._Check.satisfies(columnCondition, constraintName, assertion_func, hint)
```

**Expected behavior**
Test runs without error

**Additional context**
Spark 3.3, pydeequ==1.1.1

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.