def test_replace_checkout_line_form(checkout, product): variant = product.variants.get() initial_quantity = 1 replaced_quantity = 4 add_variant_to_checkout(checkout, variant, initial_quantity) data = {"quantity": replaced_quantity} form = forms.ReplaceCheckoutLineForm(data=data, checkout=checkout, variant=variant) assert form.is_valid() form.save() assert checkout.quantity == replaced_quantity
def test_replace_checkout_line_form_when_insufficient_stock( monkeypatch, checkout, product): variant = product.variants.get() initial_quantity = 1 replaced_quantity = 4 add_variant_to_checkout(checkout, variant, initial_quantity) exception_mock = InsufficientStock(Mock(quantity_available=2)) monkeypatch.setattr('saleor.product.models.ProductVariant.check_quantity', Mock(side_effect=exception_mock)) data = {'quantity': replaced_quantity} form = forms.ReplaceCheckoutLineForm(data=data, checkout=checkout, variant=variant) assert not form.is_valid() with pytest.raises(KeyError): form.save() assert checkout.quantity == initial_quantity