Esempio n. 1
0
    def test_modify_allocation_invalid(self):
        userId = f.signUp("Amy", "12345")
        groupId = f.createEmptyGroup("Group", userId)
        orderId = f.createOrder(groupId, "Order", 5)
        oriAmount = 124.3
        itemId = f.createItem("item", 124.3, orderId)
        prevAlloAmount = 110
        curAlloAmount = 150
        a_id = f.createAllocation(userId, itemId, prevAlloAmount)
        check = f.modifyAllocatedAmount(a_id, curAlloAmount)

        self.assertFalse(check)
        result = q.selectAllByConditions(
            "Allocations",
            "allo_id = '%s'",
            str(a_id),
        )[0]

        self.assertEqual(result['allo_amount'], prevAlloAmount)
        self.assertEqual(
            q.selectInfoByConditions(
                "Items",
                "left_amount",
                "item_id = '%s'",
                result['item_id'],
            )[0]['left_amount'],
            round(oriAmount - prevAlloAmount, 4),
        )
Esempio n. 2
0
    def test_create_allocation_invalid(self):
        # No exsiting allocation
        self.assertEqual(
            q.getNumOfRecordByConditions("Allocations", ),
            0,
        )  #

        userId = f.signUp("Amy", "12345")
        groupId = f.createEmptyGroup("Group", userId)
        orderId = f.createOrder(groupId, "Order", 5)
        oriAmount = 124.3
        itemId = f.createItem("item", oriAmount, orderId)

        alloAmount = 150

        a_id = f.createAllocation(userId, itemId, alloAmount)

        result_list = q.selectInfoByConditions(
            "Items",
            "left_amount",
            "item_id = '%s'",
            itemId,
        )

        self.assertEqual(a_id, -1)
        self.assertEqual(len(result_list), 1)
        self.assertEqual(result_list[0]['left_amount'], oriAmount)  # remains

        numOfRecords = q.getNumOfRecordByConditions(
            "Allocations",
            "item_id = '%s' AND user_id = '%s'",
            (itemId, userId),
        )
        self.assertEqual(numOfRecords, 0)
Esempio n. 3
0
    def test_delete_allocation(self):
        userId = f.signUp("Amy", "12345")
        groupId = f.createEmptyGroup("Group", userId)
        orderId = f.createOrder(groupId, "Order", 5)
        oriAmount = 124.3
        itemId = f.createItem("item", 124.3, orderId)
        alloAmount = 110
        a_id = f.createAllocation(userId, itemId, alloAmount)
        check = f.deleteAllocation(a_id)

        self.assertTrue(check)
        self.assertEqual(
            q.getNumOfRecordByConditions(
                "Allocations",
                "allo_id = '%s'",
                a_id,
            ),
            0,
        )

        self.assertEqual(
            q.selectInfoByConditions(
                "Items",
                "left_amount",
                "item_id = '%s'",
                itemId,
            )[0]['left_amount'],
            oriAmount,
        )
Esempio n. 4
0
    def test_modify_item_amount(self):
        groupId = f.createEmptyGroup("Group", f.signUp("Owner", "12345"))
        orderId = f.createOrder(groupId, "Order", 5)

        itemPrevAmount = 124.3
        itemCurAmount_valid = 150
        itemCurAmount_small = -34
        itemCurAmount_Large = 1001

        itemId = f.createItem("itemOld", 124.3, orderId)
        check = f.modifyItemAmount(itemId, itemCurAmount_valid)

        result_list = q.selectInfoByConditions(
            "Items",
            "left_amount",
            "item_id = '%s'",
            itemId,
        )

        self.assertTrue(check)
        self.assertEqual(len(result_list), 1)
        self.assertEqual(result_list[0]['left_amount'], itemCurAmount_valid)

        f.modifyItemAmount(itemId, itemPrevAmount)  # reset

        # Too small
        check = f.modifyItemAmount(itemId, itemCurAmount_small)
        result_list = q.selectInfoByConditions(
            "Items",
            "left_amount",
            "item_id = '%s'",
            itemId,
        )
        self.assertFalse(check)
        self.assertEqual(len(result_list), 1)
        self.assertEqual(
            result_list[0]['left_amount'],
            itemPrevAmount,
        )  # remains

        # Too large
        check = f.modifyItemAmount(itemId, itemCurAmount_Large)
        result_list = q.selectInfoByConditions(
            "Items",
            "left_amount",
            "item_id = '%s'",
            itemId,
        )
        self.assertFalse(check)
        self.assertEqual(len(result_list), 1)
        self.assertEqual(
            result_list[0]['left_amount'],
            itemPrevAmount,
        )  # remains
Esempio n. 5
0
    def test_delete_item(self):
        groupId = f.createEmptyGroup("Group", f.signUp("Owner", "12345"))
        orderId = f.createOrder(groupId, "Order", 5)

        itemId = f.createItem("item1", 124.3, orderId)
        f.deleteItem(itemId)

        numOfRecords = q.getNumOfRecordByConditions(
            "Items",
            "item_id = '%s'",
            itemId,
        )
        self.assertEqual(numOfRecords, 0)
Esempio n. 6
0
    def test_create_receipt(self):
        # No exsiting receipt
        self.assertEqual(q.getNumOfRecordByConditions("OrderReceipts"), 0)

        groupId = f.createEmptyGroup("Group", f.signUp("Owner", "12345"))
        orderId = f.createOrder(groupId, "Order", 5)
        receiptIdx = 1
        f.createReceipt(orderId, "abc.jpg", receiptIdx)

        numOfRecords = q.getNumOfRecordByConditions(
            "OrderReceipts",
            " order_id = '%s' AND receipt_idx = '%s'",
            (orderId, receiptIdx),
        )
        self.assertEqual(numOfRecords, 1)
