Initialize app at runtime instead of import time (#4024)
This commit is contained in:
committed by
GitHub
parent
f7e68141eb
commit
0efae234ab
@@ -6,10 +6,18 @@ from unittest.mock import MagicMock, patch
|
||||
import pandas as pd
|
||||
import pytest
|
||||
|
||||
from skyvern.forge import app
|
||||
from skyvern.forge.forge_app_initializer import start_forge_app
|
||||
from skyvern.forge.sdk.workflow.models.block import FileParserBlock, FileType
|
||||
from skyvern.forge.sdk.workflow.models.parameter import OutputParameter
|
||||
|
||||
|
||||
@pytest.fixture(scope="module", autouse=True)
|
||||
def setup_forge_app():
|
||||
start_forge_app()
|
||||
yield
|
||||
|
||||
|
||||
class TestFileParserBlock:
|
||||
@pytest.fixture
|
||||
def file_parser_block(self):
|
||||
@@ -172,7 +180,7 @@ class TestFileParserBlock:
|
||||
# Mock the LLM response
|
||||
mock_response = {"extracted_data": {"names": ["John", "Jane"], "total_count": 2}}
|
||||
|
||||
with patch("skyvern.forge.sdk.workflow.models.block.app.LLM_API_HANDLER") as mock_llm:
|
||||
with patch.object(object.__getattribute__(app, "_inst"), "LLM_API_HANDLER") as mock_llm:
|
||||
mock_llm.return_value = mock_response
|
||||
|
||||
with patch("skyvern.forge.sdk.workflow.models.block.prompt_engine.load_prompt") as mock_prompt:
|
||||
@@ -190,7 +198,7 @@ class TestFileParserBlock:
|
||||
# Mock the LLM response
|
||||
mock_response = {"output": {"summary": "Extracted data from file"}}
|
||||
|
||||
with patch("skyvern.forge.sdk.workflow.models.block.app.LLM_API_HANDLER") as mock_llm:
|
||||
with patch.object(object.__getattribute__(app, "_inst"), "LLM_API_HANDLER") as mock_llm:
|
||||
mock_llm.return_value = mock_response
|
||||
|
||||
with patch("skyvern.forge.sdk.workflow.models.block.prompt_engine.load_prompt") as mock_prompt:
|
||||
|
||||
@@ -8,10 +8,17 @@ import pytest
|
||||
from skyvern import config
|
||||
from skyvern.config import Settings
|
||||
from skyvern.forge import app
|
||||
from skyvern.forge.forge_app_initializer import start_forge_app
|
||||
from skyvern.forge.sdk.api.llm import api_handler_factory, config_registry
|
||||
from skyvern.forge.sdk.settings_manager import SettingsManager
|
||||
|
||||
|
||||
@pytest.fixture(scope="module", autouse=True)
|
||||
def setup_forge_app():
|
||||
start_forge_app()
|
||||
yield
|
||||
|
||||
|
||||
class DummyResponse(dict):
|
||||
def __init__(self, content: str):
|
||||
super().__init__({"choices": [{"message": {"content": content}}], "usage": {}})
|
||||
|
||||
Reference in New Issue
Block a user