Dive into secure and efficient coding practices with our curated list of the top 10 examples showcasing 'graphene' in functional components in Python. Our advanced machine learning engine meticulously scans each line of code, cross-referencing millions of open source libraries to ensure your implementation is not just functional, but also robust and secure. Elevate your React applications to new heights by mastering the art of handling side effects, API calls, and asynchronous operations with confidence and precision.
from django.contrib.gis import geos
import graphene
import graphql_geojson
from . import models, types
from .testcases import SchemaTestCase
class CreatePlace(graphene.Mutation):
place = graphene.Field(types.PlaceType)
class Arguments:
name = graphene.String(required=True)
location = graphql_geojson.Geometry(required=True)
@classmethod
def mutate(cls, root, info, **args):
place = models.Place.objects.create(**args)
return cls(place=place)
class MutationsTests(SchemaTestCase):
query = '''
mutation CreatePlace($name: String!, $location: Geometry!) {
createPlace(name: $name, location: $location) {
place {
id
type
geometry {
is_ok = graphene.Boolean()
@staticmethod
def publish(payload, info):
"""Send the subscription notification."""
del payload, info
return OnTrigger(is_ok=True)
class Subscription(graphene.ObjectType):
"""Root subscription."""
on_trigger = OnTrigger.Field()
class Mutation(graphene.ObjectType):
"""Root mutation."""
trigger = Trigger.Field()
def test_webhook_delete_by_service_account_wrong_webhook(
service_account_api_client, webhook
):
query = WEBHOOK_DELETE_BY_SERVICE_ACCOUNT
webhook_id = graphene.Node.to_global_id("Webhook", webhook.pk)
variables = {"id": webhook_id}
webhook.delete()
response = service_account_api_client.post_graphql(query, variables=variables)
content = get_graphql_content(response)
errors = content["data"]["webhookDelete"]["webhookErrors"]
assert errors[0]["code"] == "GRAPHQL_ERROR"
def test_delete_collections(
staff_api_client, collection_list, permission_manage_products
):
query = """
mutation collectionBulkDelete($ids: [ID]!) {
collectionBulkDelete(ids: $ids) {
count
}
}
"""
variables = {
"ids": [
graphene.Node.to_global_id("Collection", collection.id)
for collection in collection_list
]
}
response = staff_api_client.post_graphql(
query, variables, permissions=[permission_manage_products]
)
content = get_graphql_content(response)
assert content["data"]["collectionBulkDelete"]["count"] == 3
assert not Collection.objects.filter(
id__in=[collection.id for collection in collection_list]
).exists()
def test_draft_order_lines_create(
draft_order, permission_manage_orders, staff_api_client
):
query = DRAFT_ORDER_LINES_CREATE_MUTATION
order = draft_order
line = order.lines.first()
variant = line.variant
old_quantity = line.quantity
quantity = 1
order_id = graphene.Node.to_global_id("Order", order.id)
variant_id = graphene.Node.to_global_id("ProductVariant", variant.id)
variables = {"orderId": order_id, "variantId": variant_id, "quantity": quantity}
# mutation should fail without proper permissions
response = staff_api_client.post_graphql(query, variables)
assert_no_permission(response)
# assign permissions
staff_api_client.user.user_permissions.add(permission_manage_orders)
response = staff_api_client.post_graphql(query, variables)
content = get_graphql_content(response)
data = content["data"]["draftOrderLinesCreate"]
assert data["orderLines"][0]["productSku"] == variant.sku
assert data["orderLines"][0]["quantity"] == old_quantity + quantity
# mutation should fail when quantity is lower than 1
variables = {"orderId": order_id, "variantId": variant_id, "quantity": 0}
def test_payment_capture_with_invalid_argument(
staff_api_client, permission_manage_orders, payment_txn_preauth
):
payment = payment_txn_preauth
assert payment.charge_status == ChargeStatus.NOT_CHARGED
payment_id = graphene.Node.to_global_id("Payment", payment.pk)
variables = {"paymentId": payment_id, "amount": 0}
response = staff_api_client.post_graphql(
CAPTURE_QUERY, variables, permissions=[permission_manage_orders]
)
content = get_graphql_content(response)
data = content["data"]["paymentCapture"]
assert len(data["errors"]) == 1
assert data["errors"][0]["message"] == "Amount should be a positive number."
def test_checkout_remove_one_of_gift_cards(
api_client, checkout_with_gift_card, gift_card_created_by_staff
):
checkout_with_gift_card.gift_cards.add(gift_card_created_by_staff)
checkout_with_gift_card.save()
gift_card_first = checkout_with_gift_card.gift_cards.first()
gift_card_last = checkout_with_gift_card.gift_cards.last()
checkout_id = graphene.Node.to_global_id("Checkout", checkout_with_gift_card.pk)
variables = {"checkoutId": checkout_id, "promoCode": gift_card_first.code}
data = _mutate_checkout_remove_promo_code(api_client, variables)
checkout_gift_cards = checkout_with_gift_card.gift_cards
assert data["checkout"]["id"] == checkout_id
assert checkout_gift_cards.filter(code=gift_card_last.code).exists()
assert not checkout_gift_cards.filter(code=gift_card_first.code).exists()
def test_service_account_query(
staff_api_client,
permission_manage_service_accounts,
permission_manage_staff,
service_account,
):
service_account.permissions.add(permission_manage_staff)
id = graphene.Node.to_global_id("ServiceAccount", service_account.id)
variables = {"id": id}
response = staff_api_client.post_graphql(
QUERY_SERVICE_ACCOUNT,
variables,
permissions=[permission_manage_service_accounts],
)
content = get_graphql_content(response)
tokens = service_account.tokens.all()
service_account_data = content["data"]["serviceAccount"]
tokens_data = service_account_data["tokens"]
assert tokens.count() == 1
assert tokens_data[0]["authToken"] == tokens.first().auth_token[-4:]
assert service_account_data["isActive"] == service_account.is_active
assert service_account_data["permissions"] == [
query giftCards{
me {
giftCards(first: 10) {
edges {
node {
id
displayCode
code
}
}
totalCount
}
}
}
"""
gift_card_id = graphene.Node.to_global_id("GiftCard", gift_card.pk)
response = user_api_client.post_graphql(query)
content = get_graphql_content(response)
data = content["data"]["me"]["giftCards"]
assert data["edges"][0]["node"]["id"] == gift_card_id
assert data["edges"][0]["node"]["displayCode"] == gift_card.display_code
assert data["edges"][0]["node"]["code"] == gift_card.code
assert data["totalCount"] == 1
):
"""Set the parent of an item to None, to put it as to the root level."""
menu_item_list = list(menu_item_list)
menu_global_id = graphene.Node.to_global_id("Menu", menu_item_list[0].menu_id)
unchanged_item_global_id = graphene.Node.to_global_id(
"MenuItem", menu_item_list[2].pk
)
root_candidate = menu_item_list[0]
root_candidate_global_id = graphene.Node.to_global_id("MenuItem", root_candidate.pk)
# Give to the item menu a parent
previous_parent = menu_item_list[1]
previous_parent_global_id = graphene.Node.to_global_id(
"MenuItem", previous_parent.pk
)
root_candidate.move_to(previous_parent)
root_candidate.save()
assert root_candidate.parent
moves_input = [
{"itemId": root_candidate_global_id, "parentId": None, "sortOrder": None}
]
expected_data = {
"id": menu_global_id,
"items": [
{
"id": previous_parent_global_id,
"sortOrder": 1,