Exemplo n.º 1
0
    def test_find_users_by_shopcart_amount(self):
        """Find users having goods worth more than specified amount in their shopcarts """
        Shopcart(user_id=1, product_id=1, quantity=1, price=12.00).save()
        Shopcart(user_id=1, product_id=2, quantity=1, price=12.00).save()
        Shopcart(user_id=2, product_id=1, quantity=1, price=12.00).save()

        result = Shopcart.find_users_by_shopcart_amount(13)
        self.assertEqual(result, [1])
 def setUp(self):
     """ Runs before each test """
     service.init_db()
     db.drop_all()  # clean up the last tests
     db.create_all()  # create new tables
     Shopcart(user_id=1, product_id=1, quantity=1, price=12.00).save()
     Shopcart(user_id=1, product_id=2, quantity=1, price=15.00).save()
     self.app = service.app.test_client()
Exemplo n.º 3
0
    def test_findByUserId(self):
        """ Find shopcart list by user_id """
        shopcart = Shopcart(user_id=999, product_id=999, quantity=999, price=999.99)
        shopcart.save()

        shopcarts = Shopcart.findByUserId(999)
        self.assertIsNot(shopcarts, None)
        self.assertEqual(shopcarts[0].user_id, shopcart.user_id)
        self.assertEqual(shopcarts[0].product_id, shopcart.product_id)
Exemplo n.º 4
0
 def test_deserialize_a_shopcart_entry(self):
     """ Test deserialization of a Shopcart """
     data = {"user_id": 1, "product_id": 1, "quantity": 1, "price": 12.00}
     shopcart = Shopcart()
     shopcart.deserialize(data)
     self.assertNotEqual(shopcart, None)
     self.assertEqual(shopcart.user_id, 1)
     self.assertEqual(shopcart.product_id, 1)
     self.assertEqual(shopcart.quantity, 1)
     self.assertEqual(shopcart.price, 12.00)
     self.test = 'test'
     self.assertRaises(DataValidationError)
Exemplo n.º 5
0
 def test_serialize_a_shopcart_entry(self):
     """ Test serialization of a Shopcart """
     shopcart = Shopcart(user_id = 1, product_id = 1, quantity = 1, price = 12.00)
     data = shopcart.serialize()
     self.assertNotEqual(data, None)
     self.assertIn('user_id', data)
     self.assertEqual(data['user_id'], 1)
     self.assertIn('product_id', data)
     self.assertEqual(data['product_id'], 1)
     self.assertIn('quantity', data)
     self.assertEqual(data['quantity'], 1)
     self.assertIn('price', data)
     self.assertEqual(data['price'], 12.00)
Exemplo n.º 6
0
 def test_delete_a_shopcart_entry(self):
     """ Delete a shopcart entry """
     shopcart = Shopcart(user_id=999, product_id=999, quantity=999, price=999.99)
     shopcart.save()
     self.assertEqual(Shopcart.findByUserId(999).count(), 1)
     # delete item and make sure it isn't in the database
     shopcart.delete()
     self.assertEqual(Shopcart.findByUserId(999).count(), 0)
Exemplo n.º 7
0
 def test_delete_a_product(self):
     """ Delete a Product """
     shopcart = Shopcart(user_id=1, product_id=1, quantity=1, price=12.00)
     shopcart.save()
     self.assertEqual(len(Shopcart.all()), 1)
     # delete item and make sure it isn't in the database
     shopcart.delete()
     self.assertEqual(len(Shopcart.all()), 0)
Exemplo n.º 8
0
 def test_deserialize_bad_data(self):
     """ Test deserialization of bad data """
     data = "this is not a dictionary"
     shopcart = Shopcart()
     self.assertRaises(DataValidationError, shopcart.deserialize, data)
     invalidKey = {"user_id": 1, "product_id": 1}
     self.assertRaises(DataValidationError, shopcart.deserialize, invalidKey)
