Validate.assert_passing()

Raise an AssertionError if all tests are not passing.

Usage

Source

Validate.assert_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.

If the validation has not yet been interrogated, this method will automatically call interrogate() with default parameters before checking for passing tests.

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). The assert_passing() method is used to assert that all validation steps passed perfectly, automatically performing the interrogation if needed.

import pointblank as pb
import polars as pl

tbl = 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"])
)

# No need to call [`interrogate()`](`pointblank.Validate.interrogate`) explicitly
validation.assert_passing()
---------------------------------------------------------------------------
AssertionError                            Traceback (most recent call last)
/tmp/ipykernel_11084/2424908189.py in ?()
     16     .col_vals_in_set(columns="c", set=["a", "b"])
     17 )
     18 
     19 # No need to call [`interrogate()`](`pointblank.Validate.interrogate`) explicitly
---> 20 validation.assert_passing()

~/work/pointblank/pointblank/pointblank/validate.py in ?(self)
  14692             ]
  14693             msg = "The following assertions failed:\n" + "\n".join(
  14694                 [f"- Step {i + 1}: {autobrief}" for i, autobrief in failed_steps]
  14695             )
> 14696             raise AssertionError(msg)

AssertionError: The following assertions failed:
- Step 2: Expect that values in `b` should be < `9`.