Exemple #1
0
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
Exemple #2
0
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
Exemple #3
0
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
Exemple #5
0
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
Exemple #6
0
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]
Exemple #7
0
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]
Exemple #8
0
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]
Exemple #9
0
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
        ]
Exemple #10
0
        `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):