예제 #1
0
    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)
예제 #2
0
    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)
예제 #3
0
    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)