def test_render_product_page_with_no_variant( unavailable_product, admin_client): product = unavailable_product product.is_published = True product.product_type.has_variants = True product.save() status = get_product_availability_status(product) assert status == ProductAvailabilityStatus.VARIANTS_MISSSING url = reverse( 'product:details', kwargs={'product_id': product.pk, 'slug': product.get_slug()}) response = admin_client.get(url) assert response.status_code == 200
def test_render_product_page_with_no_variant( unavailable_product, admin_client): product = unavailable_product product.is_published = True product.product_type.has_variants = True product.save() status = get_product_availability_status(product) assert status == ProductAvailabilityStatus.VARIANTS_MISSSING url = reverse( 'product:details', kwargs={'product_id': product.pk, 'slug': product.get_slug()}) response = admin_client.get(url) assert response.status_code == 200
def test_product_availability_status(unavailable_product): product = unavailable_product product.product_class.has_variants = True # product is not published status = get_product_availability_status(product) assert status == ProductAvailabilityStatus.NOT_PUBLISHED product.is_published = True product.save() # product has no variants status = get_product_availability_status(product) assert status == ProductAvailabilityStatus.VARIANTS_MISSSING # product has variant but not stock records variant_1 = product.variants.create(sku='test-1') variant_2 = product.variants.create(sku='test-2') status = get_product_availability_status(product) assert status == ProductAvailabilityStatus.NOT_CARRIED # create empty stock records stock_1 = variant_1.stock.create(quantity=0) stock_2 = variant_2.stock.create(quantity=0) status = get_product_availability_status(product) assert status == ProductAvailabilityStatus.OUT_OF_STOCK # assign quantity to only one stock record stock_1.quantity = 5 stock_1.save() status = get_product_availability_status(product) assert status == ProductAvailabilityStatus.LOW_STOCK # both stock records have some quantity stock_2.quantity = 5 stock_2.save() status = get_product_availability_status(product) assert status == ProductAvailabilityStatus.READY_FOR_PURCHASE # set product availability date from future product.available_on = datetime.date.today() + datetime.timedelta(days=1) product.save() status = get_product_availability_status(product) assert status == ProductAvailabilityStatus.NOT_YET_AVAILABLE
def test_product_availability_status(unavailable_product): product = unavailable_product product.product_type.has_variants = True # product is not published status = get_product_availability_status(product) assert status == ProductAvailabilityStatus.NOT_PUBLISHED product.is_published = True product.save() # product has no variants status = get_product_availability_status(product) assert status == ProductAvailabilityStatus.VARIANTS_MISSSING # product has variant but not stock records variant_1 = product.variants.create(sku='test-1') variant_2 = product.variants.create(sku='test-2') status = get_product_availability_status(product) assert status == ProductAvailabilityStatus.NOT_CARRIED # create empty stock records stock_1 = variant_1.stock.create(quantity=0) stock_2 = variant_2.stock.create(quantity=0) status = get_product_availability_status(product) assert status == ProductAvailabilityStatus.OUT_OF_STOCK # assign quantity to only one stock record stock_1.quantity = 5 stock_1.save() status = get_product_availability_status(product) assert status == ProductAvailabilityStatus.LOW_STOCK # both stock records have some quantity stock_2.quantity = 5 stock_2.save() status = get_product_availability_status(product) assert status == ProductAvailabilityStatus.READY_FOR_PURCHASE # set product availability date from future product.available_on = datetime.date.today() + datetime.timedelta(days=1) product.save() status = get_product_availability_status(product) assert status == ProductAvailabilityStatus.NOT_YET_AVAILABLE