langflow/tests/test_database.py
Gabriel Almeida 6cacfced09 🚧 chore(conftest.py): add fixtures for database testing
 test(database.py): add tests for CRUD operations on Flow model
The new fixtures added to conftest.py are session and client fixtures. These fixtures are used to create a test database and a test client for testing the database. The tests added to test_database.py test the CRUD operations on the Flow model. The tests include creating a flow, reading all flows, reading a single flow, updating a flow, and deleting a flow. These tests ensure that the database is working as expected and that the API endpoints for the Flow model are functioning correctly.
2023-05-30 21:24:23 -03:00

58 lines
2.2 KiB
Python

from langflow.database.models.flow import FlowCreate
def test_create_flow(client, json_flow):
flow = FlowCreate(name="Test Flow", flow=json_flow)
response = client.post("/flows/", json=flow.dict())
assert response.status_code == 200
assert response.json()["name"] == flow.name
assert response.json()["flow"] == flow.flow
def test_read_flows(client, json_flow):
flow = FlowCreate(name="Test Flow", flow=json_flow)
response = client.post("/flows/", json=flow.dict())
assert response.status_code == 200
assert response.json()["name"] == flow.name
assert response.json()["flow"] == flow.flow
flow = FlowCreate(name="Test Flow", flow=json_flow)
response = client.post("/flows/", json=flow.dict())
assert response.status_code == 200
assert response.json()["name"] == flow.name
assert response.json()["flow"] == flow.flow
response = client.get("/flows/")
assert response.status_code == 200
assert len(response.json()) > 0
def test_read_flow(client, json_flow):
flow = FlowCreate(name="Test Flow", flow=json_flow)
response = client.post("/flows/", json=flow.dict())
flow_id = response.json()["id"]
response = client.get(f"/flows/{flow_id}")
assert response.status_code == 200
assert response.json()["name"] == flow.name
assert response.json()["flow"] == flow.flow
def test_update_flow(client, json_flow):
flow = FlowCreate(name="Test Flow", flow=json_flow)
response = client.post("/flows/", json=flow.dict())
flow_id = response.json()["id"]
updated_flow = FlowCreate(
name="Updated Flow", flow=json_flow.replace("BasicExample", "Updated Flow")
)
response = client.put(f"/flows/{flow_id}", json=updated_flow.dict())
assert response.status_code == 200
assert response.json()["name"] == updated_flow.name
assert response.json()["flow"] == updated_flow.flow
def test_delete_flow(client, json_flow):
flow = FlowCreate(name="Test Flow", flow=json_flow)
response = client.post("/flows/", json=flow.dict())
flow_id = response.json()["id"]
response = client.delete(f"/flows/{flow_id}")
assert response.status_code == 200
assert response.json()["message"] == "Flow deleted successfully"