def get(self): """Get heroes""" try: # Fazendo a consulta no banco de dados heroes = Hero.get_heroes(request.args.get('cursor')) # Montando a resposta, por enquanto iremos deixar o cursor vazio response = { 'cursor': None, 'heroes': [] } # Vamos percorer os herois e transformar em json for hero in heroes: response['heroes'].append(hero.to_dict()) # Adicionando o cursor no resultado da consulta if len(response['heroes']) == 16: response['cursor'] = response['heroes'][-1]['id'] return response except Exception as error: return { 'message': 'Error on get heroes', 'details': str(error) }, 500
def test_get_heroes(self): """Test get heroes""" # Aqui vamos fazer um loop e criar 20 herois for index in range(1, 21): self.create_hero('Hero {0}'.format(index), 'marvel') # Chamando o metodo para obter os herois heroes = Hero.get_heroes() # Percorrendo todos os herois e transformando eles em dict(json) heroes_dict = [hero.to_dict() for hero in heroes] # Consultando a quantidade de item que retornou self.assertEqual(len(heroes_dict), 16) for hero in heroes_dict: self.assertTrue(hero['name'].startswith('Hero'))