Exemplo n.º 9
0
 def test_create_a_shopcart_entry(self):
     """ Create a shopcart entry and assert that it exists """
     shopcart = Shopcart(user_id=999, product_id=999, quantity=999, price=999.99)
     self.assertTrue(shopcart != None)
     self.assertEqual(shopcart.user_id, 999)
     self.assertEqual(shopcart.product_id, 999)
     self.assertEqual(shopcart.quantity, 999)
     self.assertEqual(shopcart.price, 999.99)
    def test_update_shopcart_quantity(self):
        """ Update a Shopcart quantity """
        # Add test product in database
        test_product = dict(user_id=1, product_id=1, quantity=5, price=12.00)
        data = json.dumps(test_product)
        resp = self.app.post('/shopcarts',
                             data=data,
                             content_type='application/json')
        self.assertEqual(resp.status_code, status.HTTP_201_CREATED)

        # make it chekc if the quantity is number
        shopcart = Shopcart.find(1, 1)
        test_error = dict(user_id=1, product_id=1, quantity='a', price=12.00)
        data_error = json.dumps(test_error)
        resp = self.app.put('/shopcarts/{uid}/product/{pid}'.format(
            uid=shopcart.user_id, pid=shopcart.product_id),
                            data=data_error,
                            content_type='application/json')
        self.assertEqual(resp.status_code, status.HTTP_400_BAD_REQUEST)

        # make it chekc if the quantity is more than 0
        shopcart = Shopcart.find(1, 1)
        test_error = dict(user_id=1, product_id=1, quantity=0, price=12.00)
        data_error = json.dumps(test_error)
        resp = self.app.put('/shopcarts/{uid}/product/{pid}'.format(
            uid=shopcart.user_id, pid=shopcart.product_id),
                            data=data_error,
                            content_type='application/json')
        self.assertEqual(resp.status_code, status.HTTP_400_BAD_REQUEST)

        # update the test product quantity
        shopcart = Shopcart.find(1, 1)
        resp = self.app.put('/shopcarts/{uid}/product/{pid}'.format(
            uid=shopcart.user_id, pid=shopcart.product_id),
                            data=data,
                            content_type='application/json')
        self.assertEqual(resp.status_code, status.HTTP_200_OK)

        #Check quantity is updated to 3
        new_json = json.loads(resp.data)
        self.assertEqual(new_json['quantity'], 5)

        resp = self.app.put('/shopcarts/999/product/999',
                            data=data,
                            content_type='application/json')
        self.assertRaises(NotFound)
    def test_list_all_shopcarts(self):
        """ Query all the shopcart in the system """
        shopcart = Shopcart.list_users()
        cnt = len(shopcart)
        print(cnt)
        print("----------------------------------------------------")
        resp = self.app.get('/shopcarts', content_type='application/json')
        self.assertEqual(resp.status_code, status.HTTP_200_OK)
        print(resp.data)
        data = json.loads(resp.data)
        self.assertEqual(cnt, len(data))

        Shopcart(user_id=30, product_id=1, quantity=5, price=12.00).save()
        Shopcart(user_id=31, product_id=2, quantity=5, price=12.00).save()
        shopcart = Shopcart.list_users()
        cnt = len(shopcart)
        resp = self.app.get('/shopcarts', content_type='application/json')
        self.assertEqual(resp.status_code, status.HTTP_200_OK)
        data = json.loads(resp.data)
        self.assertEqual(cnt, len(data))
Exemplo n.º 12
0
 def test_update_a_shopcart_entry(self):
     """ Update a Shopcart entry """
     shopcart = Shopcart(user_id=999, product_id=999, quantity=999, price=999.99)
     shopcart.save()
     self.assertEqual(shopcart.user_id, 999)
     # Change it an save it
     shopcart.quantity =888
     shopcart.save()
     self.assertEqual(shopcart.user_id, 999)
     self.assertEqual(shopcart.product_id, 999)
     # Fetch it back and make sure the id hasn't changed
     # but the data did change
     item = Shopcart.find(999,999)
     self.assertEqual(item.quantity, 888)
 def test_delete_product(self):
     """ Delete product in Shopcart """
     # Add test product in database
     test_product = dict(user_id=1, product_id=1, quantity=1, price=12.00)
     data = json.dumps(test_product)
     resp = self.app.post('/shopcarts',
                          data=data,
                          content_type='application/json')
     self.assertEqual(resp.status_code, status.HTTP_201_CREATED)
     # Delet the test product
     shopcart = Shopcart.find(1, 1)
     resp = self.app.delete('/shopcarts/{uid}/product/{pid}'.format(
         uid=shopcart.user_id, pid=shopcart.product_id))
     self.assertEqual(resp.status_code, status.HTTP_204_NO_CONTENT)
    def test_shop_cart_amount_by_user_id(self):
        """ Query the total amount of products in shopcart by user_id"""
        shopcarts = Shopcart.findByUserId(1)
        total = 0.0
        for shopcart in shopcarts:
            total = total + shopcart.price * shopcart.quantity
        total = round(total, 2)

        resp = self.app.get('/shopcarts/1/total',
                            content_type='application/json')

        self.assertEqual(resp.status_code, status.HTTP_200_OK)
        new_json = json.loads(resp.data)
        self.assertEqual(total, new_json['total_price'])
