mirror of
https://github.com/OMGeeky/gpt-pilot.git
synced 2025-12-26 16:57:23 +01:00
62 lines
1.9 KiB
Python
62 lines
1.9 KiB
Python
import builtins
|
|
import pytest
|
|
from unittest.mock import patch
|
|
from dotenv import load_dotenv
|
|
load_dotenv()
|
|
|
|
from database.database import create_tables
|
|
from helpers.Project import Project
|
|
from test.mock_questionary import MockQuestionary
|
|
from .main import init, get_custom_print
|
|
|
|
|
|
def test_init():
|
|
# When
|
|
args = init()
|
|
|
|
# Then
|
|
for field in ['app_id', 'user_id', 'email']:
|
|
assert args[field] is not None
|
|
|
|
for field in ['workspace', 'step']:
|
|
assert args[field] is None
|
|
|
|
|
|
@pytest.mark.slow
|
|
@pytest.mark.uses_tokens
|
|
@pytest.mark.skip(reason="Uses lots of tokens")
|
|
@pytest.mark.parametrize("endpoint, model", [
|
|
("OPENAI", "gpt-4"),
|
|
("OPENROUTER", "openai/gpt-3.5-turbo"),
|
|
("OPENROUTER", "meta-llama/codellama-34b-instruct"),
|
|
("OPENROUTER", "google/palm-2-chat-bison"),
|
|
("OPENROUTER", "google/palm-2-codechat-bison"),
|
|
# TODO: See https://github.com/1rgs/jsonformer-claude/blob/main/jsonformer_claude/main.py
|
|
# https://github.com/guidance-ai/guidance - token healing
|
|
("OPENROUTER", "anthropic/claude-2"),
|
|
])
|
|
def test_end_to_end(endpoint, model, monkeypatch):
|
|
# Given
|
|
monkeypatch.setenv('ENDPOINT', endpoint)
|
|
monkeypatch.setenv('MODEL_NAME', model)
|
|
|
|
create_tables()
|
|
args = init()
|
|
builtins.print, ipc_client_instance = get_custom_print(args)
|
|
project = Project(args)
|
|
mock_questionary = MockQuestionary([
|
|
'Test App',
|
|
'A web-based chat app',
|
|
# 5 clarifying questions
|
|
'Users can send direct messages to each other but with no group chat functionality',
|
|
'No authentication is required at this stage',
|
|
'Use your best judgement',
|
|
'Use your best judgement',
|
|
'Use your best judgement',
|
|
])
|
|
|
|
# When
|
|
with patch('utils.questionary.questionary', mock_questionary):
|
|
project.start()
|
|
|