def test_crud(self): with self.app_context(): StoreModel('test').save_to_db() item = ItemModel('test', 19.99, 1) # verifica se o item não existe no banco de dados # o terceiro argumento é uma mensagem de erro personalizada, que pode ajudar muito no decorrer das execuções de testes self.assertIsNone( ItemModel.find_by_name('test'), f'Found an item with name {item.name!r} on database, but expected not to.' ) item.save_to_db() # verifica se o item existe no banco de dados self.assertIsNotNone( ItemModel.find_by_name('test'), f'Not found an item with name {item.name!r} on database, but expected to.' ) item.delete_from_db() # verifica se o item não existe no banco de dados self.assertIsNone( ItemModel.find_by_name('test'), f'Found an item with name {item.name!r} on database, but expected not to.' )
def delete(self, name): item = ItemModel.find_by_name(name) if item: item.delete_from_db() return {'message': 'item has been deleted'}
def test_find_by_name(self): app = create_app() app.testing = True expected = self.item with app.app_context(): self.item.save_to_db() resp = ItemModel.find_by_name('Caneta') self.assertEqual(resp.name, expected.name) self.assertEqual(resp.price, expected.price)
def put(self, name): data = Item.parser.parse_args() item = ItemModel.find_by_name(name) if item is None: item = ItemModel(name, **data) else: item.price = data['price'] item.save_to_db() return item.json()
def post(self, name): self.logger.info(f'parsed args: {Item.parser.parse_args()}') if ItemModel.find_by_name(name): return {'message': "An item with name '{}' already exists.".format( name)}, 400 data = Item.parser.parse_args() item = ItemModel(name, data['price'], data['store_id']) try: item.save_to_db() except: return {"message": "An error occurred inserting the item."}, 500 return item.json(), 201
def post(self, name): if ItemModel.find_by_name(name): return { 'message': "An item with name '{}' already exists.".format(name) }, 400 data = Item.parser.parse_args() item = ItemModel(name, **data) try: item.save_to_db() except: return {"message": "An error occurred inserting the item."}, 500 return item.json(), 201
def get(self, name): item = ItemModel.find_by_name(name) if item: return item.json() return {'message': 'Item not found'}, 404
def get(self, name): item = ItemModel.find_by_name(name) self.logger.info(f'returning item: {item.json()}') if item: return item.json() return {'message': 'Item not found'}, 404