# # Copyright 2025 The InfiniFlow Authors. All Rights Reserved. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. # """ Mock heavy dependencies that graphrag/utils.py transitively imports, so unit tests can run without infrastructure services (Redis, Elasticsearch, etc.). """ import sys from unittest.mock import MagicMock _modules_to_mock = [ "quart", "common.connection_utils", "common.settings", "common.doc_store", "common.doc_store.doc_store_base", "rag.nlp", "rag.nlp.search", "rag.nlp.rag_tokenizer", "rag.utils.redis_conn", ] for mod_name in _modules_to_mock: if mod_name not in sys.modules: sys.modules[mod_name] = MagicMock() # Ensure `from common.connection_utils import timeout` returns a no-op decorator sys.modules["common.connection_utils"].timeout = lambda *a, **kw: (lambda fn: fn)