Change all Services names from Manager to Service
This commit is contained in:
parent
4f6aeefd96
commit
651595932c
60 changed files with 454 additions and 414 deletions
|
|
@ -17,7 +17,7 @@ from sqlmodel.pool import StaticPool
|
|||
from typer.testing import CliRunner
|
||||
|
||||
if TYPE_CHECKING:
|
||||
from langflow.services.database.manager import DatabaseManager
|
||||
from langflow.services.database.manager import DatabaseService
|
||||
|
||||
|
||||
def pytest_configure():
|
||||
|
|
@ -158,8 +158,8 @@ def session_getter_fixture(client):
|
|||
SQLModel.metadata.create_all(engine)
|
||||
|
||||
@contextmanager
|
||||
def blank_session_getter(db_manager: "DatabaseManager"):
|
||||
with Session(db_manager.engine) as session:
|
||||
def blank_session_getter(db_service: "DatabaseService"):
|
||||
with Session(db_service.engine) as session:
|
||||
yield session
|
||||
|
||||
yield blank_session_getter
|
||||
|
|
|
|||
|
|
@ -31,15 +31,15 @@ def test_zero_shot_agent(client: TestClient, logged_in_headers):
|
|||
}
|
||||
|
||||
# Additional assertions for other template variables
|
||||
assert template["callback_manager"] == {
|
||||
assert template["callback_service"] == {
|
||||
"required": False,
|
||||
"dynamic": False,
|
||||
"placeholder": "",
|
||||
"show": False,
|
||||
"multiline": False,
|
||||
"password": False,
|
||||
"name": "callback_manager",
|
||||
"type": "BaseCallbackManager",
|
||||
"name": "callback_service",
|
||||
"type": "BaseCallbackService",
|
||||
"list": False,
|
||||
"advanced": False,
|
||||
"info": "",
|
||||
|
|
|
|||
|
|
@ -2,81 +2,81 @@ from io import StringIO
|
|||
|
||||
import pandas as pd
|
||||
import pytest
|
||||
from langflow.services.chat.cache import CacheManager
|
||||
from langflow.services.chat.cache import CacheService
|
||||
from PIL import Image
|
||||
|
||||
|
||||
@pytest.fixture
|
||||
def cache_manager():
|
||||
return CacheManager()
|
||||
def cache_service():
|
||||
return CacheService()
|
||||
|
||||
|
||||
def test_cache_manager_attach_detach_notify(cache_manager):
|
||||
def test_cache_service_attach_detach_notify(cache_service):
|
||||
observer_called = False
|
||||
|
||||
def observer():
|
||||
nonlocal observer_called
|
||||
observer_called = True
|
||||
|
||||
cache_manager.attach(observer)
|
||||
cache_manager.notify()
|
||||
cache_service.attach(observer)
|
||||
cache_service.notify()
|
||||
|
||||
assert observer_called
|
||||
|
||||
observer_called = False
|
||||
cache_manager.detach(observer)
|
||||
cache_manager.notify()
|
||||
cache_service.detach(observer)
|
||||
cache_service.notify()
|
||||
|
||||
assert not observer_called
|
||||
|
||||
|
||||
def test_cache_manager_client_context(cache_manager):
|
||||
with cache_manager.set_client_id("client1"):
|
||||
cache_manager.add("foo", "bar", "string")
|
||||
assert cache_manager.get("foo") == {
|
||||
def test_cache_service_client_context(cache_service):
|
||||
with cache_service.set_client_id("client1"):
|
||||
cache_service.add("foo", "bar", "string")
|
||||
assert cache_service.get("foo") == {
|
||||
"obj": "bar",
|
||||
"type": "string",
|
||||
"extension": "str",
|
||||
}
|
||||
|
||||
with cache_manager.set_client_id("client2"):
|
||||
cache_manager.add("baz", "qux", "string")
|
||||
assert cache_manager.get("baz") == {
|
||||
with cache_service.set_client_id("client2"):
|
||||
cache_service.add("baz", "qux", "string")
|
||||
assert cache_service.get("baz") == {
|
||||
"obj": "qux",
|
||||
"type": "string",
|
||||
"extension": "str",
|
||||
}
|
||||
|
||||
with pytest.raises(KeyError):
|
||||
cache_manager.get("foo")
|
||||
cache_service.get("foo")
|
||||
|
||||
|
||||
def test_cache_manager_add_pandas(cache_manager):
|
||||
def test_cache_service_add_pandas(cache_service):
|
||||
df = pd.DataFrame({"col1": [1, 2], "col2": [3, 4]})
|
||||
|
||||
with cache_manager.set_client_id("client1"):
|
||||
cache_manager.add_pandas("test_df", df)
|
||||
cached_df = cache_manager.get("test_df")
|
||||
with cache_service.set_client_id("client1"):
|
||||
cache_service.add_pandas("test_df", df)
|
||||
cached_df = cache_service.get("test_df")
|
||||
assert cached_df["type"] == "pandas"
|
||||
assert cached_df["extension"] == "csv"
|
||||
read_df = pd.read_csv(StringIO(cached_df["obj"]), index_col=0)
|
||||
pd.testing.assert_frame_equal(df, read_df)
|
||||
|
||||
|
||||
def test_cache_manager_add_image(cache_manager):
|
||||
def test_cache_service_add_image(cache_service):
|
||||
img = Image.new("RGB", (50, 50), color="red")
|
||||
|
||||
with cache_manager.set_client_id("client1"):
|
||||
cache_manager.add_image("test_image", img)
|
||||
cached_img = cache_manager.get("test_image")
|
||||
with cache_service.set_client_id("client1"):
|
||||
cache_service.add_image("test_image", img)
|
||||
cached_img = cache_service.get("test_image")
|
||||
assert cached_img["type"] == "image"
|
||||
assert cached_img["extension"] == "png"
|
||||
assert isinstance(cached_img["obj"], Image.Image)
|
||||
|
||||
|
||||
def test_cache_manager_get_last(cache_manager):
|
||||
with cache_manager.set_client_id("client1"):
|
||||
cache_manager.add("foo", "bar", "string")
|
||||
cache_manager.add("baz", "qux", "string")
|
||||
last_item = cache_manager.get_last()
|
||||
def test_cache_service_get_last(cache_service):
|
||||
with cache_service.set_client_id("client1"):
|
||||
cache_service.add("foo", "bar", "string")
|
||||
cache_service.add("baz", "qux", "string")
|
||||
last_item = cache_service.get_last()
|
||||
assert last_item == {"obj": "qux", "type": "string", "extension": "str"}
|
||||
|
|
|
|||
|
|
@ -26,8 +26,8 @@ def test_components_path(runner, client, default_settings):
|
|||
["run", "--components-path", str(temp_dir), *default_settings],
|
||||
)
|
||||
assert result.exit_code == 0, result.stdout
|
||||
settings_manager = utils.get_settings_manager()
|
||||
assert str(temp_dir) in settings_manager.settings.COMPONENTS_PATH
|
||||
settings_service = utils.get_settings_service()
|
||||
assert str(temp_dir) in settings_service.settings.COMPONENTS_PATH
|
||||
|
||||
|
||||
def test_superuser(runner, client, session):
|
||||
|
|
|
|||
|
|
@ -2,7 +2,7 @@ import uuid
|
|||
from langflow.processing.process import Result
|
||||
from langflow.services.auth.utils import get_password_hash
|
||||
from langflow.services.database.models.api_key.api_key import ApiKey
|
||||
from langflow.services.utils import get_settings_manager
|
||||
from langflow.services.utils import get_settings_service
|
||||
import pytest
|
||||
from fastapi.testclient import TestClient
|
||||
from langflow.interface.tools.constants import CUSTOM_TOOLS
|
||||
|
|
@ -111,8 +111,8 @@ def test_process_flow_invalid_api_key(client, flow, monkeypatch):
|
|||
from langflow.api.v1 import endpoints
|
||||
from langflow.services.database.models.api_key import crud
|
||||
|
||||
settings_manager = get_settings_manager()
|
||||
settings_manager.auth_settings.AUTO_LOGIN = False
|
||||
settings_service = get_settings_service()
|
||||
settings_service.auth_settings.AUTO_LOGIN = False
|
||||
|
||||
async def mock_process_graph_cached(*args, **kwargs):
|
||||
return Result(result={}, session_id="session_id_mock")
|
||||
|
|
@ -170,8 +170,8 @@ def test_process_flow_without_autologin(client, flow, monkeypatch, created_api_k
|
|||
from langflow.api.v1 import endpoints
|
||||
from langflow.services.database.models.api_key import crud
|
||||
|
||||
settings_manager = get_settings_manager()
|
||||
settings_manager.auth_settings.AUTO_LOGIN = False
|
||||
settings_service = get_settings_service()
|
||||
settings_service.auth_settings.AUTO_LOGIN = False
|
||||
|
||||
async def mock_process_graph_cached(*args, **kwargs):
|
||||
return Result(result={}, session_id="session_id_mock")
|
||||
|
|
@ -208,8 +208,8 @@ def test_process_flow_fails_autologin_off(client, flow, monkeypatch):
|
|||
from langflow.api.v1 import endpoints
|
||||
from langflow.services.database.models.api_key import crud
|
||||
|
||||
settings_manager = get_settings_manager()
|
||||
settings_manager.auth_settings.AUTO_LOGIN = False
|
||||
settings_service = get_settings_service()
|
||||
settings_service.auth_settings.AUTO_LOGIN = False
|
||||
|
||||
async def mock_process_graph_cached(*args, **kwargs):
|
||||
return Result(result={}, session_id="session_id_mock")
|
||||
|
|
|
|||
|
|
@ -1,14 +1,14 @@
|
|||
from fastapi.testclient import TestClient
|
||||
from langflow.services.utils import get_settings_manager
|
||||
from langflow.services.utils import get_settings_service
|
||||
|
||||
|
||||
def test_llms_settings(client: TestClient, logged_in_headers):
|
||||
settings_manager = get_settings_manager()
|
||||
settings_service = get_settings_service()
|
||||
response = client.get("api/v1/all", headers=logged_in_headers)
|
||||
assert response.status_code == 200
|
||||
json_response = response.json()
|
||||
llms = json_response["llms"]
|
||||
assert set(llms.keys()) == set(settings_manager.settings.LLMS)
|
||||
assert set(llms.keys()) == set(settings_service.settings.LLMS)
|
||||
|
||||
|
||||
# def test_hugging_face_hub(client: TestClient):
|
||||
|
|
|
|||
|
|
@ -1,5 +1,5 @@
|
|||
from langflow.processing.process import process_tweaks
|
||||
from langflow.services.utils import get_session_manager
|
||||
from langflow.services.utils import get_session_service
|
||||
|
||||
|
||||
def test_no_tweaks():
|
||||
|
|
@ -199,13 +199,13 @@ def test_tweak_not_in_template():
|
|||
|
||||
def test_load_langchain_object_with_cached_session(client, basic_graph_data):
|
||||
# Provide a non-existent session_id
|
||||
session_manager = get_session_manager()
|
||||
session_service = get_session_service()
|
||||
session_id1 = "non-existent-session-id"
|
||||
langchain_object1, artifacts1 = session_manager.load_session(
|
||||
langchain_object1, artifacts1 = session_service.load_session(
|
||||
session_id1, basic_graph_data
|
||||
)
|
||||
# Use the new session_id to get the langchain_object again
|
||||
langchain_object2, artifacts2 = session_manager.load_session(
|
||||
langchain_object2, artifacts2 = session_service.load_session(
|
||||
session_id1, basic_graph_data
|
||||
)
|
||||
|
||||
|
|
@ -215,16 +215,16 @@ def test_load_langchain_object_with_cached_session(client, basic_graph_data):
|
|||
|
||||
def test_load_langchain_object_with_no_cached_session(client, basic_graph_data):
|
||||
# Provide a non-existent session_id
|
||||
session_manager = get_session_manager()
|
||||
session_service = get_session_service()
|
||||
session_id1 = "non-existent-session-id"
|
||||
session_id = session_manager.build_key(session_id1, basic_graph_data)
|
||||
langchain_object1, artifacts1 = session_manager.load_session(
|
||||
session_id = session_service.build_key(session_id1, basic_graph_data)
|
||||
langchain_object1, artifacts1 = session_service.load_session(
|
||||
session_id, basic_graph_data
|
||||
)
|
||||
# Clear the cache
|
||||
session_manager.clear_session(session_id)
|
||||
session_service.clear_session(session_id)
|
||||
# Use the new session_id to get the langchain_object again
|
||||
langchain_object2, artifacts2 = session_manager.load_session(
|
||||
langchain_object2, artifacts2 = session_service.load_session(
|
||||
session_id, basic_graph_data
|
||||
)
|
||||
|
||||
|
|
@ -235,13 +235,13 @@ def test_load_langchain_object_with_no_cached_session(client, basic_graph_data):
|
|||
|
||||
def test_load_langchain_object_without_session_id(client, basic_graph_data):
|
||||
# Provide a non-existent session_id
|
||||
session_manager = get_session_manager()
|
||||
session_service = get_session_service()
|
||||
session_id1 = None
|
||||
langchain_object1, artifacts1 = session_manager.load_session(
|
||||
langchain_object1, artifacts1 = session_service.load_session(
|
||||
session_id1, basic_graph_data
|
||||
)
|
||||
# Use the new session_id to get the langchain_object again
|
||||
langchain_object2, artifacts2 = session_manager.load_session(
|
||||
langchain_object2, artifacts2 = session_service.load_session(
|
||||
session_id1, basic_graph_data
|
||||
)
|
||||
|
||||
|
|
|
|||
|
|
@ -1,14 +1,14 @@
|
|||
from fastapi.testclient import TestClient
|
||||
from langflow.services.utils import get_settings_manager
|
||||
from langflow.services.utils import get_settings_service
|
||||
|
||||
|
||||
def test_prompts_settings(client: TestClient, logged_in_headers):
|
||||
settings_manager = get_settings_manager()
|
||||
settings_service = get_settings_service()
|
||||
response = client.get("api/v1/all", headers=logged_in_headers)
|
||||
assert response.status_code == 200
|
||||
json_response = response.json()
|
||||
prompts = json_response["prompts"]
|
||||
assert set(prompts.keys()) == set(settings_manager.settings.PROMPTS)
|
||||
assert set(prompts.keys()) == set(settings_service.settings.PROMPTS)
|
||||
|
||||
|
||||
def test_prompt_template(client: TestClient, logged_in_headers):
|
||||
|
|
|
|||
|
|
@ -2,15 +2,15 @@ from datetime import datetime
|
|||
from langflow.services.auth.utils import create_super_user, get_password_hash
|
||||
|
||||
from langflow.services.database.models.user.user import User
|
||||
from langflow.services.utils import get_settings_manager
|
||||
from langflow.services.utils import get_settings_service
|
||||
import pytest
|
||||
from langflow.services.database.models.user import UserUpdate
|
||||
|
||||
|
||||
@pytest.fixture
|
||||
def super_user(client, session):
|
||||
settings_manager = get_settings_manager()
|
||||
auth_settings = settings_manager.auth_settings
|
||||
settings_service = get_settings_service()
|
||||
auth_settings = settings_service.auth_settings
|
||||
return create_super_user(
|
||||
db=session,
|
||||
username=auth_settings.FIRST_SUPERUSER,
|
||||
|
|
@ -20,8 +20,8 @@ def super_user(client, session):
|
|||
|
||||
@pytest.fixture
|
||||
def super_user_headers(client, super_user):
|
||||
settings_manager = get_settings_manager()
|
||||
auth_settings = settings_manager.auth_settings
|
||||
settings_service = get_settings_service()
|
||||
auth_settings = settings_service.auth_settings
|
||||
login_data = {
|
||||
"username": auth_settings.FIRST_SUPERUSER,
|
||||
"password": auth_settings.FIRST_SUPERUSER_PASSWORD,
|
||||
|
|
|
|||
|
|
@ -1,14 +1,14 @@
|
|||
from fastapi.testclient import TestClient
|
||||
from langflow.services.utils import get_settings_manager
|
||||
from langflow.services.utils import get_settings_service
|
||||
|
||||
|
||||
# check that all agents are in settings.agents
|
||||
# are in json_response["agents"]
|
||||
def test_vectorstores_settings(client: TestClient, logged_in_headers):
|
||||
settings_manager = get_settings_manager()
|
||||
settings_service = get_settings_service()
|
||||
response = client.get("api/v1/all", headers=logged_in_headers)
|
||||
assert response.status_code == 200
|
||||
json_response = response.json()
|
||||
vectorstores = json_response["vectorstores"]
|
||||
settings_vecs = set(settings_manager.settings.VECTORSTORES)
|
||||
settings_vecs = set(settings_service.settings.VECTORSTORES)
|
||||
assert all(vs in vectorstores for vs in settings_vecs)
|
||||
|
|
|
|||
|
|
@ -1,7 +1,7 @@
|
|||
from fastapi import WebSocketDisconnect
|
||||
from fastapi.testclient import TestClient
|
||||
|
||||
# from langflow.services.chat.manager import ChatManager
|
||||
# from langflow.services.chat.manager import ChatService
|
||||
|
||||
import pytest
|
||||
|
||||
|
|
@ -28,7 +28,7 @@ def test_init_build(client, active_user, logged_in_headers):
|
|||
|
||||
|
||||
def test_websocket_endpoint(client: TestClient, active_user, logged_in_headers):
|
||||
# Assuming your websocket_endpoint uses chat_manager which caches data from stream_build
|
||||
# Assuming your websocket_endpoint uses chat_service which caches data from stream_build
|
||||
access_token = logged_in_headers["Authorization"].split(" ")[1]
|
||||
with pytest.raises(WebSocketDisconnect):
|
||||
with client.websocket_connect(
|
||||
|
|
@ -40,12 +40,12 @@ def test_websocket_endpoint(client: TestClient, active_user, logged_in_headers):
|
|||
|
||||
|
||||
def test_websocket_endpoint_after_build(client, basic_graph_data):
|
||||
# Assuming your websocket_endpoint uses chat_manager which caches data from stream_build
|
||||
# Assuming your websocket_endpoint uses chat_service which caches data from stream_build
|
||||
client.post("api/v1/build/init", json=basic_graph_data)
|
||||
client.get("api/v1/build/stream/websocket_test")
|
||||
|
||||
# There should be more to test here, but it depends on the inner workings of your websocket handler
|
||||
# and how your chat_manager and other classes behave. The following is just an example structure.
|
||||
# and how your chat_service and other classes behave. The following is just an example structure.
|
||||
with pytest.raises(WebSocketDisconnect):
|
||||
with client.websocket_connect("api/v1/chat/websocket_test") as websocket:
|
||||
websocket.send_json({"input": "test"})
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue