Beispiel #1
0
    def test_list_subset_strict_bad(self):
        letters = {'a': 'A', 'b': 'B', 'c': 'C'}
        numbers = {'a': 1, 'b': 2, 'c': 'C'}
        source = [letters, numbers]

        common_subset_pred = jp.LIST_SUBSET([{'c': 'C'}], strict=True)
        self.assertBadResult(PathValue('', source), common_subset_pred,
                             common_subset_pred(source))
Beispiel #2
0
    def test_list_subset_nonstrict_good(self):
        letters = {'a': 'A', 'b': 'B', 'c': 'C'}
        numbers = {'a': 1, 'b': 2, 'c': 'C'}
        source = [letters, numbers]

        common_subset_pred = jp.LIST_SUBSET([{'c': 'C'}])
        self.assertFalse(common_subset_pred.strict)
        self.assertGoodResult(PathValue('', source), common_subset_pred,
                              common_subset_pred(source))
    def test_list_subset_nested_bad(self):
        context = ExecutionContext()
        letters = {'a': 'A', 'b': 'B', 'c': 'C'}
        numbers = {'a': 1, 'b': 2, 'c': 'C'}
        source = [numbers, [letters]]

        pred = jp.LIST_SUBSET([[{'b': 2}]])
        self.assertBadResult(PathValue('', source), pred,
                             pred(context, source))
    def test_list_subset_strict_good(self):
        context = ExecutionContext()
        letters = {'a': 'A', 'b': 'B', 'c': 'C'}
        numbers = {'a': 1, 'b': 2, 'c': 'C'}
        source = [letters, numbers]

        common_subset_pred = jp.LIST_SUBSET([letters], strict=True)
        self.assertGoodResult(PathValue('', source), common_subset_pred,
                              common_subset_pred(context, source))
    def test_dict_subset_with_array_values_bad(self):
        context = ExecutionContext()
        small = {'a': ['A'], 'b': [1, 2]}
        big = {'a': ['A', 'B', 'C'], 'b': [1, 2]}

        big_subset_pred = jp.DICT_SUBSET(big)
        list_subset_pred = jp.LIST_SUBSET(big['a'])

        self.assertBadResult(expect_value=PathValue('a', small['a']),
                             pred=list_subset_pred,
                             got_result=big_subset_pred(context, small),
                             source=small,
                             target_path='a')
Beispiel #6
0
  def test_list_subset_nonstrict_bad(self):
    context = ExecutionContext()
    letters = {'a':'A', 'b':'B', 'c':'C'}
    numbers = {'a':1, 'b':2, 'c':'C'}
    source = [letters, numbers]

    common_subset_pred = jp.LIST_SUBSET([{'c':3}])

    self.assertEqual(
        jp.PathValueResult(
            valid=False, pred=common_subset_pred,
            source=source, target_path='',
            path_value=PathValue('', source)),
        common_subset_pred(context, source))