def post(self): """ Creates an Order This endpoint will create an Order based the data in the body that is posted """ app.logger.info('Request to create an order') check_content_type('application/json') order = Order() order.deserialize(request.get_json()) order.save() message = order.serialize() location_url = api.url_for(OrderCollection, order_id=order.id, _external=True) return order.serialize(), status.HTTP_201_CREATED, {'Location': location_url }
def test_delete_a_order(self): """ Delete an Order """ uuid_str = str(uuid.uuid4()) order = Order(uuid=uuid_str, product_id=1, customer_id=1, price=10, quantity=1) order.save() self.assertEqual(len(Order.all()), 1) # delete the order and make sure it isn't in the database order.delete() self.assertEqual(len(Order.all()), 0)
def order_post(): """ Creates an order This endpoint will create an order based the data in the body that is posted """ app.logger.info('Request to create an order') check_content_type('application/json') order = Order() order.deserialize(request.get_json()) order.save() message = order.serialize() location_url = url_for('get_orders', order_id=order.id, _external=True) return make_response(jsonify(message), status.HTTP_201_CREATED, {'Location': location_url})
def test_add_a_order(self): """ Create a order and add it to the database """ orders = Order.all() self.assertEqual(orders, []) uuid_str = str(uuid.uuid4()) order = Order(uuid=uuid_str, product_id=1, customer_id=1, price=10, quantity=1) self.assertTrue(order != None) self.assertEqual(order.id, None) order.save() # Asert that it was assigned an id and shows up in the database self.assertEqual(order.id, 1) orders = Order.all() self.assertEqual(len(orders), 1)
def test_update_a_order(self): """ Update an Order """ uuid_str = str(uuid.uuid4()) order = Order(uuid=uuid_str, product_id=1, customer_id=1, price=10, quantity=1) order.save() self.assertEqual(order.id, 1) # Change it an save it order.product_id = 2 order.save() self.assertEqual(order.id, 1) # Fetch it back and make sure the id hasn't changed # but the data did change orders = Order.all() self.assertEqual(len(orders), 1) self.assertEqual(orders[0].product_id, 2)
def test_find_or_404_found(self): """ Find or return 404 found """ uuid_str = str(uuid.uuid4()) Order(uuid=uuid_str, product_id=1, customer_id=1, price=10, quantity=1).save() next_order = Order(uuid="2edf8761-0c1f-4039-9f5c-907a5a03f39c", product_id=1, customer_id=1, price=10, quantity=1) next_order.save() order = Order.find_or_404(next_order.id) self.assertIsNot(order, None) self.assertEqual(order.id, next_order.id) self.assertEqual(order.uuid, "2edf8761-0c1f-4039-9f5c-907a5a03f39c") self.assertEqual(order.product_id, 1), self.assertEqual(order.customer_id, 1), self.assertEqual(order.price, 10), self.assertEqual(order.quantity, 1)
def test_find_order_by_product(self): """ Find an Order by Product ID """ uuid_str = str(uuid.uuid4()) Order(uuid=uuid_str, product_id=1, customer_id=1, price=10, quantity=1).save() next_order = Order(uuid="2edf8761-0c1f-4039-9f5c-907a5a03f39c", product_id=2, customer_id=1, price=10, quantity=1) next_order.save() order = Order.find_by_product(2)[0] self.assertIsNot(order, None) self.assertEqual(order.id, next_order.id) self.assertEqual(order.uuid, "2edf8761-0c1f-4039-9f5c-907a5a03f39c") self.assertEqual(order.product_id, 2), self.assertEqual(order.customer_id, 1), self.assertEqual(order.price, 10), self.assertEqual(order.quantity, 1)