class ProductServiceTest(unittest.TestCase): def setUp(self): self.product_service = ProductService() migration = MigrationExecutor() migration.start() def test_add_product(self): product = Product("test", "product test", "12311231256", 10) self.product_service.add(product) conn = sqlite3.connect("inventory") cursor = conn.execute("SELECT * FROM product WHERE name = ?", [product.name]) db_object = cursor.fetchone() conn.close() self.assertEqual(db_object[1], product.name) self.assertEqual(db_object[2], product.description) self.assertEqual(db_object[3], product.bar_code) self.assertEqual(db_object[4], product.qtd) def test_list_products(self): product = Product("test", "product test", "12311231256", 10) self.product_service.add(product) result = self.product_service.list() self.assertEqual(1, len(result)) def tearDown(self): my_path = os.path.abspath(os.path.dirname(__file__)) os.remove(os.path.join(my_path, "inventory"))
def delete(self, _id): data = ProductService.delete_product(_id) if data.get('not_found'): return data, 404 return data, 200
def post(self): parser = reqparse.RequestParser() parser.add_argument('name', type=str, required=True, help="name field cannot be left blank!") parser.add_argument('npc', type=str, required=True, help="npc field cannot be left blank!") parser.add_argument('stock', type=inputs.positive, required=True, help="stock field cannot be left blank!") parser.add_argument('price', type=float, required=True, help="price field cannot be left blank!") data = parser.parse_args() data = ProductService.create_product(**data) if data.get('exists'): return data, 400 elif data.get('error'): return data, 500 return data, 201
def get(self): kwargs = ProductList.parser.parse_args() order_by = kwargs.get('orderBy') search_by = kwargs.get('searchByName') page = kwargs.get('page') per_page = kwargs.get('per_page') data = ProductService.get_product_list(search_by, order_by, page, per_page) return data, 200
def patch(self, _id): data = ProductService.give_like_product(_id) if data.get('not_found'): return data, 404 elif data.get('error'): return data, 500 return data, 200
def patch(self, _id): kwargs = ProductBuy.parser.parse_args() data = ProductService.buy_product(_id, kwargs.get('quantity')) if data.get('not_found'): return data, 404 elif data.get('stock_not_enough'): return data, 200 elif data.get('error'): return data, 500 return data, 200
def patch(self, _id): parser = reqparse.RequestParser() parser.add_argument('name', type=str) parser.add_argument('npc', type=str) parser.add_argument('stock', type=inputs.positive) parser.add_argument('price', type=float) data = parser.parse_args() data = ProductService.update_product(_id, **data) if data.get('not_found'): return data, 404 elif data.get('error'): return data, 500 return data, 200
def setUp(self): self.product_service = ProductService() migration = MigrationExecutor() migration.start()