예제 #1
0
def test_query_sales_with_filter_discount_type(
    sale_filter,
    count,
    sale_type,
    staff_api_client,
    query_sales_with_filter,
    permission_manage_discounts,
):
    Sale.objects.bulk_create([
        Sale(name="Sale1", value=123, type=DiscountValueType.FIXED),
        Sale(name="Sale2", value=123, type=sale_type),
    ])
    variables = {"filter": sale_filter}
    response = staff_api_client.post_graphql(
        query_sales_with_filter,
        variables,
        permissions=[permission_manage_discounts])
    content = get_graphql_content(response)
    data = content["data"]["sales"]["edges"]
    assert len(data) == count
예제 #2
0
def test_query_sales_with_filter_status(
    sale_filter,
    start_date,
    end_date,
    count,
    staff_api_client,
    query_sales_with_filter,
    permission_manage_discounts,
):
    Sale.objects.bulk_create([
        Sale(name="Sale1", value=123, start_date=timezone.now()),
        Sale(name="Sale2", value=123, start_date=start_date,
             end_date=end_date),
    ])
    variables = {"filter": sale_filter}
    response = staff_api_client.post_graphql(
        query_sales_with_filter,
        variables,
        permissions=[permission_manage_discounts])
    content = get_graphql_content(response)
    data = content["data"]["sales"]["edges"]
    assert len(data) == count
예제 #3
0
def test_variant_discounts(product):
    variant = product.variants.get()
    low_sale = Sale(type=DiscountValueType.FIXED, value=5)
    low_discount = DiscountInfo(
        sale=low_sale,
        product_ids={product.id},
        category_ids=set(),
        collection_ids=set(),
    )
    sale = Sale(type=DiscountValueType.FIXED, value=8)
    discount = DiscountInfo(
        sale=sale, product_ids={product.id}, category_ids=set(), collection_ids=set()
    )
    high_sale = Sale(type=DiscountValueType.FIXED, value=50)
    high_discount = DiscountInfo(
        sale=high_sale,
        product_ids={product.id},
        category_ids=set(),
        collection_ids=set(),
    )
    final_price = variant.get_price(discounts=[low_discount, discount, high_discount])
    assert final_price.gross == Money(0, "USD")
예제 #4
0
def test_query_sales_with_filter_search(
    sale_filter,
    count,
    staff_api_client,
    query_sales_with_filter,
    permission_manage_discounts,
):
    Sale.objects.bulk_create([
        Sale(name="BigSale", value=123, type="PERCENTAGE"),
        Sale(name="Sale2",
             value=123,
             type="FIXED",
             start_date=date(2012, 1, 5)),
        Sale(name="Sale3", value=69, type="FIXED", start_date=date(2012, 1,
                                                                   5)),
    ])
    variables = {"filter": sale_filter}
    response = staff_api_client.post_graphql(
        query_sales_with_filter,
        variables,
        permissions=[permission_manage_discounts])
    content = get_graphql_content(response)
    data = content["data"]["sales"]["edges"]
    assert len(data) == count
예제 #5
0
def sales_list():
    return list(
        Sale.objects.bulk_create(
            [Sale(name="Sale1", value=15),
             Sale(name="Sale2", value=5)]))