Updated Readme for correctness of interactive_test name.

Adding IDE Project files

Created an interactive_test_poke_api.py file that takes user input as an example.
This commit is contained in:
Amari Bolmer
2024-10-22 10:40:00 -07:00
parent 17bc372826
commit 9e67a44a31
8 changed files with 111 additions and 1 deletions

View File

@@ -0,0 +1,15 @@
<component name="InspectionProjectProfileManager">
<profile version="1.0">
<option name="myName" value="Project Default" />
<inspection_tool class="PyCompatibilityInspection" enabled="true" level="WARNING" enabled_by_default="true">
<option name="ourVersions">
<value>
<list size="2">
<item index="0" class="java.lang.String" itemvalue="3.13" />
<item index="1" class="java.lang.String" itemvalue="3.12" />
</list>
</value>
</option>
</inspection_tool>
</profile>
</component>

View File

@@ -0,0 +1,6 @@
<component name="InspectionProjectProfileManager">
<settings>
<option name="USE_PROJECT_PROFILE" value="false" />
<version value="1.0" />
</settings>
</component>

7
.idea/misc.xml generated Normal file
View File

@@ -0,0 +1,7 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="Black">
<option name="sdkName" value="Python 3.12 (pokemonAPI-Amari)" />
</component>
<component name="ProjectRootManager" version="2" project-jdk-name="Python 3.12 (pokemonAPI-Amari)" project-jdk-type="Python SDK" />
</project>

8
.idea/modules.xml generated Normal file
View File

@@ -0,0 +1,8 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="ProjectModuleManager">
<modules>
<module fileurl="file://$PROJECT_DIR$/.idea/pokemonAPI-Amari.iml" filepath="$PROJECT_DIR$/.idea/pokemonAPI-Amari.iml" />
</modules>
</component>
</project>

14
.idea/pokemonAPI-Amari.iml generated Normal file
View File

@@ -0,0 +1,14 @@
<?xml version="1.0" encoding="UTF-8"?>
<module type="PYTHON_MODULE" version="4">
<component name="NewModuleRootManager">
<content url="file://$MODULE_DIR$">
<excludeFolder url="file://$MODULE_DIR$/venv" />
</content>
<orderEntry type="inheritedJdk" />
<orderEntry type="sourceFolder" forTests="false" />
</component>
<component name="PyDocumentationSettings">
<option name="format" value="PLAIN" />
<option name="myDocStringFormat" value="Plain" />
</component>
</module>

6
.idea/vcs.xml generated Normal file
View File

@@ -0,0 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="VcsDirectoryMappings">
<mapping directory="$PROJECT_DIR$" vcs="Git" />
</component>
</project>

View File

@@ -63,7 +63,7 @@ This will demonstrate how to fetch Pokémon and generation data using the SDK.
To run the interactive test that allows you to input a generation ID and output Pokémon in that generation, execute:
```bash
python tests/interactive_test_generation_pokemon.py
python tests/interactive_test_poke_api.py
```
When prompted, enter a generation ID (e.g., "1") to see the Pokémon in that generation.

View File

@@ -0,0 +1,54 @@
import unittest
from poke_sdk.PokeAPI import PokeAPI
from poke_sdk.exceptions import APIError
class InteractiveTestPokeAPI(unittest.TestCase):
@classmethod
def setUpClass(cls):
"""Set up the API client for testing."""
cls.api = PokeAPI()
def test_get_pokemon_with_user_input(self):
"""Test retrieving a Pokémon based on user input. Will return Pokémon Type and generation"""
pokemon_name = input("Enter the Pokémon name (e.g., pikachu, charizard, blastoise): ")
try:
response = self.api.get_pokemon(pokemon_name)
print(f"Retrieved Pokémon: {response.name}, ID: {response.id}, Types: {response.types}")
self.assertEqual(response.name, pokemon_name)
except APIError as e:
self.fail(f"APIError occurred: {e}")
except Exception as e:
print(f"An unexpected error occurred: {e}")
def test_get_pokemon_in_generation(self):
"""Test retrieving Pokémon in a specified generation based on user input. Returns all Pokémon in generation"""
generation_id = input("Enter the generation ID (e.g., 1): ")
try:
response = self.api.get_generation(generation_id)
print(f"Retrieved Generation: {response.name}, ID: {response.id}")
print("Pokémon in this generation:")
for pokemon in response.pokemon_species:
print(f"- {pokemon}")
except APIError as e:
self.fail(f"APIError occurred: {e}")
except Exception as e:
print(f"An unexpected error occurred: {e}")
#Test generation is a valid Pokémon Generation based on user input
def test_get_generation_with_user_input(self):
"""Test retrieving a generation based on user input. Will validate Pokémon generation is a valid Gen"""
generation_id = input("Enter the generation ID, will validate if gen is available(e.g., 1): ")
try:
response = self.api.get_generation(generation_id)
print(f"Retrieved Generation: {response.name}, ID: {response.id}")
self.assertEqual(response.id, int(generation_id))
except APIError as e:
self.fail(f"APIError occurred: {e}")
except Exception as e:
print(f"An unexpected error occurred: {e}")
if __name__ == "__main__":
unittest.main()