refactor(api): replace test fixture side-effect imports (#34421)

This commit is contained in:
99
2026-04-02 12:55:15 +08:00
committed by GitHub
parent 993a301468
commit cd406d2794
35 changed files with 105 additions and 58 deletions

View File

@@ -115,12 +115,6 @@ ignore = [
"controllers/console/human_input_form.py" = ["TID251"]
"controllers/web/human_input_form.py" = ["TID251"]
[lint.pyflakes]
allowed-unused-imports = [
"tests.integration_tests",
"tests.unit_tests",
]
[lint.flake8-tidy-imports]
[lint.flake8-tidy-imports.banned-api."flask_restx.reqparse"]

View File

@@ -4,16 +4,20 @@ from typing import Literal
import httpx
import pytest
from core.plugin.entities.plugin_daemon import PluginDaemonBasicResponse
from core.plugin.entities.plugin_daemon import PluginDaemonBasicResponse, PluginToolProviderEntity
from core.tools.entities.common_entities import I18nObject
from core.tools.entities.tool_entities import ToolProviderEntity, ToolProviderIdentity
from core.tools.entities.tool_entities import ToolProviderEntityWithPlugin, ToolProviderIdentity
class MockedHttp:
@classmethod
def list_tools(cls) -> list[ToolProviderEntity]:
def list_tools(cls) -> list[PluginToolProviderEntity]:
return [
ToolProviderEntity(
PluginToolProviderEntity(
provider="Yeuoly",
plugin_unique_identifier="langgenius/yeuoly:0.0.1@mock",
plugin_id="mock-plugin",
declaration=ToolProviderEntityWithPlugin(
identity=ToolProviderIdentity(
author="Yeuoly",
name="Yeuoly",
@@ -21,6 +25,7 @@ class MockedHttp:
icon="ssss.svg",
label=I18nObject(en_US="Yeuoly"),
)
),
)
]
@@ -33,7 +38,7 @@ class MockedHttp:
"""
request = httpx.Request(method, url)
if url.endswith("/tools"):
content = PluginDaemonBasicResponse[list[ToolProviderEntity]](
content = PluginDaemonBasicResponse[list[PluginToolProviderEntity]](
code=0, message="success", data=cls.list_tools()
).model_dump_json()
else:

View File

@@ -1,5 +1,6 @@
from core.plugin.impl.tool import PluginToolManager
from tests.integration_tests.plugin.__mock.http import setup_http_mock
pytest_plugins = ("tests.integration_tests.plugin.__mock.http",)
def test_fetch_all_plugin_tools(setup_http_mock):

View File

@@ -3,7 +3,8 @@ from core.tools.custom_tool.tool import ApiTool
from core.tools.entities.common_entities import I18nObject
from core.tools.entities.tool_bundle import ApiToolBundle
from core.tools.entities.tool_entities import ToolEntity, ToolIdentity
from tests.integration_tests.tools.__mock.http import setup_http_mock
pytest_plugins = ("tests.integration_tests.tools.__mock.http",)
tool_bundle = {
"server_url": "http://www.example.com/{path_param}",

View File

@@ -1,7 +1,9 @@
from core.rag.datasource.vdb.analyticdb.analyticdb_vector import AnalyticdbVector
from core.rag.datasource.vdb.analyticdb.analyticdb_vector_openapi import AnalyticdbVectorOpenAPIConfig
from core.rag.datasource.vdb.analyticdb.analyticdb_vector_sql import AnalyticdbVectorBySqlConfig
from tests.integration_tests.vdb.test_vector_store import AbstractVectorTest, setup_mock_redis
from tests.integration_tests.vdb.test_vector_store import AbstractVectorTest
pytest_plugins = ("tests.integration_tests.vdb.test_vector_store",)
class AnalyticdbVectorTest(AbstractVectorTest):

View File

@@ -1,6 +1,10 @@
from core.rag.datasource.vdb.baidu.baidu_vector import BaiduConfig, BaiduVector
from tests.integration_tests.vdb.__mock.baiduvectordb import setup_baiduvectordb_mock
from tests.integration_tests.vdb.test_vector_store import AbstractVectorTest, get_example_text, setup_mock_redis
from tests.integration_tests.vdb.test_vector_store import AbstractVectorTest, get_example_text
pytest_plugins = (
"tests.integration_tests.vdb.test_vector_store",
"tests.integration_tests.vdb.__mock.baiduvectordb",
)
class BaiduVectorTest(AbstractVectorTest):

View File

@@ -4,9 +4,10 @@ from core.rag.datasource.vdb.chroma.chroma_vector import ChromaConfig, ChromaVec
from tests.integration_tests.vdb.test_vector_store import (
AbstractVectorTest,
get_example_text,
setup_mock_redis,
)
pytest_plugins = ("tests.integration_tests.vdb.test_vector_store",)
class ChromaVectorTest(AbstractVectorTest):
def __init__(self):

View File

@@ -4,9 +4,10 @@ import time
from core.rag.datasource.vdb.couchbase.couchbase_vector import CouchbaseConfig, CouchbaseVector
from tests.integration_tests.vdb.test_vector_store import (
AbstractVectorTest,
setup_mock_redis,
)
pytest_plugins = ("tests.integration_tests.vdb.test_vector_store",)
def wait_for_healthy_container(service_name="couchbase-server", timeout=300):
start_time = time.time()

View File

@@ -1,9 +1,10 @@
from core.rag.datasource.vdb.elasticsearch.elasticsearch_vector import ElasticSearchConfig, ElasticSearchVector
from tests.integration_tests.vdb.test_vector_store import (
AbstractVectorTest,
setup_mock_redis,
)
pytest_plugins = ("tests.integration_tests.vdb.test_vector_store",)
class ElasticSearchVectorTest(AbstractVectorTest):
def __init__(self):

View File

@@ -6,8 +6,12 @@ from holo_search_sdk.types import BaseQuantizationType, DistanceType, TokenizerT
from core.rag.datasource.vdb.hologres.hologres_vector import HologresVector, HologresVectorConfig
from core.rag.models.document import Document
from tests.integration_tests.vdb.__mock.hologres import setup_hologres_mock
from tests.integration_tests.vdb.test_vector_store import AbstractVectorTest, get_example_text, setup_mock_redis
from tests.integration_tests.vdb.test_vector_store import AbstractVectorTest, get_example_text
pytest_plugins = (
"tests.integration_tests.vdb.test_vector_store",
"tests.integration_tests.vdb.__mock.hologres",
)
MOCK = os.getenv("MOCK_SWITCH", "false").lower() == "true"

View File

@@ -1,6 +1,10 @@
from core.rag.datasource.vdb.huawei.huawei_cloud_vector import HuaweiCloudVector, HuaweiCloudVectorConfig
from tests.integration_tests.vdb.__mock.huaweicloudvectordb import setup_client_mock
from tests.integration_tests.vdb.test_vector_store import AbstractVectorTest, get_example_text, setup_mock_redis
from tests.integration_tests.vdb.test_vector_store import AbstractVectorTest, get_example_text
pytest_plugins = (
"tests.integration_tests.vdb.test_vector_store",
"tests.integration_tests.vdb.__mock.huaweicloudvectordb",
)
class HuaweiCloudVectorTest(AbstractVectorTest):

View File

@@ -3,9 +3,10 @@
from core.rag.datasource.vdb.iris.iris_vector import IrisVector, IrisVectorConfig
from tests.integration_tests.vdb.test_vector_store import (
AbstractVectorTest,
setup_mock_redis,
)
pytest_plugins = ("tests.integration_tests.vdb.test_vector_store",)
class IrisVectorTest(AbstractVectorTest):
"""Test suite for IRIS vector store implementation."""

View File

@@ -1,7 +1,9 @@
import os
from core.rag.datasource.vdb.lindorm.lindorm_vector import LindormVectorStore, LindormVectorStoreConfig
from tests.integration_tests.vdb.test_vector_store import AbstractVectorTest, setup_mock_redis
from tests.integration_tests.vdb.test_vector_store import AbstractVectorTest
pytest_plugins = ("tests.integration_tests.vdb.test_vector_store",)
class Config:

View File

@@ -1,9 +1,10 @@
from core.rag.datasource.vdb.matrixone.matrixone_vector import MatrixoneConfig, MatrixoneVector
from tests.integration_tests.vdb.test_vector_store import (
AbstractVectorTest,
setup_mock_redis,
)
pytest_plugins = ("tests.integration_tests.vdb.test_vector_store",)
class MatrixoneVectorTest(AbstractVectorTest):
def __init__(self):

View File

@@ -2,9 +2,10 @@ from core.rag.datasource.vdb.milvus.milvus_vector import MilvusConfig, MilvusVec
from tests.integration_tests.vdb.test_vector_store import (
AbstractVectorTest,
get_example_text,
setup_mock_redis,
)
pytest_plugins = ("tests.integration_tests.vdb.test_vector_store",)
class MilvusVectorTest(AbstractVectorTest):
def __init__(self):

View File

@@ -1,9 +1,10 @@
from core.rag.datasource.vdb.myscale.myscale_vector import MyScaleConfig, MyScaleVector
from tests.integration_tests.vdb.test_vector_store import (
AbstractVectorTest,
setup_mock_redis,
)
pytest_plugins = ("tests.integration_tests.vdb.test_vector_store",)
class MyScaleVectorTest(AbstractVectorTest):
def __init__(self):

View File

@@ -6,9 +6,10 @@ from core.rag.datasource.vdb.oceanbase.oceanbase_vector import (
)
from tests.integration_tests.vdb.test_vector_store import (
AbstractVectorTest,
setup_mock_redis,
)
pytest_plugins = ("tests.integration_tests.vdb.test_vector_store",)
@pytest.fixture
def oceanbase_vector():

View File

@@ -5,9 +5,10 @@ import psycopg2
from core.rag.datasource.vdb.opengauss.opengauss import OpenGauss, OpenGaussConfig
from tests.integration_tests.vdb.test_vector_store import (
AbstractVectorTest,
setup_mock_redis,
)
pytest_plugins = ("tests.integration_tests.vdb.test_vector_store",)
class OpenGaussTest(AbstractVectorTest):
def __init__(self):

View File

@@ -3,9 +3,10 @@ from core.rag.models.document import Document
from tests.integration_tests.vdb.test_vector_store import (
AbstractVectorTest,
get_example_text,
setup_mock_redis,
)
pytest_plugins = ("tests.integration_tests.vdb.test_vector_store",)
class OracleVectorTest(AbstractVectorTest):
def __init__(self):

View File

@@ -2,9 +2,10 @@ from core.rag.datasource.vdb.pgvecto_rs.pgvecto_rs import PGVectoRS, PgvectoRSCo
from tests.integration_tests.vdb.test_vector_store import (
AbstractVectorTest,
get_example_text,
setup_mock_redis,
)
pytest_plugins = ("tests.integration_tests.vdb.test_vector_store",)
class PGVectoRSVectorTest(AbstractVectorTest):
def __init__(self):

View File

@@ -1,10 +1,10 @@
from core.rag.datasource.vdb.pgvector.pgvector import PGVector, PGVectorConfig
from tests.integration_tests.vdb.test_vector_store import (
AbstractVectorTest,
get_example_text,
setup_mock_redis,
)
pytest_plugins = ("tests.integration_tests.vdb.test_vector_store",)
class PGVectorTest(AbstractVectorTest):
def __init__(self):

View File

@@ -1,9 +1,10 @@
from core.rag.datasource.vdb.pyvastbase.vastbase_vector import VastbaseVector, VastbaseVectorConfig
from tests.integration_tests.vdb.test_vector_store import (
AbstractVectorTest,
setup_mock_redis,
)
pytest_plugins = ("tests.integration_tests.vdb.test_vector_store",)
class VastbaseVectorTest(AbstractVectorTest):
def __init__(self):

View File

@@ -4,9 +4,10 @@ from core.rag.datasource.vdb.qdrant.qdrant_vector import QdrantConfig, QdrantVec
from core.rag.models.document import Document
from tests.integration_tests.vdb.test_vector_store import (
AbstractVectorTest,
setup_mock_redis,
)
pytest_plugins = ("tests.integration_tests.vdb.test_vector_store",)
class QdrantVectorTest(AbstractVectorTest):
def __init__(self):

View File

@@ -12,9 +12,10 @@ from tests.integration_tests.vdb.test_vector_store import (
AbstractVectorTest,
get_example_document,
get_example_text,
setup_mock_redis,
)
pytest_plugins = ("tests.integration_tests.vdb.test_vector_store",)
class TableStoreVectorTest(AbstractVectorTest):
def __init__(self, normalize_full_text_score: bool = False):

View File

@@ -1,8 +1,12 @@
from unittest.mock import MagicMock
from core.rag.datasource.vdb.tencent.tencent_vector import TencentConfig, TencentVector
from tests.integration_tests.vdb.__mock.tcvectordb import setup_tcvectordb_mock
from tests.integration_tests.vdb.test_vector_store import AbstractVectorTest, get_example_text, setup_mock_redis
from tests.integration_tests.vdb.test_vector_store import AbstractVectorTest, get_example_text
pytest_plugins = (
"tests.integration_tests.vdb.test_vector_store",
"tests.integration_tests.vdb.__mock.tcvectordb",
)
mock_client = MagicMock()
mock_client.list_databases.return_value = [{"name": "test"}]

View File

@@ -2,7 +2,9 @@ import pytest
from core.rag.datasource.vdb.tidb_vector.tidb_vector import TiDBVector, TiDBVectorConfig
from models.dataset import Document
from tests.integration_tests.vdb.test_vector_store import AbstractVectorTest, get_example_text, setup_mock_redis
from tests.integration_tests.vdb.test_vector_store import AbstractVectorTest, get_example_text
pytest_plugins = ("tests.integration_tests.vdb.test_vector_store",)
@pytest.fixture

View File

@@ -1,8 +1,9 @@
from core.rag.datasource.vdb.upstash.upstash_vector import UpstashVector, UpstashVectorConfig
from core.rag.models.document import Document
from tests.integration_tests.vdb.__mock.upstashvectordb import setup_upstashvector_mock
from tests.integration_tests.vdb.test_vector_store import AbstractVectorTest, get_example_text
pytest_plugins = ("tests.integration_tests.vdb.__mock.upstashvectordb",)
class UpstashVectorTest(AbstractVectorTest):
def __init__(self):

View File

@@ -1,6 +1,10 @@
from core.rag.datasource.vdb.vikingdb.vikingdb_vector import VikingDBConfig, VikingDBVector
from tests.integration_tests.vdb.__mock.vikingdb import setup_vikingdb_mock
from tests.integration_tests.vdb.test_vector_store import AbstractVectorTest, get_example_text, setup_mock_redis
from tests.integration_tests.vdb.test_vector_store import AbstractVectorTest, get_example_text
pytest_plugins = (
"tests.integration_tests.vdb.test_vector_store",
"tests.integration_tests.vdb.__mock.vikingdb",
)
class VikingDBVectorTest(AbstractVectorTest):

View File

@@ -1,9 +1,10 @@
from core.rag.datasource.vdb.weaviate.weaviate_vector import WeaviateConfig, WeaviateVector
from tests.integration_tests.vdb.test_vector_store import (
AbstractVectorTest,
setup_mock_redis,
)
pytest_plugins = ("tests.integration_tests.vdb.test_vector_store",)
class WeaviateVectorTest(AbstractVectorTest):
def __init__(self):

View File

@@ -13,9 +13,10 @@ from configs import dify_config
from core.app.entities.app_invoke_entities import InvokeFrom, UserFrom
from core.workflow.node_factory import DifyNodeFactory
from core.workflow.system_variables import build_system_variables
from tests.integration_tests.workflow.nodes.__mock.code_executor import setup_code_executor_mock
from tests.workflow_test_utils import build_test_graph_init_params
pytest_plugins = ("tests.integration_tests.workflow.nodes.__mock.code_executor",)
CODE_MAX_STRING_LENGTH = dify_config.CODE_MAX_STRING_LENGTH

View File

@@ -16,9 +16,10 @@ from core.tools.tool_file_manager import ToolFileManager
from core.workflow.node_factory import DifyNodeFactory
from core.workflow.node_runtime import DifyFileReferenceFactory
from core.workflow.system_variables import build_system_variables
from tests.integration_tests.workflow.nodes.__mock.http import setup_http_mock
from tests.workflow_test_utils import build_test_graph_init_params
pytest_plugins = ("tests.integration_tests.workflow.nodes.__mock.http",)
HTTP_REQUEST_CONFIG = HttpRequestNodeConfig(
max_connect_timeout=dify_config.HTTP_REQUEST_MAX_CONNECT_TIMEOUT,
max_read_timeout=dify_config.HTTP_REQUEST_MAX_READ_TIMEOUT,

View File

@@ -17,8 +17,7 @@ from extensions.ext_database import db
from tests.integration_tests.workflow.nodes.__mock.model import get_mocked_fetch_model_instance
from tests.workflow_test_utils import build_test_graph_init_params
"""FOR MOCK FIXTURES, DO NOT REMOVE"""
from tests.integration_tests.model_runtime.__mock.plugin_daemon import setup_model_mock
pytest_plugins = ("tests.integration_tests.model_runtime.__mock.plugin_daemon",)
def get_mocked_fetch_memory(memory_text: str):

View File

@@ -4,13 +4,14 @@ import pytest
from oss2 import Auth
from extensions.storage.aliyun_oss_storage import AliyunOssStorage
from tests.unit_tests.oss.__mock.aliyun_oss import setup_aliyun_oss_mock
from tests.unit_tests.oss.__mock.base import (
BaseStorageTest,
get_example_bucket,
get_example_folder,
)
pytest_plugins = ("tests.unit_tests.oss.__mock.aliyun_oss",)
class TestAliyunOss(BaseStorageTest):
@pytest.fixture(autouse=True)

View File

@@ -8,7 +8,8 @@ from tests.unit_tests.oss.__mock.base import (
BaseStorageTest,
get_example_bucket,
)
from tests.unit_tests.oss.__mock.tencent_cos import setup_tencent_cos_mock
pytest_plugins = ("tests.unit_tests.oss.__mock.tencent_cos",)
class TestTencentCos(BaseStorageTest):

View File

@@ -8,7 +8,8 @@ from tests.unit_tests.oss.__mock.base import (
BaseStorageTest,
get_example_bucket,
)
from tests.unit_tests.oss.__mock.volcengine_tos import setup_volcengine_tos_mock
pytest_plugins = ("tests.unit_tests.oss.__mock.volcengine_tos",)
class TestVolcengineTos(BaseStorageTest):