test: add test case for metadata with Decimal to cover fix for #19936

pull/19955/head
Zihe JI 1 year ago
parent e399e84be6
commit a7c3bfc7f6

@ -5,11 +5,13 @@ Unit tests for the SQLAlchemy implementation of WorkflowNodeExecutionRepository.
import json import json
from datetime import datetime from datetime import datetime
from unittest.mock import MagicMock, PropertyMock from unittest.mock import MagicMock, PropertyMock
from decimal import Decimal
import pytest import pytest
from pytest_mock import MockerFixture from pytest_mock import MockerFixture
from sqlalchemy.orm import Session, sessionmaker from sqlalchemy.orm import Session, sessionmaker
from core.model_runtime.utils.encoders import jsonable_encoder
from core.repositories import SQLAlchemyWorkflowNodeExecutionRepository from core.repositories import SQLAlchemyWorkflowNodeExecutionRepository
from core.workflow.entities.node_entities import NodeRunMetadataKey from core.workflow.entities.node_entities import NodeRunMetadataKey
from core.workflow.entities.node_execution_entities import NodeExecution, NodeExecutionStatus from core.workflow.entities.node_execution_entities import NodeExecution, NodeExecutionStatus
@ -298,7 +300,8 @@ def test_to_db_model(repository):
status=NodeExecutionStatus.RUNNING, status=NodeExecutionStatus.RUNNING,
error=None, error=None,
elapsed_time=1.5, elapsed_time=1.5,
metadata={NodeRunMetadataKey.TOTAL_TOKENS: 100}, metadata={NodeRunMetadataKey.TOTAL_TOKENS: 100,
NodeRunMetadataKey.TOTAL_PRICE: Decimal("0.0")},
created_at=datetime.now(), created_at=datetime.now(),
finished_at=None, finished_at=None,
) )
@ -324,7 +327,7 @@ def test_to_db_model(repository):
assert db_model.inputs_dict == domain_model.inputs assert db_model.inputs_dict == domain_model.inputs
assert db_model.process_data_dict == domain_model.process_data assert db_model.process_data_dict == domain_model.process_data
assert db_model.outputs_dict == domain_model.outputs assert db_model.outputs_dict == domain_model.outputs
assert db_model.execution_metadata_dict == domain_model.metadata assert db_model.execution_metadata_dict == jsonable_encoder(domain_model.metadata)
assert db_model.status == domain_model.status assert db_model.status == domain_model.status
assert db_model.error == domain_model.error assert db_model.error == domain_model.error

Loading…
Cancel
Save