def test_replace_cart_line_form(cart, product_in_stock): variant = product_in_stock.variants.get() initial_quantity = 1 replaced_quantity = 4 cart.add(variant, initial_quantity) data = {'quantity': replaced_quantity} form = forms.ReplaceCartLineForm(data=data, cart=cart, variant=variant) assert form.is_valid() form.save() assert cart.quantity == replaced_quantity
def test_replace_cartline_form_when_insufficient_stock(monkeypatch, cart, product_in_stock): variant = product_in_stock.variants.get() initial_quantity = 1 replaced_quantity = 4 cart.add(variant, initial_quantity) exception_mock = InsufficientStock( Mock(get_stock_quantity=Mock(return_value=2))) monkeypatch.setattr('saleor.product.models.ProductVariant.check_quantity', Mock(side_effect=exception_mock)) data = {'quantity': replaced_quantity} form = forms.ReplaceCartLineForm(data=data, cart=cart, variant=variant) assert not form.is_valid() with pytest.raises(KeyError): form.save() assert cart.quantity == initial_quantity