def test_admin_catalog_campaign_edit_view(rf, admin_user): shop = get_default_shop() view = CatalogCampaignEditView(request=apply_request_middleware(rf.get("/"), user=admin_user)) form_class = view.get_form_class() form_kwargs = view.get_form_kwargs() form = form_class(**form_kwargs) assert not form.is_bound data = get_form_data(form) data.update({ "shop": shop.pk, "name": "test", }) form = form_class(**dict(form_kwargs, data=data)) form.full_clean() assert "You must define discount percentage or amount" in form.errors["__all__"][0] data.update({"discount_amount_value": "20"}) form = form_class(**dict(form_kwargs, data=data)) form.full_clean() # atleast 1 rule is required assert "You must set at least one rule for this campaign" in form.errors["__all__"][0] supplier = get_default_supplier() product = create_product(printable_gibberish(), shop=shop, supplier=supplier, default_price="20") data.update({"product_filter": [1]}) form = form_class(**dict(form_kwargs, data=data)) form.full_clean() assert not form.errors campaign = form.save() assert campaign.filters.count() == 1
def test_admin_catalog_campaign_edit_view(rf, admin_user): shop = get_default_shop() view = CatalogCampaignEditView( request=apply_request_middleware(rf.get("/"), user=admin_user)) form_class = view.get_form_class() form_kwargs = view.get_form_kwargs() form = form_class(**form_kwargs) assert not form.is_bound data = get_form_data(form) data.update({ "shop": shop.pk, "name": "test", }) form = form_class(**dict(form_kwargs, data=data)) form.full_clean() assert "At least one effect must be defined." in form.errors["__all__"][0] data.update({"discount_amount_effect": "20"}) form = form_class(**dict(form_kwargs, data=data)) form.full_clean() # at least 1 rule is required assert "You must set at least one rule for this campaign" in form.errors[ "__all__"][0] supplier = get_default_supplier() product = create_product(printable_gibberish(), shop=shop, supplier=supplier, default_price="20") data.update({"product_filter": [product.id]}) form = form_class(**dict(form_kwargs, data=data)) form.full_clean() assert not form.errors data.update({ "start_datetime": datetime.datetime.now() + datetime.timedelta(days=1), "end_datetime": datetime.datetime.now() }) form = form_class(**dict(form_kwargs, data=data)) form.full_clean() assert "Campaign end date can't be before start date" in form.errors[ "__all__"][0] data.update({"start_datetime": None}) form = form_class(**dict(form_kwargs, data=data)) form.full_clean() assert not form.errors campaign = form.save() assert campaign.filters.count() == 1