Raise an AssertionError if all tests are not passing.
The assert_passing() method will raise an AssertionError if a test does not pass. This method simply wraps all_passed for more ready use in test suites. The step number and assertion made is printed in the AssertionError message if a failure occurs, ensuring some details are preserved.
Raises
:AssertionError
If any validation step has failing test units.
Examples
In the example below, we’ll use a simple Polars DataFrame with three columns (a, b, and c). There will be three validation steps, and the second step will have a failing test unit (the value 10 isn’t less than 9). After interrogation, the assert_passing() method is used to assert that all validation steps passed perfectly.
import pointblank as pbimport polars as pltbl = pl.DataFrame( {"a": [1, 2, 9, 5],"b": [5, 6, 10, 3],"c": ["a", "b", "a", "a"], })validation = ( pb.Validate(data=tbl) .col_vals_gt(columns="a", value=0) .col_vals_lt(columns="b", value=9) # this assertion is false .col_vals_in_set(columns="c", set=["a", "b"]) .interrogate())validation.assert_passing()
---------------------------------------------------------------------------AssertionError Traceback (most recent call last)
/tmp/ipykernel_4029/335715443.py in ?() 16.col_vals_in_set(columns="c", set=["a","b"]) 17.interrogate() 18 )
19---> 20validation.assert_passing()/opt/hostedtoolcache/Python/3.10.16/x64/lib/python3.10/site-packages/pointblank/validate.py in ?(self) 7201 ]
7202 msg = "The following assertions failed:\n" + "\n".join(
7203[f"- Step {i + 1}: {autobrief}"for i, autobrief in failed_steps] 7204 )
-> 7205raise AssertionError(msg)AssertionError: The following assertions failed:
- Step 2: Expect that values in `b` should be < `9`.