def test_admin_edit(rf, admin_user): shop = get_default_shop() group = get_default_customer_group(shop) cgpd = ContactGroupPriceDisplay.objects.for_group_and_shop(group, shop) view = ContactGroupPriceDisplayEditView.as_view() options = get_price_display_options_for_group_and_shop(group, shop) assert options.show_prices request = apply_request_middleware(rf.get("/"), user=admin_user) response = view(request, pk=cgpd.pk) response.render() content = force_text(response.content) data = extract_form_fields(BeautifulSoup(content)) data.update({ "price_display_mode": [PriceDisplayChoices.HIDE.value], "group": group.id, }) request = apply_request_middleware(rf.post("/", data), user=admin_user, shop=shop) response = view(request, pk=cgpd.pk) assert response.status_code == 302 # save successful group = get_default_customer_group(shop) options = get_price_display_options_for_group_and_shop(group, shop) assert options.show_prices is False assert options.include_taxes is None # none, with_taxes, without_taxes, hide k = "price_display_mode" data.update({k: [PriceDisplayChoices.NONE.value]}) request = apply_request_middleware(rf.post("/", data), user=admin_user, shop=shop) response = view(request, pk=cgpd.pk) assert response.status_code == 302 # save successful options = get_price_display_options_for_group_and_shop(group, shop) assert options.show_prices is True # default assert options.include_taxes is None data.update({k: [PriceDisplayChoices.WITH_TAXES.value]}) request = apply_request_middleware(rf.post("/", data), user=admin_user, shop=shop) response = view(request, pk=cgpd.pk) assert response.status_code == 302 # save successful options = get_price_display_options_for_group_and_shop(group, shop) assert options.show_prices is True # default assert options.include_taxes is True data.update({k: [PriceDisplayChoices.WITHOUT_TAXES.value]}) request = apply_request_middleware(rf.post("/", data), user=admin_user, shop=shop) response = view(request, pk=cgpd.pk) assert response.status_code == 302 # save successful options = get_price_display_options_for_group_and_shop(group, shop) assert options.show_prices is True assert options.include_taxes is False
def test_contact_group_price_display_for_contact(regular_user): shop = get_default_shop() group = ContactGroup.objects.create(shop=shop).set_price_display_options( hide_prices=True) person = get_person_contact(regular_user) person.groups.add(group) assert not person.in_shop(shop) # price options for non shop options = person.get_price_display_options(group=group) assert options assert options.show_prices is True # True by default assert options.include_taxes is None # again, a default # price options for the shop options = person.get_price_display_options(group=group, shop=shop) assert options assert options.show_prices is False assert options.include_taxes is None default_group = person.get_default_group() assert default_group.pk != group.pk assert default_group.price_display_options.exists() options = person.get_price_display_options(group=default_group) assert options assert options.show_prices is True # True by default assert options.include_taxes is None options = person.get_price_display_options(group=default_group, shop=shop) assert options assert options.show_prices is True # True by default assert options.include_taxes is None options = get_price_display_options_for_group_and_shop(group, None) assert options assert options.show_prices is True assert options.include_taxes is None options = get_price_display_options_for_group_and_shop(group, shop) assert options assert options.show_prices is False assert options.include_taxes is None # this will create options as well options = default_group.price_display_options.for_group_and_shop( default_group, shop) assert options options.show_prices_including_taxes = True options.save() # Now since default group has pricing options set these should be returned default_options = person.get_price_display_options() assert not default_options.include_taxes assert not default_options.hide_prices # change default group default_group.set_price_display_options(hide_prices=True) options = person.get_price_display_options(group=default_group) assert options assert options.show_prices is False # True by default assert options.include_taxes is None
def test_contact_group_price_display_for_contact(regular_user): shop = get_default_shop() group = ContactGroup.objects.create(shop=shop).set_price_display_options(hide_prices=True) person = get_person_contact(regular_user) person.groups.add(group) assert not person.in_shop(shop) # price options for non shop options = person.get_price_display_options(group=group) assert options assert options.show_prices is True # True by default assert options.include_taxes is None # again, a default # price options for the shop options = person.get_price_display_options(group=group, shop=shop) assert options assert options.show_prices is False assert options.include_taxes is None default_group = person.get_default_group() assert default_group.pk != group.pk assert default_group.price_display_options.exists() options = person.get_price_display_options(group=default_group) assert options assert options.show_prices is True # True by default assert options.include_taxes is None options = person.get_price_display_options(group=default_group, shop=shop) assert options assert options.show_prices is True # True by default assert options.include_taxes is None options = get_price_display_options_for_group_and_shop(group, None) assert options assert options.show_prices is True assert options.include_taxes is None options = get_price_display_options_for_group_and_shop(group, shop) assert options assert options.show_prices is False assert options.include_taxes is None # this will create options as well options = default_group.price_display_options.for_group_and_shop(default_group, shop) assert options options.show_prices_including_taxes = True options.save() # Now since default group has pricing options set these should be returned default_options = person.get_price_display_options() assert not default_options.include_taxes assert not default_options.hide_prices # change default group default_group.set_price_display_options(hide_prices=True) options = person.get_price_display_options(group=default_group) assert options assert options.show_prices is False # True by default assert options.include_taxes is None
def test_admin_edit(rf, admin_user): shop = get_default_shop() group = get_default_customer_group(shop) cgpd = ContactGroupPriceDisplay.objects.for_group_and_shop(group, shop) view = ContactGroupPriceDisplayEditView.as_view() options = get_price_display_options_for_group_and_shop(group, shop) assert options.show_prices request = apply_request_middleware(rf.get("/"), user=admin_user) response = view(request, pk=cgpd.pk) response.render() content = force_text(response.content) data = extract_form_fields(BeautifulSoup(content)) data.update({ "price_display_mode": [PriceDisplayChoices.HIDE.value], "group": group.id, }) request = apply_request_middleware(rf.post("/", data), user=admin_user, shop=shop) response = view(request, pk=cgpd.pk) assert response.status_code == 302 # save successful group = get_default_customer_group(shop) options = get_price_display_options_for_group_and_shop(group, shop) assert options.show_prices is False assert options.include_taxes is None # none, with_taxes, without_taxes, hide k = "price_display_mode" data.update({k: [PriceDisplayChoices.NONE.value]}) request = apply_request_middleware(rf.post("/", data), user=admin_user, shop=shop) response = view(request, pk=cgpd.pk) assert response.status_code == 302 # save successful options = get_price_display_options_for_group_and_shop(group, shop) assert options.show_prices is True # default assert options.include_taxes is None data.update({k: [PriceDisplayChoices.WITH_TAXES.value]}) request = apply_request_middleware(rf.post("/", data), user=admin_user, shop=shop) response = view(request, pk=cgpd.pk) assert response.status_code == 302 # save successful options = get_price_display_options_for_group_and_shop(group, shop) assert options.show_prices is True # default assert options.include_taxes is True data.update({k: [PriceDisplayChoices.WITHOUT_TAXES.value]}) request = apply_request_middleware(rf.post("/", data), user=admin_user, shop=shop) response = view(request, pk=cgpd.pk) assert response.status_code == 302 # save successful options = get_price_display_options_for_group_and_shop(group, shop) assert options.show_prices is True assert options.include_taxes is False