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
from datetime import datetime
from unittest.mock import MagicMock, PropertyMock
from decimal import Decimal
import pytest
from pytest_mock import MockerFixture
from sqlalchemy.orm import Session, sessionmaker
from core.model_runtime.utils.encoders import jsonable_encoder
from core.repositories import SQLAlchemyWorkflowNodeExecutionRepository
from core.workflow.entities.node_entities import NodeRunMetadataKey
from core.workflow.entities.node_execution_entities import NodeExecution, NodeExecutionStatus
@ -298,7 +300,8 @@ def test_to_db_model(repository):
status=NodeExecutionStatus.RUNNING,
error=None,
elapsed_time=1.5,
metadata={NodeRunMetadataKey.TOTAL_TOKENS: 100},
metadata={NodeRunMetadataKey.TOTAL_TOKENS: 100,
NodeRunMetadataKey.TOTAL_PRICE: Decimal("0.0")},
created_at=datetime.now(),
finished_at=None,
)
@ -324,7 +327,7 @@ def test_to_db_model(repository):
assert db_model.inputs_dict == domain_model.inputs
assert db_model.process_data_dict == domain_model.process_data
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.error == domain_model.error

Loading…
Cancel
Save