mirror of
https://github.com/aljazceru/Auto-GPT.git
synced 2026-01-02 13:54:31 +01:00
Co-authored-by: Reinier van der Leer <github@pwuts.nl> Co-authored-by: Nicholas Tindle <nick@ntindle.com> Co-authored-by: Nicholas Tindle <nicktindle@outlook.com> Co-authored-by: k-boikov <64261260+k-boikov@users.noreply.github.com> Co-authored-by: merwanehamadi <merwanehamadi@gmail.com> Co-authored-by: Merwane Hamadi <merwanehamadi@gmail.com> Co-authored-by: Richard Beales <rich@richbeales.net> Co-authored-by: Luke K <2609441+lc0rp@users.noreply.github.com> Co-authored-by: Luke K (pr-0f3t) <2609441+lc0rp@users.noreply.github.com> Co-authored-by: Erik Peterson <e@eriklp.com> Co-authored-by: Auto-GPT-Bot <github-bot@agpt.co> Co-authored-by: Benny van der Lans <49377421+bfalans@users.noreply.github.com> Co-authored-by: Jan <jan-github@phobia.de> Co-authored-by: Robin Richtsfeld <robin.richtsfeld@gmail.com> Co-authored-by: Marc Bornträger <marc.borntraeger@gmail.com> Co-authored-by: Stefan Ayala <stefanayala3266@gmail.com> Co-authored-by: javableu <45064273+javableu@users.noreply.github.com> Co-authored-by: DGdev91 <DGdev91@users.noreply.github.com> Co-authored-by: Kinance <kinance@gmail.com> Co-authored-by: digger yu <digger-yu@outlook.com> Co-authored-by: David <scenaristeur@gmail.com> Co-authored-by: gravelBridge <john.tian31@gmail.com> Fix Python CI "update cassettes" step (#4591) fix CI (#4596) Fix inverted logic for deny_command (#4563) fix current_score.json generation (#4601) Fix duckduckgo rate limiting (#4592) Fix debug code challenge (#4632) Fix issues with information retrieval challenge a (#4622) fix issues with env configuration and .env.template (#4630) Fix prompt issue causing 'No Command' issues and challenge to fail (#4623) Fix benchmark logs (#4653) Fix typo in docs/setup.md (#4613) Fix run.sh shebang (#4561) Fix autogpt docker image not working because missing prompt_settings (#4680) Fix execute_command coming from plugins (#4730)
62 lines
1.8 KiB
Python
62 lines
1.8 KiB
Python
from typing import Any, Dict, Optional
|
|
|
|
import pytest
|
|
from _pytest.config import Config
|
|
from _pytest.config.argparsing import Parser
|
|
from _pytest.fixtures import FixtureRequest
|
|
|
|
from tests.challenges.challenge_decorator.challenge import Challenge
|
|
from tests.vcr import before_record_response
|
|
|
|
|
|
def before_record_response_filter_errors(
|
|
response: Dict[str, Any]
|
|
) -> Optional[Dict[str, Any]]:
|
|
"""In challenges we don't want to record errors (See issue #4461)"""
|
|
if response["status"]["code"] >= 400:
|
|
return None
|
|
|
|
return before_record_response(response)
|
|
|
|
|
|
@pytest.fixture(scope="module")
|
|
def vcr_config(get_base_vcr_config: Dict[str, Any]) -> Dict[str, Any]:
|
|
# this fixture is called by the pytest-recording vcr decorator.
|
|
return get_base_vcr_config | {
|
|
"before_record_response": before_record_response_filter_errors,
|
|
}
|
|
|
|
|
|
def pytest_addoption(parser: Parser) -> None:
|
|
parser.addoption(
|
|
"--level", action="store", default=None, type=int, help="Specify test level"
|
|
)
|
|
parser.addoption(
|
|
"--beat-challenges",
|
|
action="store_true",
|
|
help="Spepcifies whether the test suite should attempt to beat challenges",
|
|
)
|
|
|
|
|
|
def pytest_configure(config: Config) -> None:
|
|
level = config.getoption("--level", default=None)
|
|
config.option.level = level
|
|
beat_challenges = config.getoption("--beat-challenges", default=False)
|
|
config.option.beat_challenges = beat_challenges
|
|
|
|
|
|
@pytest.fixture
|
|
def level_to_run(request: FixtureRequest) -> int:
|
|
## used for challenges in the goal oriented tests
|
|
return request.config.option.level
|
|
|
|
|
|
@pytest.fixture
|
|
def challenge_name() -> str:
|
|
return Challenge.DEFAULT_CHALLENGE_NAME
|
|
|
|
|
|
@pytest.fixture(autouse=True)
|
|
def check_beat_challenges(request: FixtureRequest) -> None:
|
|
Challenge.BEAT_CHALLENGES = request.config.getoption("--beat-challenges")
|