def test_order_creator_view_invalid_command(rf, admin_user): get_default_shop() request = apply_request_middleware(rf.get( "/", {"command": printable_gibberish()}), user=admin_user) response = OrderCreateView.as_view()(request) assert_contains(response, "unknown command", status_code=400)
def test_order_creator_source_data(rf, admin_user): get_initial_order_status() # Needed for the API contact = create_random_person(locale="en_US", minimum_name_comp_len=5) request = get_frontend_request_for_command(get_frontend_order_state(contact), "source_data", admin_user) response = OrderCreateView.as_view()(request) data = json.loads(response.content.decode("utf8")) assert len(data.get("orderLines")) == 5
def test_order_creator_source_data(rf, admin_user): get_initial_order_status() # Needed for the API contact = create_random_person(locale="en_US", minimum_name_comp_len=5) request = get_frontend_request_for_command( get_frontend_order_state(contact), "source_data", admin_user) response = OrderCreateView.as_view()(request) data = json.loads(response.content.decode("utf8")) assert len(data.get("orderLines")) == 5
def get_order_from_state(state, admin_user): request = get_frontend_request_for_command(state, "create", admin_user) response = OrderCreateView.as_view()(request) assert_contains( response, "orderIdentifier") # this checks for status codes as a side effect data = json.loads(response.content.decode("utf8")) return Order.objects.get(identifier=data["orderIdentifier"])
def test_order_creator_invalid_base_data(rf, admin_user): get_initial_order_status() # Needed for the API state = get_frontend_order_state(contact=None) # Remove some critical data... state["customer"]["id"] = None state["shop"]["selected"]["id"] = None request = get_frontend_request_for_command(state, "create", admin_user) response = OrderCreateView.as_view()(request) assert_contains(response, "errorMessage", status_code=400)
def test_order_creator_customer_data(rf, admin_user): get_default_shop() contact = create_random_person(locale="en_US", minimum_name_comp_len=5) request = apply_request_middleware(rf.get("/", { "command": "customer_data", "id": contact.id }), user=admin_user) response = OrderCreateView.as_view()(request) assert_contains(response, "name") assert_contains(response, contact.name)
def test_order_creator_valid(rf, admin_user): get_initial_order_status() # Needed for the API contact = create_random_person(locale="en_US", minimum_name_comp_len=5) request = get_frontend_request_for_command(get_frontend_order_state(contact), "create", admin_user) response = OrderCreateView.as_view()(request) assert_contains(response, "orderIdentifier") # this checks for status codes as a side effect data = json.loads(response.content.decode("utf8")) order = Order.objects.get(identifier=data["orderIdentifier"]) assert order.lines.count() == 5 # 3 submitted, two for the shipping and payment method assert order.creator == admin_user assert order.customer == contact
def test_order_creator_product_data(rf, admin_user): shop = get_default_shop() product = create_product(sku=printable_gibberish(), supplier=get_default_supplier(), shop=shop) request = apply_request_middleware(rf.get("/", { "command": "product_data", "shop_id": shop.id, "id": product.id, }), user=admin_user) response = OrderCreateView.as_view()(request) assert_contains(response, "taxClass") assert_contains(response, "sku") assert_contains(response, product.sku)
def test_order_creator_invalid_line_data(rf, admin_user): get_initial_order_status() # Needed for the API contact = create_random_person(locale="en_US", minimum_name_comp_len=5) state = get_frontend_order_state(contact=contact, valid_lines=False) request = get_frontend_request_for_command(state, "create", admin_user) response = OrderCreateView.as_view()(request) # Let's see that we get a cornucopia of trouble: assert_contains(response, "does not exist", status_code=400) assert_contains(response, "does not have a product", status_code=400) assert_contains(response, "is not available", status_code=400) assert_contains(response, "The price", status_code=400) assert_contains(response, "The quantity", status_code=400)
def test_order_creator_customer_data(rf, admin_user): get_default_shop() contact = create_random_person(locale="en_US", minimum_name_comp_len=5) request = apply_request_middleware(rf.get( "/", { "command": "customer_data", "id": contact.id }), user=admin_user) response = OrderCreateView.as_view()(request) assert_contains(response, "name") assert_contains(response, contact.name)
def test_order_creator_invalid_line_data(rf, admin_user): get_initial_order_status() # Needed for the API contact = create_random_person(locale="en_US", minimum_name_comp_len=5) state = get_frontend_order_state(contact=contact, valid_lines=False) request = get_frontend_request_for_command(state, "create", admin_user) response = OrderCreateView.as_view()(request) # Let's see that we get a cornucopia of trouble: assert_contains(response, "does not exist", status_code=400) assert_contains(response, "does not have a product", status_code=400) assert_contains(response, "is not available", status_code=400) assert_contains(response, "The price", status_code=400) assert_contains(response, "The quantity", status_code=400) assert_contains(response, "not visible", status_code=400)
def test_order_creator_product_data(rf, admin_user): shop = get_default_shop() product = create_product(sku=printable_gibberish(), supplier=get_default_supplier(), shop=shop) request = apply_request_middleware(rf.get( "/", { "command": "product_data", "shop_id": shop.id, "id": product.id, "quantity": 42 }), user=admin_user) response = OrderCreateView.as_view()(request) assert_contains(response, "taxClass") assert_contains(response, "sku") assert_contains(response, product.sku)
def test_order_creator_view_invalid_command(rf, admin_user): get_default_shop() request = apply_request_middleware(rf.get("/", {"command": printable_gibberish()}), user=admin_user) response = OrderCreateView.as_view()(request) assert_contains(response, "unknown command", status_code=400)
def test_order_creator_view_GET(rf, admin_user): get_default_shop() request = apply_request_middleware(rf.get("/"), user=admin_user) response = OrderCreateView.as_view()(request) assert_contains(response, "shippingMethods") # in the config assert_contains(response, "shops") # in the config
def get_order_from_state(state, admin_user): request = get_frontend_request_for_command(state, "create", admin_user) response = OrderCreateView.as_view()(request) assert_contains(response, "orderIdentifier") # this checks for status codes as a side effect data = json.loads(response.content.decode("utf8")) return Order.objects.get(identifier=data["orderIdentifier"])