def test_list_match_simple_bad(self): context = ExecutionContext() source = [1] want = [jp.NUM_NE(1)] result = jp.LIST_MATCHES(want)(context, source) expect = (jp.SequencedPredicateResultBuilder( jp.LIST_MATCHES(want)).append_result( jp.MapPredicate(jp.NUM_NE(1))(context, source)).build(False)) self.assertFalse(result) self.assertEquals(expect, result)
def test_list_match_unique_ok(self): context = ExecutionContext() source = [1, 2] want = [jp.NUM_EQ(1)] match_pred = jp.LIST_MATCHES(want, unique=True) result = match_pred(context, source) expect = (jp.SequencedPredicateResultBuilder(match_pred).append_result( jp.MapPredicate(jp.NUM_EQ(1))(context, source)).build(True)) self.assertTrue(result) self.assertEquals(expect, result)
def test_list_match_strict_bad(self): context = ExecutionContext() source = [1, 2] want = [jp.NUM_NE(2)] match_pred = jp.LIST_MATCHES(want, strict=True) result = match_pred(context, source) expect = (jp.SequencedPredicateResultBuilder(match_pred).append_result( jp.MapPredicate(jp.NUM_NE(2))(context, source)).append_result( jp.UnexpectedPathError(source=source, target_path='[1]', path_value=jp.PathValue( '[1]', 2))).build(False)) self.assertFalse(result) self.assertEquals(expect, result)