def test_relay_node_field_resolver(): data_source = InMemoryDataSource() R = TypeRegistry() Relay = R.Mixin(RelayMixin, data_source) class Pet(R.Implements[R.Node]): name = R.String class Query(R.ObjectType): pets = R.Pet.List node = Relay.NodeField schema = R.Schema(R.Query) data_source.add(Pet(id=5, name="Garfield")) data_source.add(Pet(id=6, name="Odis")) result = graphql( schema, """ { node(id: "UGV0OjU=") { id, ... on Pet { name } } } """, ) assert not result.errors assert result.data == {"node": {"id": "UGV0OjU=", "name": "Garfield"}}
def test_relay_node_field_resolver(): data_source = InMemoryDataSource() R = TypeRegistry() Relay = R.Mixin(RelayMixin, data_source) class Pet(R.Implements[R.Node]): name = R.String class Query(R.ObjectType): pets = R.Pet.List node = Relay.NodeField schema = R.Schema(R.Query) data_source.add(Pet(id=5, name='Garfield')) data_source.add(Pet(id=6, name='Odis')) result = graphql(schema, ''' { node(id: "UGV0OjU=") { id, ... on Pet { name } } } ''') assert not result.errors assert result.data == {'node': {'id': 'UGV0OjU=', 'name': 'Garfield'}}
from graphql.core import graphql from epoxy.contrib.relay import RelayMixin from epoxy.contrib.relay.data_source.memory import InMemoryDataSource from epoxy.contrib.relay.utils import base64 from epoxy.registry import TypeRegistry letter_chars = ['A', 'B', 'C', 'D', 'E'] data_source = InMemoryDataSource() R = TypeRegistry() Relay = R.Mixin(RelayMixin, data_source) class Letter(R.Implements[Relay.Node]): letter = R.String class Query(R.ObjectType): letters = Relay.Connection('Letter', R.Letter) node = Relay.NodeField Schema = R.Schema(R.Query) letters = {} for i, letter in enumerate(letter_chars, 1): l = Letter(id=i, letter=letter) letters[letter] = l data_source.add(l)