def test_product_edit_view_with_params(rf, admin_user): get_default_shop() sku = "test-sku" name = "test name" request = apply_request_middleware(rf.get("/", {"name": name, "sku": sku}), user=admin_user) with replace_modules([ProductModule]): with admin_only_urls(): view_func = ProductEditView.as_view() response = view_func(request) assert (sku in response.rendered_content) # it's probable the SKU is there assert (name in response.rendered_content) # it's probable the name is there
def test_product_edit_view_with_params(rf, admin_user): get_default_shop() sku = "test-sku" name = "test name" request = apply_request_middleware(rf.get("/", {"name": name, "sku": sku}), user=admin_user) with replace_modules([ProductModule]): with admin_only_urls(): view_func = ProductEditView.as_view() response = view_func(request) assert (sku in response.rendered_content) # it's probable the SKU is there assert (name in response.rendered_content) # it's probable the name is there
def test_product_edit_view_works_at_all(rf, admin_user): shop = get_default_shop() product = create_product("test-product", shop, default_price=200) shop_product = product.get_shop_instance(shop) shop_product.visibility_limit = ProductVisibility.VISIBLE_TO_GROUPS shop_product.save() request = apply_request_middleware(rf.get("/"), user=admin_user) with replace_modules([ProductModule]): with admin_only_urls(): view_func = ProductEditView.as_view() response = view_func(request, pk=product.pk) assert (product.sku in response.rendered_content) # it's probable the SKU is there response = view_func(request, pk=None) # "new mode" assert response.rendered_content # yeah, something gets rendered
def test_product_edit_view_works_at_all(rf, admin_user): shop = get_default_shop() product = create_product("test-product", shop, default_price=200) shop_product = product.get_shop_instance(shop) shop_product.visibility_limit = ProductVisibility.VISIBLE_TO_GROUPS shop_product.save() request = apply_request_middleware(rf.get("/"), user=admin_user) with replace_modules([ProductModule]): with admin_only_urls(): view_func = ProductEditView.as_view() response = view_func(request, pk=product.pk) assert (product.sku in response.rendered_content ) # it's probable the SKU is there response = view_func(request, pk=None) # "new mode" assert response.rendered_content # yeah, something gets rendered
def test_new_product_admin_form_renders(rf, client, admin_user): """ Make sure that no exceptions are raised when creating a new product with simple supplier enabled """ shop = get_default_shop() request = apply_request_middleware(rf.get("/"), user=admin_user) view = ProductEditView.as_view() supplier = get_simple_supplier() supplier.stock_managed = True supplier.save() # This should not raise an exception view(request).render() supplier.stock_managed = False supplier.save() # Nor should this view(request).render()
def test_new_product_admin_form_renders(rf, client, admin_user): """ Make sure that no exceptions are raised when creating a new product with simple supplier enabled """ shop = get_default_shop() request = apply_request_middleware(rf.get("/"), user=admin_user) view = ProductEditView.as_view() supplier = get_simple_supplier() supplier.stock_managed = True supplier.save() # This should not raise an exception view(request).render() supplier.stock_managed = False supplier.save() # Nor should this view(request).render()
def test_admin_custom_customer_price_updates(rf, admin_user): shop = factories.get_default_shop() supplier = factories.get_default_supplier() contact = factories.create_random_person() group = PersonContact.get_default_group() contact.groups.add(group) product_type = factories.get_default_product_type() tax_class = factories.get_default_tax_class() sales_unit = factories.get_default_sales_unit() view = ProductEditView.as_view() group_price = "10.0" default_price = "15.0" payload = { "base-name__en": "My Product", "base-type": product_type.pk, "base-sku": "p1", "base-shipping_mode": ShippingMode.NOT_SHIPPED.value, "base-tax_class": tax_class.pk, "base-sales_unit": sales_unit.pk, "base-width": "0", "base-height": "0", "base-depth": "0", "base-net_weight": "0", "base-gross_weight": "0", f"shop{shop.pk}-default_price_value": default_price, f"shop{shop.pk}-visibility": ShopProductVisibility.ALWAYS_VISIBLE.value, f"shop{shop.pk}-visibility_limit": ProductVisibility.VISIBLE_TO_ALL.value, f"shop{shop.pk}-minimum_purchase_quantity": "1", f"shop{shop.pk}-purchase_multiple": "1", f"shop{shop.pk}-suppliers": [supplier.pk], f"customer_group_pricing-s_{shop.pk}_g_{group.pk}": group_price, # set price for the group } # create a new product request = apply_request_middleware(rf.post("/", data=payload), shop=shop, user=admin_user) with patch("django.db.transaction.on_commit", new=atomic_commit_mock): response = view(request, pk=None) assert response.status_code == 302 anon_catalog = ProductCatalog(context=ProductCatalogContext( purchasable_only=False)) customer_catalog = ProductCatalog( context=ProductCatalogContext(purchasable_only=False, contact=contact)) product = Product.objects.first() _assert_products_queryset(anon_catalog, [(product.pk, Decimal(default_price), None)]) _assert_products_queryset(customer_catalog, [(product.pk, Decimal(group_price), None)]) payload.update({ # remove the customer group price f"customer_group_pricing-s_{shop.pk}_g_{group.pk}": "", "media-TOTAL_FORMS": 0, "media-INITIAL_FORMS": 0, "media-MIN_NUM_FORMS": 0, "media-MAX_NUM_FORMS": 1000, "images-TOTAL_FORMS": 0, "images-INITIAL_FORMS": 0, "images-MIN_NUM_FORMS": 0, "images-MAX_NUM_FORMS": 1000, }) request = apply_request_middleware(rf.post("/", data=payload), shop=shop, user=admin_user) with patch("django.db.transaction.on_commit", new=atomic_commit_mock): response = view(request, pk=product.get_shop_instance(shop).pk) assert response.status_code == 302 # default price for both _assert_products_queryset(anon_catalog, [(product.pk, Decimal(default_price), None)]) _assert_products_queryset(customer_catalog, [(product.pk, Decimal(default_price), None)])