Spaces:
Sleeping
Sleeping
| # to run this file for checking please run this command : py -m pytest tests/test_env.py -v | |
| # py -m pytest tests/test_env.py -v in the terminal | |
| import pytest | |
| from environment.api_triage_env import APITriageEnv | |
| from environment.incident_generator import get_incident_by_type | |
| def test_reset(): | |
| """ reset should return the initial state of the environment and with step 0 """ | |
| env = APITriageEnv(max_steps=10) | |
| state = env.reset() | |
| # btw here we used assert to check if the state is a string or not | |
| assert state.step == 0 | |
| assert state.max_steps == 10 | |
| assert state.incident_summary is not None | |
| assert state.logs is not None | |
| assert state.response_code in [400, 404, 401, 429, 500, 408] | |
| def test_action_is_valid(): | |
| """ valid action should return the float reward""" | |
| env = APITriageEnv() | |
| env.reset() | |
| test_action_is_valid = ["add_field", "wait_retry", "refresh_token", "change_endpoint", "escalate"] | |
| for action in test_action_is_valid: | |
| state , reward , done , info = env.step(action) | |
| # btw here we are checking if the reward is a float and if done is also a boolean ,if its not tthen test will catch it | |
| assert isinstance(reward, float) | |
| assert isinstance(done, bool) | |
| def test_action_is_invalid(): | |
| """ invalid action should return a negative reward and done = true""" | |
| env = APITriageEnv() | |
| env.reset() | |
| state, reward, done, info = env.step("fake_action_123") | |
| assert reward == -2.0 | |
| assert done is False | |
| def test_episode_successful(): | |
| env = APITriageEnv() | |
| env.incident = get_incident_by_type("auth_error") | |
| env.fix_applied = False | |
| env.done = False | |
| env.total_reward = 0.0 | |
| state, reward, done, info = env.step("inspect_logs") | |
| state, reward, done, info = env.step("refresh_token") | |
| assert done is False | |
| state, reward, done, info = env.step("resolve") | |
| assert done is True | |