Exemplo n.º 15
0
 def test_find_shopcart_entry(self):
     """ Find a Shopcart by user_id and product_id """
     Shopcart(user_id=1, product_id=1, quantity=1, price=12.00).save()
     entry = Shopcart(user_id=1, product_id=2, quantity=1, price=15.00)
     entry.save()
     shopcart = Shopcart.find(entry.user_id, entry.product_id)
     self.assertIsNot(shopcart, None)
     self.assertEqual(shopcart.user_id, 1)
     self.assertEqual(shopcart.product_id, 2)
     self.assertEqual(shopcart.quantity, 1)
     self.assertEqual(shopcart.price, 15.00)
    def test_list_shop_cart_entry_by_user_id(self):
        """ Query shopcart by user_id """
        shopcart = Shopcart.findByUserId(1)
        print(shopcart[0].user_id)
        resp = self.app.get('/shopcarts/{}'.format(shopcart[0].user_id),
                            content_type='application/json')
        self.assertEqual(resp.status_code, status.HTTP_200_OK)
        data = json.loads(resp.data)
        self.assertTrue(len(resp.data) > 0)

        resp = self.app.get('/shopcarts/999', content_type='application/json')
        #self.assertRaises(NotFound)
        self.assertEqual(resp.status_code, status.HTTP_404_NOT_FOUND)
        data = json.loads(resp.data)
        print(data)
        print(data['message'])
        self.assertIn('was not found', data['message'])
Exemplo n.º 17
0
 def test_add_a_shopcart_entry(self):
     """ Create a shopcart entry and add it to the database """
     shopcarts = Shopcart.findByUserId(999)
     before_cnt = (shopcarts.count())
     #self.assertEqual(shopcarts, [])
     shopcart = Shopcart(user_id=999, product_id=999, quantity=888, price=999.99)
     self.assertTrue(shopcarts != None)
     self.assertEqual(shopcart.user_id, 999)
     shopcart.save()
     # Asert that it was assigned an id and shows up in the database
     shopcarts2 = Shopcart.findByUserId(999)
     self.assertEqual(shopcarts2.count(), before_cnt+1)
    def test_get_shopcart_product_info(self):
        """ Query quantity and price of a product shopcart by user_id and product_id """
        # Add test product in database
        test_product = dict(user_id=10, product_id=1, quantity=1, price=12.00)
        data = json.dumps(test_product)
        resp = self.app.post('/shopcarts',
                             data=data,
                             content_type='application/json')
        self.assertEqual(resp.status_code, status.HTTP_201_CREATED)
        # Fetch info of product
        shopcart = Shopcart.find(10, 1)
        resp = self.app.get('/shopcarts/{}/product/{}'.format(
            shopcart.user_id, shopcart.product_id),
                            content_type='application/json')
        self.assertEqual(resp.status_code, status.HTTP_200_OK)
        ans = json.loads(resp.data)
        self.assertEqual(ans['quantity'], shopcart.quantity)
        self.assertEqual(ans['price'], shopcart.price)

        resp = self.app.get('/shopcarts/999/product/999',
                            content_type='application/json')
        self.assertRaises(NotFound)
 def test_get_users_by_total_cost_of_shopcart(self):
     Shopcart(user_id=3, product_id=1, quantity=5, price=12.00).save()
     resp = self.app.get('/shopcarts/users?amount=60',
                         content_type='application/json')
     self.assertEqual(resp.status_code, status.HTTP_200_OK)
     self.assertEqual(len(json.loads(resp.data)), 1)
Exemplo n.º 20
0
 def test_delete_user_product(self):
     """ Delete User Products """
     shopcart = Shopcart(user_id=1, product_id=1, quantity=1, price=12.00)
     shopcart.save()
     shopcart = Shopcart(user_id=1, product_id=2, quantity=1, price=12.00)
     shopcart.save()
     shopcart = Shopcart(user_id=1, product_id=3, quantity=1, price=12.00)
     shopcart.save()
     # delete item and make sure it isn't in the database
     shopcart.delete()
     shopcarts = Shopcart.findByUserId(1)
     self.assertIsNot(shopcarts, None)
Exemplo n.º 21
0
 def setUp(self):
     Shopcart.init_db()
     db.drop_all()    # clean up the last tests
     db.create_all()  # make our sqlalchemy tables
Exemplo n.º 22
0
    def test_remove_all(self):
        """ Remove all the shopcart data in the system """
        shopcart = Shopcart(user_id=1, product_id=1, quantity=1, price=12.00)
        shopcart.save()
        shopcart = Shopcart(user_id=1, product_id=2, quantity=1, price=12.00)
        shopcart.save()

        # delete data
        shopcart.remove_all()
        shopcarts = Shopcart.all()
        self.assertEqual(len(shopcarts), 0)