def test_retrieve_pokemons_by_type(): # definimos um pokemon do tipo grama grass_type_pokemon = { "national_number": "001", "evolution": None, "name": "Bulbasaur", "type": ["Grass", "Poison"], "total": 318, "hp": 45, "attack": 49, "defense": 49, "sp_atk": 65, "sp_def": 65, "speed": 45, } # definimos também um pokemon do tipo água water_type_pokemon = { "national_number": "007", "evolution": None, "name": "Squirtle", "type": ["Water"], "total": 314, "hp": 44, "attack": 48, "defense": 65, "sp_atk": 50, "sp_def": 64, "speed": 43, } pokemon_json_content = json.dumps( {"results": [grass_type_pokemon, water_type_pokemon]}) # substituímos a função padrão do python open por mock_open # uma versão que se comporta de forma parecida, porém simulada with patch("builtins.open", mock_open(read_data=pokemon_json_content)): # repare que o nome do arquivo não é importante aqui # a esses parâmetros não utilizados damos o nome de dummies # como neste contexto alteramos o open pelo mock_open, # o argumento "dummy" poderia ser substituído por qualquer coisa, # já que não será utilizado pela função assert retrieve_pokemons_by_type("Grass", "dummy") == [grass_type_pokemon]
def test_retrieve_pokemons_by_type(): # definimos um pokemon do tipo grama grass_type_pokemon = { "national_number": "001", "evolution": None, "name": "Bulbasaur", "type": ["Grass", "Poison"], "total": 318, "hp": 45, "attack": 49, "defense": 49, "sp_atk": 65, "sp_def": 65, "speed": 45, } # definimos também um pokemon do tipo água water_type_pokemon = { "national_number": "007", "evolution": None, "name": "Squirtle", "type": ["Water"], "total": 314, "hp": 44, "attack": 48, "defense": 65, "sp_atk": 50, "sp_def": 64, "speed": 43, } # criamos um arquivo em memória que o seu conteúdo são os dois pokemons fake_file = StringIO( json.dumps({"results": [grass_type_pokemon, water_type_pokemon]}) ) # quando pesquisamos por pokemons do tipo grama, # o pokemon do tipo água não deve ser retornado assert retrieve_pokemons_by_type("Grass", fake_file) == [ grass_type_pokemon ]
def test_retrive_pokemons_by_type(): grass_type_pokemon = { "national_number": "001", "evolution": None, "name": "Bulbasaur", "type": ["Grass", "Poison"], "total": 318, "hp": 45, "attack": 49, "defense": 49, "sp_atk": 65, "sp_def": 65, "speed": 45, } water_type_pokemon = { "national_number": "007", "evolution": None, "name": "Squirtle", "type": ["Water"], "total": 314, "hp": 44, "attack": 48, "defense": 65, "sp_atk": 50, "sp_def": 64, "speed": 43, } # criamos um arquivo em memória que o seu conteúdo são os dois pokemons fake_file = StringIO( json.dumps({"results": [grass_type_pokemon, water_type_pokemon]}) ) assert retrieve_pokemons_by_type("Grass", fake_file) == [ grass_type_pokemon ]