示例#1
0
    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()
示例#2
0
    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'])
示例#3
0
    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})