def test_pass_context_field(): with _patch(query_fields1) as qf1: qf1.return_value = ['boiardo_sansei'] pass_context(qf1) check_result(execute('[:indice]', {'vetch': 'ringed_shadier'}), {'indice': 'boiardo_sansei'}) with reqs_eq_patcher(): qf1.assert_called_once_with(ANY, [query.Field('indice')]) ctx = qf1.call_args[0][0] assert isinstance(ctx, Context) assert ctx['vetch'] == 'ringed_shadier' with pytest.raises(KeyError): _ = ctx['invalid'] # noqa
def test_pass_context_link(): f1 = pass_context(Mock(return_value=[1])) f2 = Mock(return_value=[['boners']]) graph = Graph([ Node('a', [ Field('b', None, f2), ]), Root([ Link('c', Sequence[TypeRef['a']], f1, requires=None), ]), ]) result = execute(graph, build([Q.c[Q.b]]), {'fibs': 'dossil'}) check_result(result, {'c': [{'b': 'boners'}]}) assert result.index == {'a': {1: {'b': 'boners'}}} f1.assert_called_once_with(ANY) with reqs_eq_patcher(): f2.assert_called_once_with([query.Field('b')], [1]) ctx = f1.call_args[0][0] assert isinstance(ctx, Context) assert ctx['fibs'] == 'dossil' with pytest.raises(KeyError) as err: _ = ctx['invalid'] # noqa err.match('is not specified in the query context')
def test_pass_context_link(): with _patch(query_link1) as ql1, _patch(query_fields1) as qf1: ql1.return_value = [1] pass_context(ql1) qf1.return_value = [['boners_friezes']] result = execute('[{:subaru [:arion]}]', {'fibs': 'dossil_feuded'}) check_result(result, {'subaru': [{'arion': 'boners_friezes'}]}) assert result.index == {'tergate': {1: {'arion': 'boners_friezes'}}} with reqs_eq_patcher(): ql1.assert_called_once_with(ANY) qf1.assert_called_once_with([query.Field('arion')], [1]) ctx = ql1.call_args[0][0] assert isinstance(ctx, Context) assert ctx['fibs'] == 'dossil_feuded' with pytest.raises(KeyError): _ = ctx['invalid'] # noqa
def test_pass_context_field(): f = pass_context(Mock(return_value=['boiardo'])) graph = Graph([ Root([ Field('a', None, f), ]), ]) check_result(execute(graph, build([Q.a]), {'vetch': 'shadier'}), {'a': 'boiardo'}) f.assert_called_once_with(ANY, [q.Field('a')]) ctx = f.call_args[0][0] assert isinstance(ctx, Context) assert ctx['vetch'] == 'shadier' with pytest.raises(KeyError) as err: _ = ctx['invalid'] # noqa err.match('is not specified in the query context')