def test_query_countries_with_tax(user_api_client, vatlayer, tax_rates): query = """ query { shop { countries { code vat { standardRate reducedRates { rate rateType } } } } } """ response = user_api_client.post_graphql(query) content = get_graphql_content(response) data = content["data"]["shop"]["countries"] vat = VAT.objects.first() country = next(country for country in data if country["code"] == vat.country_code) assert country["vat"]["standardRate"] == tax_rates["standard_rate"] rates = { rate["rateType"]: rate["rate"] for rate in country["vat"]["reducedRates"] } reduced_rates = { str_to_enum(tax_rate): tax_rates["reduced_rates"][tax_rate] for tax_rate in tax_rates["reduced_rates"] } assert rates == reduced_rates
def test_query_countries_with_tax(user_api_client, vatlayer, tax_rates): query = """ query { shop { countries { code vat { standardRate reducedRates { rate rateType } } } } } """ response = user_api_client.post_graphql(query) content = get_graphql_content(response) data = content['data']['shop']['countries'] vat = VAT.objects.first() country = next( country for country in data if country['code'] == vat.country_code) assert country['vat']['standardRate'] == tax_rates['standard_rate'] rates = { rate['rateType']: rate['rate'] for rate in country['vat']['reducedRates']} reduced_rates = { str_to_enum(tax_rate): tax_rates['reduced_rates'][tax_rate] for tax_rate in tax_rates['reduced_rates']} assert rates == reduced_rates
def test_query_countries_with_tax(user_api_client, vatlayer, tax_rates): query = """ query { shop { countries { code vat { standardRate reducedRates { rate rateType } } } } } """ response = user_api_client.post_graphql(query) content = get_graphql_content(response) data = content['data']['shop']['countries'] vat = VAT.objects.first() country = next(country for country in data if country['code'] == vat.country_code) assert country['vat']['standardRate'] == tax_rates['standard_rate'] rates = { rate['rateType']: rate['rate'] for rate in country['vat']['reducedRates'] } reduced_rates = { str_to_enum(tax_rate): tax_rates['reduced_rates'][tax_rate] for tax_rate in tax_rates['reduced_rates'] } assert rates == reduced_rates
def test_checkout_available_payment_gateways( api_client, cart_with_item, settings): query = """ query getCheckout($token: UUID!) { checkout(token: $token) { availablePaymentGateways } } """ variables = {'token': str(cart_with_item.token)} response = api_client.post_graphql(query, variables) content = get_graphql_content(response) data = content['data']['checkout'] checkout_payment_gateways = [ str_to_enum(gateway) for gateway in settings.CHECKOUT_PAYMENT_GATEWAYS.keys()] assert data['availablePaymentGateways'] == checkout_payment_gateways
def test_checkout_available_payment_gateways(api_client, checkout_with_item, settings): query = """ query getCheckout($token: UUID!) { checkout(token: $token) { availablePaymentGateways } } """ variables = {"token": str(checkout_with_item.token)} response = api_client.post_graphql(query, variables) content = get_graphql_content(response) data = content["data"]["checkout"] checkout_payment_gateways = [ str_to_enum(gateway) for gateway in settings.CHECKOUT_PAYMENT_GATEWAYS.keys() ] assert data["availablePaymentGateways"] == checkout_payment_gateways
def test_query_permissions(staff_api_client): query = """ query { shop { permissions { code name } } } """ response = staff_api_client.post_graphql(query) content = get_graphql_content(response) data = content["data"]["shop"] permissions = data["permissions"] permissions_codes = {permission.get("code") for permission in permissions} assert len(permissions_codes) == len(MODELS_PERMISSIONS) for code in permissions_codes: assert code in [str_to_enum(code.split(".")[1]) for code in MODELS_PERMISSIONS]
def test_query_permissions(staff_api_client): query = """ query { shop { permissions { code name } } } """ permissions_codenames = set(get_permissions_codename()) response = staff_api_client.post_graphql(query) content = get_graphql_content(response) data = content["data"]["shop"] permissions = data["permissions"] permissions_codes = {permission.get("code") for permission in permissions} assert len(permissions_codes) == len(permissions_codenames) for code in permissions_codes: assert code in [str_to_enum(code) for code in permissions_codenames]
def test_query_permissions(staff_api_client, permission_manage_users): query = """ query { shop { permissions { code name } } } """ response = staff_api_client.post_graphql( query, permissions=[permission_manage_users]) content = get_graphql_content(response) data = content['data']['shop'] permissions = data['permissions'] permissions_codes = {permission.get('code') for permission in permissions} assert len(permissions_codes) == len(MODELS_PERMISSIONS) for code in permissions_codes: assert code in [ str_to_enum(code.split('.')[1]) for code in MODELS_PERMISSIONS]
def test_query_permissions(staff_api_client, permission_manage_users): query = """ query { shop { permissions { code name } } } """ response = staff_api_client.post_graphql( query, permissions=[permission_manage_users]) content = get_graphql_content(response) data = content['data']['shop'] permissions = data['permissions'] permissions_codes = {permission.get('code') for permission in permissions} assert len(permissions_codes) == len(MODELS_PERMISSIONS) for code in permissions_codes: assert code in [ str_to_enum(code.split('.')[1]) for code in MODELS_PERMISSIONS ]
`null` indicates that the error isn't associated with a particular field."""), required=False) message = graphene.String(description='The error message.') class Meta: description = 'Represents an error in the input of a mutation.' class LanguageDisplay(graphene.ObjectType): code = graphene.String(description='Language code.', required=True) language = graphene.String(description='Language.', required=True) PermissionEnum = graphene.Enum('PermissionEnum', [(str_to_enum(codename.split('.')[1]), codename) for codename in MODELS_PERMISSIONS]) class PermissionDisplay(graphene.ObjectType): code = PermissionEnum(description='Internal code for permission.', required=True) name = graphene.String( description='Describe action(s) allowed to do by permission.', required=True) class Meta: description = 'Represents a permission object in a friendly form.' class SeoInput(graphene.InputObjectType):