mirror of https://github.com/hwchase17/langchain
parent
ddd595fe81
commit
080eb1b3fc
@ -1,32 +0,0 @@
|
||||
import json
|
||||
|
||||
import pytest
|
||||
import responses
|
||||
|
||||
from langchain.utilities.graphql import GraphQLAPIWrapper
|
||||
|
||||
TEST_ENDPOINT = "http://testserver/graphql"
|
||||
|
||||
# Mock GraphQL response for testing
|
||||
MOCK_RESPONSE = {
|
||||
"data": {"allUsers": [{"id": 1, "name": "Alice", "email": "alice@example.com"}]}
|
||||
}
|
||||
|
||||
|
||||
@pytest.fixture
|
||||
def graphql_wrapper() -> GraphQLAPIWrapper:
|
||||
return GraphQLAPIWrapper(
|
||||
graphql_endpoint=TEST_ENDPOINT,
|
||||
custom_headers={"Authorization": "Bearer testtoken"},
|
||||
)
|
||||
|
||||
|
||||
@responses.activate
|
||||
def test_run(graphql_wrapper: GraphQLAPIWrapper) -> None:
|
||||
responses.add(responses.POST, TEST_ENDPOINT, json=MOCK_RESPONSE, status=200)
|
||||
|
||||
query = "query { allUsers { id, name, email } }"
|
||||
result = graphql_wrapper.run(query)
|
||||
|
||||
expected_result = json.dumps(MOCK_RESPONSE, indent=2)
|
||||
assert result == expected_result
|
@ -0,0 +1,92 @@
|
||||
import json
|
||||
|
||||
import pytest
|
||||
import responses
|
||||
|
||||
from langchain.utilities.graphql import GraphQLAPIWrapper
|
||||
|
||||
TEST_ENDPOINT = "http://testserver/graphql"
|
||||
|
||||
# Mock GraphQL response for testing
|
||||
MOCK_RESPONSE = {
|
||||
"data": {
|
||||
"allUsers": [{"name": "Alice"}],
|
||||
"__schema": {
|
||||
"queryType": {"name": "Query"},
|
||||
"types": [
|
||||
{
|
||||
"kind": "OBJECT",
|
||||
"name": "Query",
|
||||
"fields": [
|
||||
{
|
||||
"name": "allUsers",
|
||||
"args": [],
|
||||
"type": {
|
||||
"kind": "NON_NULL",
|
||||
"name": None,
|
||||
"ofType": {
|
||||
"kind": "OBJECT",
|
||||
"name": "allUsers",
|
||||
"ofType": None,
|
||||
},
|
||||
},
|
||||
}
|
||||
],
|
||||
"inputFields": None,
|
||||
"interfaces": [],
|
||||
"enumValues": None,
|
||||
"possibleTypes": None,
|
||||
},
|
||||
{
|
||||
"kind": "SCALAR",
|
||||
"name": "String",
|
||||
},
|
||||
{
|
||||
"kind": "OBJECT",
|
||||
"name": "allUsers",
|
||||
"description": None,
|
||||
"fields": [
|
||||
{
|
||||
"name": "name",
|
||||
"description": None,
|
||||
"args": [],
|
||||
"type": {
|
||||
"kind": "NON_NULL",
|
||||
"name": None,
|
||||
"ofType": {
|
||||
"kind": "SCALAR",
|
||||
"name": "String",
|
||||
"ofType": None,
|
||||
},
|
||||
},
|
||||
},
|
||||
],
|
||||
"inputFields": None,
|
||||
"interfaces": [],
|
||||
"enumValues": None,
|
||||
"possibleTypes": None,
|
||||
},
|
||||
{
|
||||
"kind": "SCALAR",
|
||||
"name": "Boolean",
|
||||
},
|
||||
],
|
||||
},
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@pytest.mark.requires("gql", "requests_toolbelt")
|
||||
@responses.activate
|
||||
def test_run() -> None:
|
||||
responses.add(responses.POST, TEST_ENDPOINT, json=MOCK_RESPONSE, status=200)
|
||||
|
||||
query = "query { allUsers { name } }"
|
||||
graphql_wrapper = GraphQLAPIWrapper(
|
||||
graphql_endpoint=TEST_ENDPOINT,
|
||||
custom_headers={"Authorization": "Bearer testtoken"},
|
||||
)
|
||||
result = graphql_wrapper.run(query)
|
||||
|
||||
expected_result = json.dumps(MOCK_RESPONSE["data"], indent=2)
|
||||
assert result == expected_result
|
Loading…
Reference in New Issue