diff --git a/src/backend/base/langflow/initial_setup/setup.py b/src/backend/base/langflow/initial_setup/setup.py index dc66b0371..8209a9d00 100644 --- a/src/backend/base/langflow/initial_setup/setup.py +++ b/src/backend/base/langflow/initial_setup/setup.py @@ -341,9 +341,9 @@ def load_flows_from_directory(): if existing: logger.info(f"Updating existing flow: {flow_id} with endpoint name {flow_endpoint_name}") for key, value in flow.items(): - if key == "last_tested_version": - continue - setattr(existing, key, value) + if hasattr(existing, key): + # flow dict from json and db representation are not 100% the same + setattr(existing, key, value) existing.updated_at = datetime.utcnow() existing.user_id = user_id session.add(existing) diff --git a/tests/data/basic_example.json b/tests/data/basic_example.json index 35f515bc4..e3a5141a6 100644 --- a/tests/data/basic_example.json +++ b/tests/data/basic_example.json @@ -505,5 +505,6 @@ "y": 0, "zoom": 0.5 } - } -} \ No newline at end of file + }, + "last_tested_version": "0.6.2" +} diff --git a/tests/unit/test_database.py b/tests/unit/test_database.py index e689f558d..e09f9f62e 100644 --- a/tests/unit/test_database.py +++ b/tests/unit/test_database.py @@ -6,7 +6,7 @@ from fastapi.testclient import TestClient from sqlmodel import Session from langflow.api.v1.schemas import FlowListCreate -from langflow.initial_setup.setup import load_starter_projects +from langflow.initial_setup.setup import load_starter_projects, load_flows_from_directory from langflow.services.database.models.base import orjson_dumps from langflow.services.database.models.flow import Flow, FlowCreate, FlowUpdate from langflow.services.database.utils import session_getter @@ -271,7 +271,11 @@ def test_read_only_starter_projects(client: TestClient, active_user, logged_in_h @pytest.mark.load_flows def test_load_flows(client: TestClient, load_flows_dir): - client.get("/api/v1/auto_login") + response = client.get("api/v1/flows/c54f9130-f2fa-4a3e-b22a-3856d946351b") + assert response.status_code == 200 + assert response.json()["name"] == "BasicExample" + # re-run to ensure updates work well + load_flows_from_directory() response = client.get("api/v1/flows/c54f9130-f2fa-4a3e-b22a-3856d946351b") assert response.status_code == 200 assert response.json()["name"] == "BasicExample"