Esempio n. 7
0
    def test_delete_order(self):
        ownerId = f.signUp("Owner", "12345")
        groupId = f.createEmptyGroup("Group", ownerId)
        orderName = "Order0"
        numOfItems = 5
        orderId = f.createOrder(groupId, orderName, numOfItems)

        f.deleteOrder(orderId)

        numOfRecord = q.getNumOfRecordByConditions(
            "Orders",
            "order_id = '%s'",
            str(orderId),
        )
        self.assertEqual(numOfRecord, 0)
Esempio n. 8
0
    def test_create_item(self):
        # No exsiting receipt
        self.assertEqual(q.getNumOfRecordByConditions("Items"), 0)

        groupId = f.createEmptyGroup("Group", f.signUp("Owner", "12345"))
        orderId = f.createOrder(groupId, "Order", 5)

        itemName = "item1"
        leftAmount = 124.3

        itemId = f.createItem(itemName, leftAmount, orderId)

        numOfRecords = q.getNumOfRecordByConditions(
            "Items",
            " order_id = '%s' AND item_name = '%s' AND left_amount = '%s'",
            (orderId, itemName, leftAmount),
        )
        self.assertEqual(numOfRecords, 1)
        self.assertEqual(itemId, 1)
Esempio n. 9
0
    def test_create_order(self):
        ownerId = f.signUp("Owner", "12345")
        groupId = f.createEmptyGroup("Group", ownerId)

        orderName = "Order0"
        numOfItems = 5
        self.assertEqual(
            q.getNumOfRecordByConditions("Orders", ),
            0,
        )  # No exsiting group
        orderId = f.createOrder(groupId, orderName, numOfItems)

        result_list = q.selectAllByConditions("Orders")

        self.assertEqual(len(result_list), 1)
        self.assertEqual(result_list[0]['order_id'], 1)
        self.assertEqual(result_list[0]['group_id'], groupId)
        self.assertEqual(result_list[0]['order_name'], orderName)
        self.assertEqual(result_list[0]['item_unres_num'], numOfItems)
Esempio n. 10
0
    def test_modify_item_name(self):
        groupId = f.createEmptyGroup("Group", f.signUp("Owner", "12345"))
        orderId = f.createOrder(groupId, "Order", 5)

        itemOldName = "itemOld"
        itemNewName = "itemNew"

        itemId = f.createItem(itemOldName, 124.3, orderId)
        check = f.modifyItemName(itemId, itemNewName)

        result_list = q.selectInfoByConditions(
            "Items",
            "item_name",
            "item_id = '%s'",
            itemId,
        )

        self.assertTrue(check)
        self.assertEqual(len(result_list), 1)
        self.assertEqual(result_list[0]['item_name'], itemNewName)
Esempio n. 11
0
def cruapi_models(table):
    '''
    :param table: model name on which the operation needs to be performed
    :return: status code in case of post and put .. status code and data from tables in case of get call
    Description: call the respective function as per table name and pass the json data to it
    '''
    if table is None or table not in ['sku', 'storage', 'order', 'orderline']:
        data = {
            'payload': {
                'message': 'Undefined id or Table name'
            },
            'status_code':
            300  # Indicates that the client must take some additional action in order to complete their request
        }
        return jsonify(data['payload']), data['status_code']
    else:
        if request.method == 'POST':
            datadict = {
                'skuid': request.json.get('skuid', None),
                'product_name': request.json.get('product_name', None),
                'storageid': request.json.get('storageid', None),
                'stock': request.json.get('stock', None),
                'customer_name': request.json.get('customer_name', None),
                'orderid': request.json.get('orderid', None),
                'orderlineid': request.json.get('orderlineid', None),
                'quantity': request.json.get('quantity', None)
            }
            if table == 'sku':
                data = functions.createSku(datadict)
            elif table == 'storage':
                data = functions.createStorage(datadict)
            elif table == 'order':
                data = functions.createOrder(datadict)
            elif table == 'orderline':
                data = functions.createOrderLine(datadict)
            else:
                data = {
                    'payload': {
                        'message': 'Invalid table name'
                    },
                    'status_code': 500
                }
            return jsonify(data['payload']), data['status_code']

        if request.method == 'GET':
            data = functions.fetchdata(table)
            return jsonify(data['payload']), data['status_code']

        if request.method == 'PUT':
            datadict = {
                'skuid': request.json.get('skuid', None),
                'product_name': request.json.get('product_name', None),
                'storageid': request.json.get('storageid', None),
                'stock': request.json.get('stock', None),
                'customer_name': request.json.get('customer_name', None),
                'orderid': request.json.get('orderid', None),
                'orderlineid': request.json.get('orderlineid', None),
                'quantity': request.json.get('quantity', None)
            }
            if table == 'sku':
                data = functions.updateSku(datadict)
            elif table == 'storage':
                data = functions.updateStorage(datadict)
            elif table == 'order':
                data = functions.updateOrder(datadict)
            elif table == 'orderline':
                data = functions.updateOrderLine(datadict)
            else:
                data = {
                    'payload': {
                        'message': 'Invalid table name'
                    },
                    'status_code': 500
                }
            return jsonify(data['payload']), data['status_code']