def test_update_order(lambda_module): """ test update_order() """ order_id = "ORDER_ID" status = "STATUS" table = stub.Stubber(lambda_module.table.meta.client) expected_params = { "TableName": "TABLE_NAME", "Key": { "orderId": order_id }, "UpdateExpression": stub.ANY, "ExpressionAttributeNames": { "#s": "status" }, "ExpressionAttributeValues": { ":s": status } } table.add_response("update_item", {}, expected_params) table.activate() lambda_module.update_order(order_id, status) table.assert_no_pending_responses() table.deactivate()
def test_update_order_products(lambda_module, order): """ test update_order() with products """ order_id = "ORDER_ID" status = "STATUS" table = stub.Stubber(lambda_module.table.meta.client) # get_item stub expected_params = { "TableName": "TABLE_NAME", "Key": { "orderId": order_id }, "AttributesToGet": ["products"] } response = { "Item": {k: TypeSerializer().serialize(v) for k, v in order.items()} } print(response) table.add_response("get_item", response, expected_params) # update_item stub expected_params = { "TableName": "TABLE_NAME", "Key": { "orderId": order_id }, "UpdateExpression": stub.ANY, "ExpressionAttributeNames": { "#s": "status", "#p": "products" }, "ExpressionAttributeValues": { ":p": order["products"], ":s": status } } table.add_response("update_item", {}, expected_params) table.activate() lambda_module.update_order(order_id, status, order["products"]) table.assert_no_pending_responses() table.deactivate()