def test_delete_order(self): # create customer, item and order and insert into<br> # database pending deletion request customer = Customer(name=self.new_customer['name'], email=self.new_customer['email']) customer.insert() item = Item(name=self.new_item['name'], brand=self.new_item['brand'], price=self.new_item['price']) item.insert() order = Orders(customer_id=customer.id, item_id=item.id, quantity=10) order.insert() # assign order id to variable prior to deletion for testing purposes order_id = order.id # delete order that was currently created res = self.client().delete('/delete_order/{}'.format(order.id), headers=manager_jwt) data = json.loads(res.data) self.assertEqual(res.status_code, 200) self.assertTrue(data['success']) # verify that deleted order id matched id included in request self.assertEqual(data['deleted_order_id'], order_id) self.assertEqual(data['current_orders'], (data['previous_orders'] - 1)) # delete customer and item customer.delete() item.delete()
def test_404_delete_nonexistent_order(self): ''' create and insert customer and item to be included in mock order. insert mock order, assign mock order's id to variable<br> and then delete mock order prior to the test to ensure<br> that order pending delete does not exist ''' customer = Customer(name='test_name', email='test_email') item = Item(name='test_name', brand='test_brand', price=1) customer.insert() item.insert() mock_order = Orders(customer_id=customer.id, item_id=item.id, quantity=1) mock_order.insert() nonexistent_order_id = mock_order.id mock_order.delete() # after mock order is deleted delete customer and item too customer.delete() item.delete() # attempt to delete nonexistent order res = self.client().delete( '/delete_order/{}'.format(nonexistent_order_id), headers=manager_jwt) data = json.loads(res.data) self.assertEqual(res.status_code, 404) self.assertFalse(data['success'])
def submit_order(): # get request JSON data data = request.get_json() # verify that data contains the correct info if (data.get('customer_id') is None or data.get('item_id') is None or data.get('quantity') is None): abort(404) # select item to be added to order item = Item.query.filter_by(id=data['item_id']).one_or_none() if item is None: abort(404) # verify that item is available if item.available is False: abort(422, 'item not available') # get todays date today = date.today() # calculate total price of order based upon item price<br> # and quantity of order total_price = item.price * data['quantity'] # create orders object order = Orders(order_date=today, customer_id=data['customer_id'], item_id=data['item_id'], quantity=data['quantity'], amount_due=total_price) # attempt to insert order into database with .insert() (see models.py) try: order.insert() except Exception as exc: db.session.rollback() print('Exception:', exc) abort(422) return ({'success': True, 'status_code': 200, 'order_id': order.id})