-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathpytest-unit.xml
More file actions
265 lines (263 loc) · 89.9 KB
/
pytest-unit.xml
File metadata and controls
265 lines (263 loc) · 89.9 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
<?xml version="1.0" encoding="utf-8"?><testsuites name="pytest tests"><testsuite name="pytest" errors="11" failures="37" skipped="0" tests="428" time="22.870" timestamp="2025-08-02T08:05:46.460771+08:00" hostname="MacBook-Pro-M1.local"><testcase classname="tests.performance.test_performance_integration.TestPerformanceIntegration" name="test_optimizer_manager_initialization" time="0.020" /><testcase classname="tests.performance.test_performance_integration.TestPerformanceIntegration" name="test_batch_processing_optimization" time="0.004"><failure message="AttributeError: 'BatchOptimizer' object has no attribute 'process_batch'">tests/performance/test_performance_integration.py:105: in test_batch_processing_optimization
results = await optimizer_manager.optimize_batch_processing(
src/chinese_graphrag/performance/optimizer_manager.py:298: in optimize_batch_processing
result = await self.batch_optimizer.process_batch(items, process_func, **kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
E AttributeError: 'BatchOptimizer' object has no attribute 'process_batch'</failure></testcase><testcase classname="tests.performance.test_performance_integration.TestPerformanceIntegration" name="test_query_optimization" time="0.004"><failure message="AttributeError: 'QueryOptimizer' object has no attribute 'get_cached_result'">tests/performance/test_performance_integration.py:137: in test_query_optimization
result1 = await optimizer_manager.optimize_query(
src/chinese_graphrag/performance/optimizer_manager.py:323: in optimize_query
cached_result = await self.query_optimizer.get_cached_result(query, **kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
E AttributeError: 'QueryOptimizer' object has no attribute 'get_cached_result'</failure></testcase><testcase classname="tests.performance.test_performance_integration.TestPerformanceIntegration" name="test_cost_optimization" time="0.004"><failure message="AttributeError: 'CostOptimizer' object has no attribute 'track_usage'">tests/performance/test_performance_integration.py:164: in test_cost_optimization
recommendation = await optimizer_manager.optimize_model_usage(
src/chinese_graphrag/performance/optimizer_manager.py:354: in optimize_model_usage
await self.cost_optimizer.track_usage(
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
E AttributeError: 'CostOptimizer' object has no attribute 'track_usage'</failure></testcase><testcase classname="tests.performance.test_performance_integration.TestPerformanceIntegration" name="test_performance_monitoring" time="2.515" /><testcase classname="tests.performance.test_performance_integration.TestPerformanceIntegration" name="test_benchmark_execution" time="0.008"><failure message="RuntimeError: asyncio.run() cannot be called from a running event loop">tests/performance/test_performance_integration.py:239: in test_benchmark_execution
results = await optimizer_manager.run_performance_benchmark(
src/chinese_graphrag/performance/optimizer_manager.py:440: in run_performance_benchmark
results = self.benchmark_runner.run_comparative_benchmark(test_configs, iterations)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
src/chinese_graphrag/performance/performance_monitor.py:578: in run_comparative_benchmark
result = asyncio.run(self.run_benchmark(
../../.local/share/uv/python/cpython-3.11.3-macos-aarch64-none/lib/python3.11/asyncio/runners.py:186: in run
raise RuntimeError(
E RuntimeError: asyncio.run() cannot be called from a running event loop</failure></testcase><testcase classname="tests.performance.test_performance_integration.TestPerformanceIntegration" name="test_optimization_report" time="0.005"><failure message="AttributeError: 'BatchOptimizer' object has no attribute 'process_batch'">tests/performance/test_performance_integration.py:261: in test_optimization_report
await optimizer_manager.optimize_batch_processing(
src/chinese_graphrag/performance/optimizer_manager.py:298: in optimize_batch_processing
result = await self.batch_optimizer.process_batch(items, process_func, **kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
E AttributeError: 'BatchOptimizer' object has no attribute 'process_batch'</failure></testcase><testcase classname="tests.performance.test_performance_integration.TestPerformanceIntegration" name="test_config_persistence" time="0.003" /><testcase classname="tests.performance.test_performance_integration.TestPerformanceIntegration" name="test_context_manager" time="0.004" /><testcase classname="tests.performance.test_performance_integration.TestPerformanceIntegration" name="test_alert_handling" time="0.004"><failure message="TypeError: object NoneType can't be used in 'await' expression">tests/performance/test_performance_integration.py:328: in test_alert_handling
await optimizer_manager._handle_alert("memory_usage", 90.0, 85.0)
E TypeError: object NoneType can't be used in 'await' expression</failure></testcase><testcase classname="tests.performance.test_performance_integration.TestPerformanceIntegration" name="test_error_handling" time="0.004"><failure message="AttributeError: 'BatchOptimizer' object has no attribute 'process_batch'">tests/performance/test_performance_integration.py:353: in test_error_handling
results = await optimizer_manager.optimize_batch_processing(
src/chinese_graphrag/performance/optimizer_manager.py:298: in optimize_batch_processing
result = await self.batch_optimizer.process_batch(items, process_func, **kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
E AttributeError: 'BatchOptimizer' object has no attribute 'process_batch'</failure></testcase><testcase classname="tests.test_config.test_loader.TestConfigLoader" name="test_load_valid_config" time="0.004" /><testcase classname="tests.test_config.test_loader.TestConfigLoader" name="test_env_var_substitution" time="0.003" /><testcase classname="tests.test_config.test_loader.TestConfigLoader" name="test_env_var_with_default" time="0.003" /><testcase classname="tests.test_config.test_loader.TestConfigLoader" name="test_missing_env_var_error" time="0.002" /><testcase classname="tests.test_config.test_loader.TestConfigLoader" name="test_invalid_model_type_error" time="0.002" /><testcase classname="tests.test_config.test_loader.TestConfigLoader" name="test_missing_default_model_error" time="0.002" /><testcase classname="tests.test_config.test_loader.TestConfigLoader" name="test_create_default_config" time="0.010" /><testcase classname="tests.test_config.test_loader.TestConfigLoader" name="test_nonexistent_config_file" time="0.000" /><testcase classname="tests.test_config.test_loader.TestConfigLoader" name="test_invalid_yaml_syntax" time="0.001" /><testcase classname="tests.test_config.test_models.TestLLMConfig" name="test_valid_llm_config" time="0.000" /><testcase classname="tests.test_config.test_models.TestLLMConfig" name="test_invalid_temperature" time="0.000" /><testcase classname="tests.test_config.test_models.TestLLMConfig" name="test_azure_openai_config" time="0.000" /><testcase classname="tests.test_config.test_models.TestEmbeddingConfig" name="test_openai_embedding_config" time="0.000" /><testcase classname="tests.test_config.test_models.TestEmbeddingConfig" name="test_bge_m3_config" time="0.000" /><testcase classname="tests.test_config.test_models.TestEmbeddingConfig" name="test_invalid_batch_size" time="0.000" /><testcase classname="tests.test_config.test_models.TestVectorStoreConfig" name="test_lancedb_config" time="0.000" /><testcase classname="tests.test_config.test_models.TestGraphRAGConfig" name="test_minimal_config" time="0.000" /><testcase classname="tests.test_config.test_models.TestGraphRAGConfig" name="test_get_llm_config" time="0.000" /><testcase classname="tests.test_config.test_models.TestGraphRAGConfig" name="test_get_embedding_config" time="0.000" /><testcase classname="tests.test_config.test_models.TestGraphRAGConfig" name="test_default_model_configs" time="0.000" /><testcase classname="tests.test_config.test_strategy.TestModelPerformanceMetrics" name="test_record_and_retrieve_metrics" time="0.000" /><testcase classname="tests.test_config.test_strategy.TestDefaultModelSelectionStrategy" name="test_select_default_models" time="0.000" /><testcase classname="tests.test_config.test_strategy.TestCostOptimizedSelectionStrategy" name="test_cost_optimization_disabled" time="0.000" /><testcase classname="tests.test_config.test_strategy.TestCostOptimizedSelectionStrategy" name="test_cost_optimization_enabled" time="0.000" /><testcase classname="tests.test_config.test_strategy.TestCostOptimizedSelectionStrategy" name="test_chinese_embedding_preference" time="0.000" /><testcase classname="tests.test_config.test_strategy.TestAdaptiveSelectionStrategy" name="test_task_based_model_selection" time="0.000" /><testcase classname="tests.test_config.test_strategy.TestAdaptiveSelectionStrategy" name="test_chinese_context_preference" time="0.000" /><testcase classname="tests.test_config.test_strategy.TestModelSelector" name="test_select_llm_model" time="0.000" /><testcase classname="tests.test_config.test_strategy.TestModelSelector" name="test_select_embedding_model" time="0.000" /><testcase classname="tests.test_config.test_strategy.TestModelSelector" name="test_fallback_model_selection" time="0.000" /><testcase classname="tests.test_config.test_strategy.TestModelSelector" name="test_record_model_performance" time="0.000" /><testcase classname="tests.test_config_system.TestConfigLoader" name="test_load_valid_config" time="0.004" /><testcase classname="tests.test_config_system.TestConfigLoader" name="test_load_config_with_env_vars" time="0.004" /><testcase classname="tests.test_config_system.TestConfigLoader" name="test_load_nonexistent_config" time="0.001" /><testcase classname="tests.test_config_system.TestConfigLoader" name="test_create_default_config" time="0.010"><failure message="src.chinese_graphrag.config.loader.ConfigurationError: 載入配置時發生錯誤: 環境變數 GRAPHRAG_API_KEY 未設定">src/chinese_graphrag/config/loader.py:62: in load_config
processed_config = self._substitute_env_vars(raw_config)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
src/chinese_graphrag/config/loader.py:94: in _substitute_env_vars
return {k: self._substitute_env_vars(v) for k, v in config.items()}
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
src/chinese_graphrag/config/loader.py:94: in <dictcomp>
return {k: self._substitute_env_vars(v) for k, v in config.items()}
^^^^^^^^^^^^^^^^^^^^^^^^^^^^
src/chinese_graphrag/config/loader.py:94: in _substitute_env_vars
return {k: self._substitute_env_vars(v) for k, v in config.items()}
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
src/chinese_graphrag/config/loader.py:94: in <dictcomp>
return {k: self._substitute_env_vars(v) for k, v in config.items()}
^^^^^^^^^^^^^^^^^^^^^^^^^^^^
src/chinese_graphrag/config/loader.py:94: in _substitute_env_vars
return {k: self._substitute_env_vars(v) for k, v in config.items()}
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
src/chinese_graphrag/config/loader.py:94: in <dictcomp>
return {k: self._substitute_env_vars(v) for k, v in config.items()}
^^^^^^^^^^^^^^^^^^^^^^^^^^^^
src/chinese_graphrag/config/loader.py:98: in _substitute_env_vars
return self._replace_env_vars_in_string(config)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
src/chinese_graphrag/config/loader.py:116: in _replace_env_vars_in_string
return self.env_pattern.sub(replace_match, value)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
src/chinese_graphrag/config/loader.py:113: in replace_match
raise ConfigurationError(f"環境變數 {env_var} 未設定")
E src.chinese_graphrag.config.loader.ConfigurationError: 環境變數 GRAPHRAG_API_KEY 未設定
During handling of the above exception, another exception occurred:
tests/test_config_system.py:137: in test_create_default_config
config = loader.load_config()
^^^^^^^^^^^^^^^^^^^^
src/chinese_graphrag/config/loader.py:78: in load_config
raise ConfigurationError(f"載入配置時發生錯誤: {e}")
E src.chinese_graphrag.config.loader.ConfigurationError: 載入配置時發生錯誤: 環境變數 GRAPHRAG_API_KEY 未設定</failure></testcase><testcase classname="tests.test_config_system.TestEnvironmentManager" name="test_get_env_var_with_default" time="0.000" /><testcase classname="tests.test_config_system.TestEnvironmentManager" name="test_get_env_var_required_missing" time="0.000" /><testcase classname="tests.test_config_system.TestEnvironmentManager" name="test_type_conversion" time="0.001" /><testcase classname="tests.test_config_system.TestEnvironmentManager" name="test_load_env_file" time="0.001" /><testcase classname="tests.test_config_system.TestConfigValidator" name="test_validate_valid_config" time="0.001" /><testcase classname="tests.test_config_system.TestConfigValidator" name="test_validate_invalid_chunk_config" time="0.000" /><testcase classname="tests.test_config_system.TestConfigValidator" name="test_validate_missing_default_models" time="0.000" /><testcase classname="tests.test_config_system.TestConfigIntegration" name="test_full_config_workflow" time="0.004" /><testcase classname="tests.test_config_system.TestConfigIntegration" name="test_config_with_validation_warnings" time="0.004" /><testcase classname="tests.test_embeddings.test_chinese_optimized.TestChineseEmbeddingConfig" name="test_default_config" time="0.000" /><testcase classname="tests.test_embeddings.test_chinese_optimized.TestChineseEmbeddingConfig" name="test_custom_config" time="0.000" /><testcase classname="tests.test_embeddings.test_chinese_optimized.TestChineseOptimizedEmbeddingService" name="test_init" time="0.002" /><testcase classname="tests.test_embeddings.test_chinese_optimized.TestChineseOptimizedEmbeddingService" name="test_build_chinese_char_weights" time="0.001" /><testcase classname="tests.test_embeddings.test_chinese_optimized.TestChineseOptimizedEmbeddingService" name="test_calculate_chinese_weight" time="0.003" /><testcase classname="tests.test_embeddings.test_chinese_optimized.TestChineseOptimizedEmbeddingService" name="test_preprocess_texts" time="0.292" /><testcase classname="tests.test_embeddings.test_chinese_optimized.TestChineseOptimizedEmbeddingService" name="test_postprocess_embeddings" time="0.002" /><testcase classname="tests.test_embeddings.test_chinese_optimized.TestChineseOptimizedEmbeddingService" name="test_embed_texts_success" time="0.003" /><testcase classname="tests.test_embeddings.test_chinese_optimized.TestChineseOptimizedEmbeddingService" name="test_embed_texts_fallback" time="0.004" /><testcase classname="tests.test_embeddings.test_chinese_optimized.TestChineseOptimizedEmbeddingService" name="test_embed_texts_all_fail" time="0.005" /><testcase classname="tests.test_embeddings.test_chinese_optimized.TestChineseOptimizedEmbeddingService" name="test_evaluate_chinese_quality" time="0.007"><failure message="assert 0 <= -10.62863939781189">tests/test_embeddings/test_chinese_optimized.py:265: in test_evaluate_chinese_quality
assert 0 <= overall_quality["overall"] <= 1
E assert 0 <= -10.62863939781189</failure></testcase><testcase classname="tests.test_embeddings.test_chinese_optimized.TestChineseOptimizedEmbeddingService" name="test_is_chinese_dominant" time="0.002" /><testcase classname="tests.test_embeddings.test_chinese_optimized.TestChineseOptimizedEmbeddingService" name="test_get_model_info" time="0.001" /><testcase classname="tests.test_embeddings.test_chinese_optimized.TestCreateChineseOptimizedService" name="test_create_chinese_optimized_service" time="0.001" /><testcase classname="tests.test_embeddings.test_chinese_optimized.TestCreateChineseOptimizedService" name="test_create_with_default_params" time="0.001" /><testcase classname="tests.test_embeddings.test_embedding_manager.TestEmbeddingManager" name="test_init" time="0.001" /><testcase classname="tests.test_embeddings.test_embedding_manager.TestEmbeddingManager" name="test_register_service" time="0.001" /><testcase classname="tests.test_embeddings.test_embedding_manager.TestEmbeddingManager" name="test_unregister_service" time="0.001" /><testcase classname="tests.test_embeddings.test_embedding_manager.TestEmbeddingManager" name="test_get_service_not_found" time="0.001" /><testcase classname="tests.test_embeddings.test_embedding_manager.TestEmbeddingManager" name="test_list_services" time="0.001" /><testcase classname="tests.test_embeddings.test_embedding_manager.TestEmbeddingManager" name="test_load_all_models" time="0.003" /><testcase classname="tests.test_embeddings.test_embedding_manager.TestEmbeddingManager" name="test_embed_texts_success" time="0.008"><failure message="assert False + where False = isinstance([array([-1.13889137e-02, 4.02984582e-02, -7.14199152e-03, -9.93312150e-03,\n -1.27413706e-03, 2.71750288e-03, 8.29557236e-03, -5.71021810e-02,\n -6.65532332e-03, 1.34520540e-02, 2.24470738e-02, 6.41562417e-02,\n -6.32207766e-02, 7.83299580e-02, 7.12678675e-03, 8.99494346e-03,\n -9.64980759e-03, 6.15406334e-02, 4.08676639e-02, 3.23025361e-02,\n -7.89975226e-02, 6.24410547e-02, -2.93908883e-02, -3.62342745e-02,\n 3.50183286e-02, 5.28898947e-02, 4.08177786e-02, 2.07100855e-03,\n 1.79062858e-02, -4.11053300e-02, -1.91107932e-02, -4.97762254e-03,\n -2.74677873e-02, 1.90084595e-02, 1.89875867e-02, 4.49162386e-02,\n 2.24098805e-02, 2.48431079e-02, -3.66251655e-02, -6.19020453e-03,\n 5.51109836e-02, 5.81976883e-02, 4.87050563e-02, -2.46868059e-02,\n -2.07249052e-03, -3.91178206e-03, -1.62500814e-02, 2.37108096e-02,\n 6.60295114e-02, 7.14866221e-02, 1.69093292e-02, -8.08981154e-03,\n -1.64567828e-02, -3.21823955e-02, 1.81213394e-02, -5.61930574e-02,\n 5.74375801e-02, 1.51817910e-02, -3.72322947e-02, -1.81602836e-02,\n 4.91501987e-02, -5.34110740e-02, 4.84664440e-02, -3.29971942e-0... 8.21162947e-03, 2.93243187e-03, 6.70212805e-02,\n 1.01365680e-02, -3.98398675e-02, -1.37091684e-03, -1.34873064e-03,\n 5.46361469e-02, 7.01283962e-02, -3.58214346e-03, -4.93264534e-02,\n -1.94410030e-02, 8.94957334e-02, 2.96605891e-03, 4.84878682e-02,\n 5.81242889e-03, 2.97660287e-02, -2.11778153e-02, 1.96302235e-02,\n 2.40183417e-02, -1.26965893e-02, -1.55930454e-02, -2.97256489e-03,\n 5.75951301e-04, -1.64029095e-02, 2.78782006e-02, -4.03262824e-02,\n 1.33338673e-02, 6.91695586e-02, -2.50774790e-02, 2.17032433e-02,\n 3.26446705e-02, -4.50381748e-02, 6.48052432e-03, -3.14064473e-02,\n 5.17506488e-02, 1.42885949e-02, -1.94816536e-03, -2.69040111e-02,\n -6.35158503e-03, 2.75614834e-03, 1.58856828e-02, 2.46159807e-02,\n -2.08055303e-02, -1.45798568e-02, -2.30633225e-02, -1.78373735e-02,\n -5.46370372e-02, -5.46246814e-03, -3.22346166e-02, -7.27648884e-02,\n -1.15674650e-02, 2.70946659e-02, 3.61098796e-02, 3.96444090e-02,\n -2.00189129e-02, -2.69983783e-02, -3.58650158e-03, 1.38043566e-02,\n -2.43540537e-02, -4.61542197e-02, 3.77282244e-03, -4.92308922e-02],\n dtype=float32)], EmbeddingResult)">tests/test_embeddings/test_embedding_manager.py:150: in test_embed_texts_success
assert isinstance(result, EmbeddingResult)
E assert False
E + where False = isinstance([array([-1.13889137e-02, 4.02984582e-02, -7.14199152e-03, -9.93312150e-03,\n -1.27413706e-03, 2.71750288e-03, 8.29557236e-03, -5.71021810e-02,\n -6.65532332e-03, 1.34520540e-02, 2.24470738e-02, 6.41562417e-02,\n -6.32207766e-02, 7.83299580e-02, 7.12678675e-03, 8.99494346e-03,\n -9.64980759e-03, 6.15406334e-02, 4.08676639e-02, 3.23025361e-02,\n -7.89975226e-02, 6.24410547e-02, -2.93908883e-02, -3.62342745e-02,\n 3.50183286e-02, 5.28898947e-02, 4.08177786e-02, 2.07100855e-03,\n 1.79062858e-02, -4.11053300e-02, -1.91107932e-02, -4.97762254e-03,\n -2.74677873e-02, 1.90084595e-02, 1.89875867e-02, 4.49162386e-02,\n 2.24098805e-02, 2.48431079e-02, -3.66251655e-02, -6.19020453e-03,\n 5.51109836e-02, 5.81976883e-02, 4.87050563e-02, -2.46868059e-02,\n -2.07249052e-03, -3.91178206e-03, -1.62500814e-02, 2.37108096e-02,\n 6.60295114e-02, 7.14866221e-02, 1.69093292e-02, -8.08981154e-03,\n -1.64567828e-02, -3.21823955e-02, 1.81213394e-02, -5.61930574e-02,\n 5.74375801e-02, 1.51817910e-02, -3.72322947e-02, -1.81602836e-02,\n 4.91501987e-02, -5.34110740e-02, 4.84664440e-02, -3.29971942e-0... 8.21162947e-03, 2.93243187e-03, 6.70212805e-02,\n 1.01365680e-02, -3.98398675e-02, -1.37091684e-03, -1.34873064e-03,\n 5.46361469e-02, 7.01283962e-02, -3.58214346e-03, -4.93264534e-02,\n -1.94410030e-02, 8.94957334e-02, 2.96605891e-03, 4.84878682e-02,\n 5.81242889e-03, 2.97660287e-02, -2.11778153e-02, 1.96302235e-02,\n 2.40183417e-02, -1.26965893e-02, -1.55930454e-02, -2.97256489e-03,\n 5.75951301e-04, -1.64029095e-02, 2.78782006e-02, -4.03262824e-02,\n 1.33338673e-02, 6.91695586e-02, -2.50774790e-02, 2.17032433e-02,\n 3.26446705e-02, -4.50381748e-02, 6.48052432e-03, -3.14064473e-02,\n 5.17506488e-02, 1.42885949e-02, -1.94816536e-03, -2.69040111e-02,\n -6.35158503e-03, 2.75614834e-03, 1.58856828e-02, 2.46159807e-02,\n -2.08055303e-02, -1.45798568e-02, -2.30633225e-02, -1.78373735e-02,\n -5.46370372e-02, -5.46246814e-03, -3.22346166e-02, -7.27648884e-02,\n -1.15674650e-02, 2.70946659e-02, 3.61098796e-02, 3.96444090e-02,\n -2.00189129e-02, -2.69983783e-02, -3.58650158e-03, 1.38043566e-02,\n -2.43540537e-02, -4.61542197e-02, 3.77282244e-03, -4.92308922e-02],\n dtype=float32)], EmbeddingResult)</failure></testcase><testcase classname="tests.test_embeddings.test_embedding_manager.TestEmbeddingManager" name="test_embed_texts_fallback" time="0.003"><failure message="AttributeError: 'list' object has no attribute 'model_name'">tests/test_embeddings/test_embedding_manager.py:177: in test_embed_texts_fallback
assert result.model_name == "fallback"
^^^^^^^^^^^^^^^^^
E AttributeError: 'list' object has no attribute 'model_name'</failure></testcase><testcase classname="tests.test_embeddings.test_embedding_manager.TestEmbeddingManager" name="test_embed_texts_no_fallback" time="0.002"><failure message="Failed: DID NOT RAISE <class 'Exception'>">tests/test_embeddings/test_embedding_manager.py:191: in test_embed_texts_no_fallback
with pytest.raises(Exception, match="服務失敗"):
E Failed: DID NOT RAISE <class 'Exception'></failure></testcase><testcase classname="tests.test_embeddings.test_embedding_manager.TestEmbeddingManager" name="test_smart_route_request_fastest" time="0.002"><failure message="TypeError: EmbeddingManager.embed_texts() got an unexpected keyword argument 'service_name'">tests/test_embeddings/test_embedding_manager.py:214: in test_smart_route_request_fastest
result = await manager.smart_route_request(texts, strategy="fastest")
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
src/chinese_graphrag/embeddings/manager.py:625: in smart_route_request
return await self.embed_texts(texts, service_name=best_service, **kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
E TypeError: EmbeddingManager.embed_texts() got an unexpected keyword argument 'service_name'</failure></testcase><testcase classname="tests.test_embeddings.test_embedding_manager.TestEmbeddingManager" name="test_smart_route_request_least_loaded" time="0.002"><failure message="TypeError: EmbeddingManager.embed_texts() got an unexpected keyword argument 'service_name'">tests/test_embeddings/test_embedding_manager.py:239: in test_smart_route_request_least_loaded
result = await manager.smart_route_request(texts, strategy="least_loaded")
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
src/chinese_graphrag/embeddings/manager.py:625: in smart_route_request
return await self.embed_texts(texts, service_name=best_service, **kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
E TypeError: EmbeddingManager.embed_texts() got an unexpected keyword argument 'service_name'</failure></testcase><testcase classname="tests.test_embeddings.test_embedding_manager.TestEmbeddingManager" name="test_health_check_all" time="0.002" /><testcase classname="tests.test_embeddings.test_embedding_manager.TestEmbeddingManager" name="test_get_metrics_summary" time="0.001" /><testcase classname="tests.test_embeddings.test_embedding_manager.TestEmbeddingManager" name="test_context_manager" time="0.003" /><testcase classname="tests.test_embeddings.test_performance_optimization.TestEmbeddingCache" name="test_memory_cache_basic" time="0.000"><error message="failed on setup with "TypeError: CacheEntry.__init__() got an unexpected keyword argument 'embedding'"">tests/test_embeddings/test_performance_optimization.py:37: in cache_entry
return CacheEntry(
E TypeError: CacheEntry.__init__() got an unexpected keyword argument 'embedding'</error></testcase><testcase classname="tests.test_embeddings.test_performance_optimization.TestEmbeddingCache" name="test_memory_cache_lru_eviction" time="0.001"><failure message="TypeError: CacheEntry.__init__() got an unexpected keyword argument 'embedding'">tests/test_embeddings/test_performance_optimization.py:80: in test_memory_cache_lru_eviction
entry = CacheEntry(
E TypeError: CacheEntry.__init__() got an unexpected keyword argument 'embedding'</failure></testcase><testcase classname="tests.test_embeddings.test_performance_optimization.TestEmbeddingCache" name="test_memory_cache_lfu_eviction" time="0.001"><failure message="TypeError: CacheEntry.__init__() got an unexpected keyword argument 'embedding'">tests/test_embeddings/test_performance_optimization.py:104: in test_memory_cache_lfu_eviction
entry = CacheEntry(
E TypeError: CacheEntry.__init__() got an unexpected keyword argument 'embedding'</failure></testcase><testcase classname="tests.test_embeddings.test_performance_optimization.TestEmbeddingCache" name="test_disk_cache_basic" time="0.000"><error message="failed on setup with "TypeError: CacheEntry.__init__() got an unexpected keyword argument 'embedding'"">tests/test_embeddings/test_performance_optimization.py:37: in cache_entry
return CacheEntry(
E TypeError: CacheEntry.__init__() got an unexpected keyword argument 'embedding'</error></testcase><testcase classname="tests.test_embeddings.test_performance_optimization.TestEmbeddingCache" name="test_disk_cache_persistence" time="0.000"><error message="failed on setup with "TypeError: CacheEntry.__init__() got an unexpected keyword argument 'embedding'"">tests/test_embeddings/test_performance_optimization.py:37: in cache_entry
return CacheEntry(
E TypeError: CacheEntry.__init__() got an unexpected keyword argument 'embedding'</error></testcase><testcase classname="tests.test_embeddings.test_performance_optimization.TestEmbeddingCache" name="test_multi_level_cache" time="0.000"><error message="failed on setup with "TypeError: CacheEntry.__init__() got an unexpected keyword argument 'embedding'"">tests/test_embeddings/test_performance_optimization.py:37: in cache_entry
return CacheEntry(
E TypeError: CacheEntry.__init__() got an unexpected keyword argument 'embedding'</error></testcase><testcase classname="tests.test_embeddings.test_performance_optimization.TestEmbeddingCache" name="test_multi_level_cache_promotion" time="0.002"><failure message="TypeError: CacheEntry.__init__() got an unexpected keyword argument 'embedding'">tests/test_embeddings/test_performance_optimization.py:203: in test_multi_level_cache_promotion
entry = CacheEntry(
E TypeError: CacheEntry.__init__() got an unexpected keyword argument 'embedding'</failure></testcase><testcase classname="tests.test_embeddings.test_performance_optimization.TestEmbeddingCache" name="test_cache_factory" time="0.002" /><testcase classname="tests.test_embeddings.test_performance_optimization.TestEmbeddingManagerIntegration" name="test_manager_with_cache" time="0.002"><failure message="TypeError: EmbeddingManager.__init__() got an unexpected keyword argument 'embedding_service'">tests/test_embeddings/test_performance_optimization.py:278: in test_manager_with_cache
manager = EmbeddingManager(
E TypeError: EmbeddingManager.__init__() got an unexpected keyword argument 'embedding_service'</failure></testcase><testcase classname="tests.test_embeddings.test_performance_optimization.TestEmbeddingManagerIntegration" name="test_manager_batch_processing" time="0.001"><failure message="TypeError: EmbeddingManager.__init__() got an unexpected keyword argument 'embedding_service'">tests/test_embeddings/test_performance_optimization.py:299: in test_manager_batch_processing
manager = EmbeddingManager(
E TypeError: EmbeddingManager.__init__() got an unexpected keyword argument 'embedding_service'</failure></testcase><testcase classname="tests.test_embeddings.test_performance_optimization.TestEmbeddingManagerIntegration" name="test_manager_error_handling" time="0.001"><failure message="TypeError: EmbeddingManager.__init__() got an unexpected keyword argument 'embedding_service'">tests/test_embeddings/test_performance_optimization.py:319: in test_manager_error_handling
manager = EmbeddingManager(embedding_service=failing_service)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
E TypeError: EmbeddingManager.__init__() got an unexpected keyword argument 'embedding_service'</failure></testcase><testcase classname="tests.test_embeddings.test_performance_optimization.TestEmbeddingManagerIntegration" name="test_manager_metrics" time="0.001"><failure message="TypeError: EmbeddingManager.__init__() got an unexpected keyword argument 'embedding_service'">tests/test_embeddings/test_performance_optimization.py:328: in test_manager_metrics
manager = EmbeddingManager(embedding_service=mock_embedding_service)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
E TypeError: EmbeddingManager.__init__() got an unexpected keyword argument 'embedding_service'</failure></testcase><testcase classname="tests.test_exception_handling.TestChineseGraphRAGError" name="test_basic_error_creation" time="0.000" /><testcase classname="tests.test_exception_handling.TestChineseGraphRAGError" name="test_error_with_full_metadata" time="0.000" /><testcase classname="tests.test_exception_handling.TestChineseGraphRAGError" name="test_error_serialization" time="0.000" /><testcase classname="tests.test_exception_handling.TestSpecificErrors" name="test_system_error" time="0.000" /><testcase classname="tests.test_exception_handling.TestSpecificErrors" name="test_configuration_error" time="0.000" /><testcase classname="tests.test_exception_handling.TestSpecificErrors" name="test_validation_error" time="0.000" /><testcase classname="tests.test_exception_handling.TestSpecificErrors" name="test_processing_error" time="0.000" /><testcase classname="tests.test_exception_handling.TestSpecificErrors" name="test_resource_error" time="0.000" /><testcase classname="tests.test_exception_handling.TestSpecificErrors" name="test_network_error" time="0.000" /><testcase classname="tests.test_exception_handling.TestSpecificErrors" name="test_security_error" time="0.000" /><testcase classname="tests.test_exception_handling.TestGlobalErrorHandler" name="test_handler_creation" time="0.000"><failure message="assert 0 > 0 + where 0 = len([]) + where [] = <src.chinese_graphrag.exceptions.handlers.GlobalErrorHandler object at 0x340d4a1d0>.handlers">tests/test_exception_handling.py:136: in test_handler_creation
assert len(handler.handlers) > 0
E assert 0 > 0
E + where 0 = len([])
E + where [] = <src.chinese_graphrag.exceptions.handlers.GlobalErrorHandler object at 0x340d4a1d0>.handlers</failure></testcase><testcase classname="tests.test_exception_handling.TestGlobalErrorHandler" name="test_error_handling_strategies" time="0.001"><failure message="src.chinese_graphrag.exceptions.base.ValidationError: [VALIDATIONERROR_0608] 測試驗證錯誤">tests/test_exception_handling.py:148: in test_error_handling_strategies
result = handler.handle_error(error, strategy=HandlingStrategy.LOG)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
src/chinese_graphrag/exceptions/handlers.py:246: in handle_error
raise error
E src.chinese_graphrag.exceptions.base.ValidationError: [VALIDATIONERROR_0608] 測試驗證錯誤</failure></testcase><testcase classname="tests.test_exception_handling.TestGlobalErrorHandler" name="test_retry_strategy" time="0.001"><failure message="AttributeError: 'GlobalErrorHandler' object has no attribute 'HandlingStrategy'">tests/test_exception_handling.py:161: in test_retry_strategy
strategy=handler.HandlingStrategy.RETRY,
^^^^^^^^^^^^^^^^^^^^^^^^
E AttributeError: 'GlobalErrorHandler' object has no attribute 'HandlingStrategy'</failure></testcase><testcase classname="tests.test_exception_handling.TestRetryPolicies" name="test_exponential_backoff_policy" time="0.000"><failure message="TypeError: RetryPolicy.should_retry() missing 1 required positional argument: 'exception'">tests/test_exception_handling.py:186: in test_exponential_backoff_policy
assert policy.should_retry(1) is True
^^^^^^^^^^^^^^^^^^^^^^
E TypeError: RetryPolicy.should_retry() missing 1 required positional argument: 'exception'</failure></testcase><testcase classname="tests.test_exception_handling.TestRetryPolicies" name="test_linear_backoff_policy" time="0.000"><failure message="TypeError: RetryPolicy.__init__() got an unexpected keyword argument 'max_delay'">tests/test_exception_handling.py:192: in test_linear_backoff_policy
policy = LinearBackoffPolicy(
src/chinese_graphrag/exceptions/retry.py:94: in __init__
super().__init__(**kwargs)
E TypeError: RetryPolicy.__init__() got an unexpected keyword argument 'max_delay'</failure></testcase><testcase classname="tests.test_exception_handling.TestRetryPolicies" name="test_fixed_delay_policy" time="0.000"><failure message="TypeError: RetryPolicy.should_retry() missing 1 required positional argument: 'exception'">tests/test_exception_handling.py:213: in test_fixed_delay_policy
assert policy.should_retry(3) is True
^^^^^^^^^^^^^^^^^^^^^^
E TypeError: RetryPolicy.should_retry() missing 1 required positional argument: 'exception'</failure></testcase><testcase classname="tests.test_exception_handling.TestRetryPolicies" name="test_retry_decorator" time="0.214" /><testcase classname="tests.test_exception_handling.TestRetryPolicies" name="test_retry_decorator_failure" time="0.108" /><testcase classname="tests.test_exception_handling.TestRetryPolicies" name="test_async_retry_decorator" time="0.210" /><testcase classname="tests.test_exception_handling.TestErrorHandlerRegistry" name="test_get_error_handler" time="0.001" /><testcase classname="tests.test_exception_handling.TestErrorHandlerRegistry" name="test_singleton_pattern" time="0.001" /><testcase classname="tests.test_exception_handling.TestThreadSafety" name="test_concurrent_error_handling" time="0.003" /><testcase classname="tests.test_exceptions.test_consistency.TestConsistencyIssue" name="test_issue_creation" time="0.001" /><testcase classname="tests.test_exceptions.test_consistency.TestConsistencyIssue" name="test_issue_serialization" time="0.001" /><testcase classname="tests.test_exceptions.test_consistency.TestConsistencyReport" name="test_report_creation" time="0.001" /><testcase classname="tests.test_exceptions.test_consistency.TestConsistencyReport" name="test_report_serialization" time="0.001" /><testcase classname="tests.test_exceptions.test_consistency.TestFileSystemChecker" name="test_checker_creation" time="0.001" /><testcase classname="tests.test_exceptions.test_consistency.TestFileSystemChecker" name="test_check_existing_files" time="0.002" /><testcase classname="tests.test_exceptions.test_consistency.TestFileSystemChecker" name="test_check_missing_files" time="0.001" /><testcase classname="tests.test_exceptions.test_consistency.TestFileSystemChecker" name="test_check_size_mismatch" time="0.002"><failure message="AssertionError: assert 2 == 1 + where 2 = len([ConsistencyIssue(issue_id='fs_size_3afcabd2', issue_type=<IssueType.SIZE_MISMATCH: 'size_mismatch'>, severity=<Severity.WARNING: 'warning'>, description='檔案大小不匹配: /var/folders/r5/xvlw91y509x7d_7g4_6tpvn40000gn/T/tmps2oze4km/size_test.txt', affected_resource='/var/folders/r5/xvlw91y509x7d_7g4_6tpvn40000gn/T/tmps2oze4km/size_test.txt', details={'expected_size': 999, 'actual_size': 12}, suggested_action='重新計算檔案雜湊並更新元資料', timestamp=datetime.datetime(2025, 8, 2, 8, 5, 55, 309314), auto_fixable=True), ConsistencyIssue(issue_id='fs_hash_3afcabd2', issue_type=<IssueType.HASH_MISMATCH: 'hash_mismatch'>, severity=<Severity.ERROR: 'error'>, description='檔案雜湊不匹配: /var/folders/r5/xvlw91y509x7d_7g4_6tpvn40000gn/T/tmps2oze4km/size_test.txt', affected_resource='/var/folders/r5/xvlw91y509x7d_7g4_6tpvn40000gn/T/tmps2oze4km/size_test.txt', details={'expected_hash': 'dummy', 'actual_hash': '43db19fe6bae9bd559b84137e2e86a1ea712be6ff1c062e7873771664460a33a'}, suggested_action='檔案內容已變更,需要重新索引', timestamp=datetime.datetime(2025, 8, 2, 8, 5, 55, 309378), auto_fixable=False)])">tests/test_exceptions/test_consistency.py:267: in test_check_size_mismatch
assert len(issues) == 1
E AssertionError: assert 2 == 1
E + where 2 = len([ConsistencyIssue(issue_id='fs_size_3afcabd2', issue_type=<IssueType.SIZE_MISMATCH: 'size_mismatch'>, severity=<Severity.WARNING: 'warning'>, description='檔案大小不匹配: /var/folders/r5/xvlw91y509x7d_7g4_6tpvn40000gn/T/tmps2oze4km/size_test.txt', affected_resource='/var/folders/r5/xvlw91y509x7d_7g4_6tpvn40000gn/T/tmps2oze4km/size_test.txt', details={'expected_size': 999, 'actual_size': 12}, suggested_action='重新計算檔案雜湊並更新元資料', timestamp=datetime.datetime(2025, 8, 2, 8, 5, 55, 309314), auto_fixable=True), ConsistencyIssue(issue_id='fs_hash_3afcabd2', issue_type=<IssueType.HASH_MISMATCH: 'hash_mismatch'>, severity=<Severity.ERROR: 'error'>, description='檔案雜湊不匹配: /var/folders/r5/xvlw91y509x7d_7g4_6tpvn40000gn/T/tmps2oze4km/size_test.txt', affected_resource='/var/folders/r5/xvlw91y509x7d_7g4_6tpvn40000gn/T/tmps2oze4km/size_test.txt', details={'expected_hash': 'dummy', 'actual_hash': '43db19fe6bae9bd559b84137e2e86a1ea712be6ff1c062e7873771664460a33a'}, suggested_action='檔案內容已變更,需要重新索引', timestamp=datetime.datetime(2025, 8, 2, 8, 5, 55, 309378), auto_fixable=False)])</failure></testcase><testcase classname="tests.test_exceptions.test_consistency.TestFileSystemChecker" name="test_check_hash_mismatch" time="0.001" /><testcase classname="tests.test_exceptions.test_consistency.TestIndexChecker" name="test_checker_creation" time="0.000" /><testcase classname="tests.test_exceptions.test_consistency.TestIndexChecker" name="test_check_missing_index" time="0.000" /><testcase classname="tests.test_exceptions.test_consistency.TestIndexChecker" name="test_check_orphaned_index" time="0.000" /><testcase classname="tests.test_exceptions.test_consistency.TestVectorStoreChecker" name="test_checker_creation" time="0.000" /><testcase classname="tests.test_exceptions.test_consistency.TestVectorStoreChecker" name="test_check_no_vector_store" time="0.000" /><testcase classname="tests.test_exceptions.test_consistency.TestVectorStoreChecker" name="test_check_missing_vectors" time="0.001"><failure message="assert 2 == 1 + where 2 = len([ConsistencyIssue(issue_id='vec_missing_ab913cf6', issue_type=<IssueType.MISSING_INDEX: 'missing_index'>, severity=<Severity.ERROR: 'error'>, description='文件缺少向量: doc_2', affected_resource='doc_2', details={'document_id': 'doc_2'}, suggested_action='重新生成文件向量', timestamp=datetime.datetime(2025, 8, 2, 8, 5, 55, 329134), auto_fixable=True), ConsistencyIssue(issue_id='vec_error_4bd4f2e5', issue_type=<IssueType.VECTOR_CORRUPTION: 'vector_corruption'>, severity=<Severity.ERROR: 'error'>, description='向量讀取錯誤: doc_1', affected_resource='doc_1', details={'error': "object of type 'Mock' has no len()"}, suggested_action='檢查向量儲存完整性並重新生成向量', timestamp=datetime.datetime(2025, 8, 2, 8, 5, 55, 329334), auto_fixable=False)])">tests/test_exceptions/test_consistency.py:412: in test_check_missing_vectors
assert len(issues) == 1
E assert 2 == 1
E + where 2 = len([ConsistencyIssue(issue_id='vec_missing_ab913cf6', issue_type=<IssueType.MISSING_INDEX: 'missing_index'>, severity=<Severity.ERROR: 'error'>, description='文件缺少向量: doc_2', affected_resource='doc_2', details={'document_id': 'doc_2'}, suggested_action='重新生成文件向量', timestamp=datetime.datetime(2025, 8, 2, 8, 5, 55, 329134), auto_fixable=True), ConsistencyIssue(issue_id='vec_error_4bd4f2e5', issue_type=<IssueType.VECTOR_CORRUPTION: 'vector_corruption'>, severity=<Severity.ERROR: 'error'>, description='向量讀取錯誤: doc_1', affected_resource='doc_1', details={'error': "object of type 'Mock' has no len()"}, suggested_action='檢查向量儲存完整性並重新生成向量', timestamp=datetime.datetime(2025, 8, 2, 8, 5, 55, 329334), auto_fixable=False)])</failure></testcase><testcase classname="tests.test_exceptions.test_consistency.TestVectorStoreChecker" name="test_check_orphaned_vectors" time="0.001"><failure message="assert 2 == 1 + where 2 = len([ConsistencyIssue(issue_id='vec_orphan_ab913cf6', issue_type=<IssueType.ORPHANED_INDEX: 'orphaned_index'>, severity=<Severity.WARNING: 'warning'>, description='孤立的向量: doc_2', affected_resource='doc_2', details={'document_id': 'doc_2'}, suggested_action='從向量儲存中刪除此向量', timestamp=datetime.datetime(2025, 8, 2, 8, 5, 55, 339903), auto_fixable=True), ConsistencyIssue(issue_id='vec_error_4bd4f2e5', issue_type=<IssueType.VECTOR_CORRUPTION: 'vector_corruption'>, severity=<Severity.ERROR: 'error'>, description='向量讀取錯誤: doc_1', affected_resource='doc_1', details={'error': "object of type 'Mock' has no len()"}, suggested_action='檢查向量儲存完整性並重新生成向量', timestamp=datetime.datetime(2025, 8, 2, 8, 5, 55, 340083), auto_fixable=False)])">tests/test_exceptions/test_consistency.py:439: in test_check_orphaned_vectors
assert len(issues) == 1
E assert 2 == 1
E + where 2 = len([ConsistencyIssue(issue_id='vec_orphan_ab913cf6', issue_type=<IssueType.ORPHANED_INDEX: 'orphaned_index'>, severity=<Severity.WARNING: 'warning'>, description='孤立的向量: doc_2', affected_resource='doc_2', details={'document_id': 'doc_2'}, suggested_action='從向量儲存中刪除此向量', timestamp=datetime.datetime(2025, 8, 2, 8, 5, 55, 339903), auto_fixable=True), ConsistencyIssue(issue_id='vec_error_4bd4f2e5', issue_type=<IssueType.VECTOR_CORRUPTION: 'vector_corruption'>, severity=<Severity.ERROR: 'error'>, description='向量讀取錯誤: doc_1', affected_resource='doc_1', details={'error': "object of type 'Mock' has no len()"}, suggested_action='檢查向量儲存完整性並重新生成向量', timestamp=datetime.datetime(2025, 8, 2, 8, 5, 55, 340083), auto_fixable=False)])</failure></testcase><testcase classname="tests.test_exceptions.test_consistency.TestVectorStoreChecker" name="test_check_vector_dimension" time="0.001" /><testcase classname="tests.test_exceptions.test_consistency.TestMetadataChecker" name="test_checker_creation" time="0.000" /><testcase classname="tests.test_exceptions.test_consistency.TestMetadataChecker" name="test_check_missing_fields" time="0.000" /><testcase classname="tests.test_exceptions.test_consistency.TestMetadataChecker" name="test_check_invalid_timestamp" time="0.000" /><testcase classname="tests.test_exceptions.test_consistency.TestDataConsistencyManager" name="test_manager_creation" time="0.000" /><testcase classname="tests.test_exceptions.test_consistency.TestDataConsistencyManager" name="test_register_checker" time="0.000" /><testcase classname="tests.test_exceptions.test_consistency.TestDataConsistencyManager" name="test_run_consistency_check" time="0.001" /><testcase classname="tests.test_exceptions.test_consistency.TestDataConsistencyManager" name="test_check_with_filters" time="0.000" /><testcase classname="tests.test_exceptions.test_consistency.TestDataConsistencyManager" name="test_checker_error_handling" time="0.000" /><testcase classname="tests.test_exceptions.test_consistency.TestDataConsistencyManager" name="test_auto_fix_issues" time="0.000" /><testcase classname="tests.test_exceptions.test_consistency.TestDataConsistencyManager" name="test_report_history_management" time="0.000" /><testcase classname="tests.test_exceptions.test_consistency.TestDataConsistencyManager" name="test_export_report" time="0.001" /><testcase classname="tests.test_exceptions.test_consistency.TestGlobalConsistencyManager" name="test_get_consistency_manager" time="0.000" /><testcase classname="tests.test_exceptions.test_incremental.TestFileMetadata" name="test_metadata_creation" time="0.000" /><testcase classname="tests.test_exceptions.test_incremental.TestFileMetadata" name="test_metadata_serialization" time="0.000" /><testcase classname="tests.test_exceptions.test_incremental.TestChangeRecord" name="test_change_record_creation" time="0.000" /><testcase classname="tests.test_exceptions.test_incremental.TestChangeRecord" name="test_change_record_serialization" time="0.000" /><testcase classname="tests.test_exceptions.test_incremental.TestFileWatcher" name="test_watcher_creation" time="0.000" /><testcase classname="tests.test_exceptions.test_incremental.TestFileWatcher" name="test_add_change_listener" time="0.001" /><testcase classname="tests.test_exceptions.test_incremental.TestFileWatcher" name="test_calculate_file_hash" time="0.001" /><testcase classname="tests.test_exceptions.test_incremental.TestFileWatcher" name="test_detect_encoding" time="0.002" /><testcase classname="tests.test_exceptions.test_incremental.TestFileWatcher" name="test_create_file_metadata" time="0.001" /><testcase classname="tests.test_exceptions.test_incremental.TestFileWatcher" name="test_scan_changes_new_files" time="0.001" /><testcase classname="tests.test_exceptions.test_incremental.TestFileWatcher" name="test_scan_changes_modified_files" time="0.108" /><testcase classname="tests.test_exceptions.test_incremental.TestFileWatcher" name="test_scan_changes_deleted_files" time="0.002" /><testcase classname="tests.test_exceptions.test_incremental.TestFileWatcher" name="test_change_listener_notification" time="0.001" /><testcase classname="tests.test_exceptions.test_incremental.TestIncrementalIndexStorage" name="test_storage_initialization" time="0.003" /><testcase classname="tests.test_exceptions.test_incremental.TestIncrementalIndexStorage" name="test_save_and_get_file_metadata" time="0.003" /><testcase classname="tests.test_exceptions.test_incremental.TestIncrementalIndexStorage" name="test_save_and_get_change_record" time="0.003" /><testcase classname="tests.test_exceptions.test_incremental.TestIncrementalIndexStorage" name="test_mark_change_processed" time="0.005" /><testcase classname="tests.test_exceptions.test_incremental.TestIncrementalIndexStorage" name="test_pending_changes_limit" time="0.087" /><testcase classname="tests.test_exceptions.test_incremental.TestIncrementalIndexManager" name="test_manager_creation" time="0.002" /><testcase classname="tests.test_exceptions.test_incremental.TestIncrementalIndexManager" name="test_scan_for_changes" time="0.003" /><testcase classname="tests.test_exceptions.test_incremental.TestIncrementalIndexManager" name="test_process_pending_changes" time="0.006" /><testcase classname="tests.test_exceptions.test_incremental.TestIncrementalIndexManager" name="test_processing_concurrency_protection" time="0.003" /><testcase classname="tests.test_exceptions.test_incremental.TestIncrementalIndexManager" name="test_file_change_handling" time="0.003" /><testcase classname="tests.test_exceptions.test_incremental.TestIncrementalIndexManager" name="test_get_index_statistics" time="0.003" /><testcase classname="tests.test_exceptions.test_incremental.TestIncrementalIndexManager" name="test_cleanup_old_records" time="0.006" /><testcase classname="tests.test_exceptions.test_recovery.TestCheckpointMetadata" name="test_metadata_creation" time="0.000" /><testcase classname="tests.test_exceptions.test_recovery.TestCheckpointMetadata" name="test_metadata_serialization" time="0.001" /><testcase classname="tests.test_exceptions.test_recovery.TestSystemState" name="test_state_creation" time="0.000" /><testcase classname="tests.test_exceptions.test_recovery.TestSystemState" name="test_state_serialization" time="0.000" /><testcase classname="tests.test_exceptions.test_recovery.TestFileCheckpointStorage" name="test_storage_initialization" time="0.001"><failure message="AssertionError: assert False + where False = exists() + where exists = PosixPath('/var/folders/r5/xvlw91y509x7d_7g4_6tpvn40000gn/T/tmpjd364sqj/checkpoints/metadata.json').exists + where PosixPath('/var/folders/r5/xvlw91y509x7d_7g4_6tpvn40000gn/T/tmpjd364sqj/checkpoints/metadata.json') = <src.chinese_graphrag.exceptions.recovery.FileCheckpointStorage object at 0x340db6cd0>.metadata_file">tests/test_exceptions/test_recovery.py:120: in test_storage_initialization
assert storage.metadata_file.exists()
E AssertionError: assert False
E + where False = exists()
E + where exists = PosixPath('/var/folders/r5/xvlw91y509x7d_7g4_6tpvn40000gn/T/tmpjd364sqj/checkpoints/metadata.json').exists
E + where PosixPath('/var/folders/r5/xvlw91y509x7d_7g4_6tpvn40000gn/T/tmpjd364sqj/checkpoints/metadata.json') = <src.chinese_graphrag.exceptions.recovery.FileCheckpointStorage object at 0x340db6cd0>.metadata_file</failure></testcase><testcase classname="tests.test_exceptions.test_recovery.TestFileCheckpointStorage" name="test_save_and_load_checkpoint" time="0.001" /><testcase classname="tests.test_exceptions.test_recovery.TestFileCheckpointStorage" name="test_list_checkpoints" time="0.002" /><testcase classname="tests.test_exceptions.test_recovery.TestFileCheckpointStorage" name="test_delete_checkpoint" time="0.001" /><testcase classname="tests.test_exceptions.test_recovery.TestFileCheckpointStorage" name="test_checksum_validation" time="0.001" /><testcase classname="tests.test_exceptions.test_recovery.TestCheckpointManager" name="test_manager_creation" time="0.001" /><testcase classname="tests.test_exceptions.test_recovery.TestCheckpointManager" name="test_create_checkpoint" time="0.001" /><testcase classname="tests.test_exceptions.test_recovery.TestCheckpointManager" name="test_list_checkpoints_with_filters" time="0.002" /><testcase classname="tests.test_exceptions.test_recovery.TestCheckpointManager" name="test_cleanup_old_checkpoints" time="0.004" /><testcase classname="tests.test_exceptions.test_recovery.TestStateManager" name="test_state_manager_creation" time="0.000" /><testcase classname="tests.test_exceptions.test_recovery.TestStateManager" name="test_register_component" time="0.000" /><testcase classname="tests.test_exceptions.test_recovery.TestStateManager" name="test_capture_current_state" time="0.000" /><testcase classname="tests.test_exceptions.test_recovery.TestStateManager" name="test_component_error_handling" time="0.000" /><testcase classname="tests.test_exceptions.test_recovery.TestStateManager" name="test_state_history_limit" time="0.001" /><testcase classname="tests.test_exceptions.test_recovery.TestStateManager" name="test_compare_states" time="0.000" /><testcase classname="tests.test_exceptions.test_recovery.TestRecoveryManager" name="test_recovery_manager_creation" time="0.001" /><testcase classname="tests.test_exceptions.test_recovery.TestRecoveryManager" name="test_register_recovery_strategy" time="0.001" /><testcase classname="tests.test_exceptions.test_recovery.TestRecoveryManager" name="test_auto_recover_success" time="0.001" /><testcase classname="tests.test_exceptions.test_recovery.TestRecoveryManager" name="test_auto_recover_no_strategy" time="0.001" /><testcase classname="tests.test_exceptions.test_recovery.TestRecoveryManager" name="test_create_recovery_checkpoint" time="0.001" /><testcase classname="tests.test_exceptions.test_recovery.TestRecoveryManager" name="test_perform_recovery" time="0.001" /><testcase classname="tests.test_exceptions.test_recovery.TestGlobalRecoveryManager" name="test_get_recovery_manager" time="0.000" /><testcase classname="tests.test_indexing.test_engine.TestGraphRAGIndexer" name="test_indexer_initialization" time="0.002"><failure message="AttributeError: 'GraphRAGConfig' object has no attribute 'value'">tests/test_indexing/test_engine.py:59: in test_indexer_initialization
indexer = GraphRAGIndexer(config)
^^^^^^^^^^^^^^^^^^^^^^^
src/chinese_graphrag/indexing/engine.py:85: in __init__
self.vector_store_manager = VectorStoreManager(config)
^^^^^^^^^^^^^^^^^^^^^^^^^^
src/chinese_graphrag/vector_stores/manager.py:57: in __init__
logger.info(f"初始化向量儲存管理器,預設類型: {default_store_type.value}")
^^^^^^^^^^^^^^^^^^^^^^^^
.venv/lib/python3.11/site-packages/pydantic/main.py:991: in __getattr__
raise AttributeError(f'{type(self).__name__!r} object has no attribute {item!r}')
E AttributeError: 'GraphRAGConfig' object has no attribute 'value'</failure></testcase><testcase classname="tests.test_indexing.test_engine.TestGraphRAGIndexer" name="test_create_text_units" time="0.001"><error message="failed on setup with "AttributeError: 'GraphRAGConfig' object has no attribute 'value'"">tests/test_indexing/test_engine.py:35: in indexer
return GraphRAGIndexer(config)
^^^^^^^^^^^^^^^^^^^^^^^
src/chinese_graphrag/indexing/engine.py:85: in __init__
self.vector_store_manager = VectorStoreManager(config)
^^^^^^^^^^^^^^^^^^^^^^^^^^
src/chinese_graphrag/vector_stores/manager.py:57: in __init__
logger.info(f"初始化向量儲存管理器,預設類型: {default_store_type.value}")
^^^^^^^^^^^^^^^^^^^^^^^^
.venv/lib/python3.11/site-packages/pydantic/main.py:991: in __getattr__
raise AttributeError(f'{type(self).__name__!r} object has no attribute {item!r}')
E AttributeError: 'GraphRAGConfig' object has no attribute 'value'</error></testcase><testcase classname="tests.test_indexing.test_engine.TestGraphRAGIndexer" name="test_entity_and_relationship_extraction" time="0.001"><error message="failed on setup with "AttributeError: 'GraphRAGConfig' object has no attribute 'value'"">tests/test_indexing/test_engine.py:35: in indexer
return GraphRAGIndexer(config)
^^^^^^^^^^^^^^^^^^^^^^^
src/chinese_graphrag/indexing/engine.py:85: in __init__
self.vector_store_manager = VectorStoreManager(config)
^^^^^^^^^^^^^^^^^^^^^^^^^^
src/chinese_graphrag/vector_stores/manager.py:57: in __init__
logger.info(f"初始化向量儲存管理器,預設類型: {default_store_type.value}")
^^^^^^^^^^^^^^^^^^^^^^^^
.venv/lib/python3.11/site-packages/pydantic/main.py:991: in __getattr__
raise AttributeError(f'{type(self).__name__!r} object has no attribute {item!r}')
E AttributeError: 'GraphRAGConfig' object has no attribute 'value'</error></testcase><testcase classname="tests.test_indexing.test_engine.TestGraphRAGIndexer" name="test_detect_communities" time="0.001"><error message="failed on setup with "AttributeError: 'GraphRAGConfig' object has no attribute 'value'"">tests/test_indexing/test_engine.py:35: in indexer
return GraphRAGIndexer(config)
^^^^^^^^^^^^^^^^^^^^^^^
src/chinese_graphrag/indexing/engine.py:85: in __init__
self.vector_store_manager = VectorStoreManager(config)
^^^^^^^^^^^^^^^^^^^^^^^^^^
src/chinese_graphrag/vector_stores/manager.py:57: in __init__
logger.info(f"初始化向量儲存管理器,預設類型: {default_store_type.value}")
^^^^^^^^^^^^^^^^^^^^^^^^
.venv/lib/python3.11/site-packages/pydantic/main.py:991: in __getattr__
raise AttributeError(f'{type(self).__name__!r} object has no attribute {item!r}')
E AttributeError: 'GraphRAGConfig' object has no attribute 'value'</error></testcase><testcase classname="tests.test_indexing.test_engine.TestGraphRAGIndexer" name="test_create_embeddings" time="0.001"><error message="failed on setup with "AttributeError: 'GraphRAGConfig' object has no attribute 'value'"">tests/test_indexing/test_engine.py:35: in indexer
return GraphRAGIndexer(config)
^^^^^^^^^^^^^^^^^^^^^^^
src/chinese_graphrag/indexing/engine.py:85: in __init__
self.vector_store_manager = VectorStoreManager(config)
^^^^^^^^^^^^^^^^^^^^^^^^^^
src/chinese_graphrag/vector_stores/manager.py:57: in __init__
logger.info(f"初始化向量儲存管理器,預設類型: {default_store_type.value}")
^^^^^^^^^^^^^^^^^^^^^^^^
.venv/lib/python3.11/site-packages/pydantic/main.py:991: in __getattr__
raise AttributeError(f'{type(self).__name__!r} object has no attribute {item!r}')
E AttributeError: 'GraphRAGConfig' object has no attribute 'value'</error></testcase><testcase classname="tests.test_indexing.test_engine.TestGraphRAGIndexer" name="test_get_statistics" time="0.001"><error message="failed on setup with "AttributeError: 'GraphRAGConfig' object has no attribute 'value'"">tests/test_indexing/test_engine.py:35: in indexer
return GraphRAGIndexer(config)
^^^^^^^^^^^^^^^^^^^^^^^
src/chinese_graphrag/indexing/engine.py:85: in __init__
self.vector_store_manager = VectorStoreManager(config)
^^^^^^^^^^^^^^^^^^^^^^^^^^
src/chinese_graphrag/vector_stores/manager.py:57: in __init__
logger.info(f"初始化向量儲存管理器,預設類型: {default_store_type.value}")
^^^^^^^^^^^^^^^^^^^^^^^^
.venv/lib/python3.11/site-packages/pydantic/main.py:991: in __getattr__
raise AttributeError(f'{type(self).__name__!r} object has no attribute {item!r}')
E AttributeError: 'GraphRAGConfig' object has no attribute 'value'</error></testcase><testcase classname="tests.test_indexing.test_engine.TestGraphRAGIndexer" name="test_clear_index" time="0.001"><error message="failed on setup with "AttributeError: 'GraphRAGConfig' object has no attribute 'value'"">tests/test_indexing/test_engine.py:35: in indexer
return GraphRAGIndexer(config)
^^^^^^^^^^^^^^^^^^^^^^^
src/chinese_graphrag/indexing/engine.py:85: in __init__
self.vector_store_manager = VectorStoreManager(config)
^^^^^^^^^^^^^^^^^^^^^^^^^^
src/chinese_graphrag/vector_stores/manager.py:57: in __init__
logger.info(f"初始化向量儲存管理器,預設類型: {default_store_type.value}")
^^^^^^^^^^^^^^^^^^^^^^^^
.venv/lib/python3.11/site-packages/pydantic/main.py:991: in __getattr__
raise AttributeError(f'{type(self).__name__!r} object has no attribute {item!r}')
E AttributeError: 'GraphRAGConfig' object has no attribute 'value'</error></testcase><testcase classname="tests.test_indexing.test_engine.TestGraphRAGIndexer" name="test_full_indexing_workflow" time="0.001"><error message="failed on setup with "AttributeError: 'GraphRAGConfig' object has no attribute 'value'"">tests/test_indexing/test_engine.py:35: in indexer
return GraphRAGIndexer(config)
^^^^^^^^^^^^^^^^^^^^^^^
src/chinese_graphrag/indexing/engine.py:85: in __init__
self.vector_store_manager = VectorStoreManager(config)
^^^^^^^^^^^^^^^^^^^^^^^^^^
src/chinese_graphrag/vector_stores/manager.py:57: in __init__
logger.info(f"初始化向量儲存管理器,預設類型: {default_store_type.value}")
^^^^^^^^^^^^^^^^^^^^^^^^
.venv/lib/python3.11/site-packages/pydantic/main.py:991: in __getattr__
raise AttributeError(f'{type(self).__name__!r} object has no attribute {item!r}')
E AttributeError: 'GraphRAGConfig' object has no attribute 'value'</error></testcase><testcase classname="tests.test_models.test_base.TestBaseModel" name="test_create_model_with_defaults" time="0.001" /><testcase classname="tests.test_models.test_base.TestBaseModel" name="test_create_model_with_custom_values" time="0.000" /><testcase classname="tests.test_models.test_base.TestBaseModel" name="test_update_timestamp" time="0.002" /><testcase classname="tests.test_models.test_base.TestBaseModel" name="test_to_dict" time="0.000" /><testcase classname="tests.test_models.test_base.TestBaseModel" name="test_from_dict" time="0.000" /><testcase classname="tests.test_models.test_base.TestBaseModel" name="test_to_json" time="0.000" /><testcase classname="tests.test_models.test_base.TestBaseModel" name="test_from_json" time="0.000" /><testcase classname="tests.test_models.test_base.TestBaseModel" name="test_validation_on_assignment" time="0.000" /><testcase classname="tests.test_models.test_base.TestBaseModel" name="test_exclude_none_in_serialization" time="0.000" /><testcase classname="tests.test_models.test_community.TestCommunity" name="test_create_community_with_required_fields" time="0.000" /><testcase classname="tests.test_models.test_community.TestCommunity" name="test_create_community_with_all_fields" time="0.000" /><testcase classname="tests.test_models.test_community.TestCommunity" name="test_title_validation" time="0.000" /><testcase classname="tests.test_models.test_community.TestCommunity" name="test_level_validation" time="0.000" /><testcase classname="tests.test_models.test_community.TestCommunity" name="test_summary_validation" time="0.000" /><testcase classname="tests.test_models.test_community.TestCommunity" name="test_full_content_validation" time="0.000" /><testcase classname="tests.test_models.test_community.TestCommunity" name="test_entities_validation" time="0.000" /><testcase classname="tests.test_models.test_community.TestCommunity" name="test_relationships_validation" time="0.000" /><testcase classname="tests.test_models.test_community.TestCommunity" name="test_child_communities_validation" time="0.000" /><testcase classname="tests.test_models.test_community.TestCommunity" name="test_embedding_validation" time="0.000" /><testcase classname="tests.test_models.test_community.TestCommunity" name="test_rank_validation" time="0.000" /><testcase classname="tests.test_models.test_community.TestCommunity" name="test_size_validation" time="0.000" /><testcase classname="tests.test_models.test_community.TestCommunity" name="test_density_validation" time="0.000" /><testcase classname="tests.test_models.test_community.TestCommunity" name="test_properties" time="0.000" /><testcase classname="tests.test_models.test_community.TestCommunity" name="test_add_entity" time="0.000" /><testcase classname="tests.test_models.test_community.TestCommunity" name="test_remove_entity" time="0.000" /><testcase classname="tests.test_models.test_community.TestCommunity" name="test_add_relationship" time="0.000" /><testcase classname="tests.test_models.test_community.TestCommunity" name="test_remove_relationship" time="0.000" /><testcase classname="tests.test_models.test_community.TestCommunity" name="test_add_child_community" time="0.000" /><testcase classname="tests.test_models.test_community.TestCommunity" name="test_remove_child_community" time="0.000" /><testcase classname="tests.test_models.test_community.TestCommunity" name="test_update_rank" time="0.000" /><testcase classname="tests.test_models.test_community.TestCommunity" name="test_calculate_size" time="0.000" /><testcase classname="tests.test_models.test_community.TestCommunity" name="test_get_summary_preview" time="0.000" /><testcase classname="tests.test_models.test_community.TestCommunity" name="test_serialization" time="0.000" /><testcase classname="tests.test_models.test_document.TestDocument" name="test_create_document_with_required_fields" time="0.000" /><testcase classname="tests.test_models.test_document.TestDocument" name="test_create_document_with_all_fields" time="0.000" /><testcase classname="tests.test_models.test_document.TestDocument" name="test_title_validation" time="0.000" /><testcase classname="tests.test_models.test_document.TestDocument" name="test_content_validation" time="0.000" /><testcase classname="tests.test_models.test_document.TestDocument" name="test_file_path_validation" time="0.000" /><testcase classname="tests.test_models.test_document.TestDocument" name="test_language_validation" time="0.000" /><testcase classname="tests.test_models.test_document.TestDocument" name="test_file_size_validation" time="0.000" /><testcase classname="tests.test_models.test_document.TestDocument" name="test_file_name_property" time="0.000" /><testcase classname="tests.test_models.test_document.TestDocument" name="test_file_extension_property" time="0.000" /><testcase classname="tests.test_models.test_document.TestDocument" name="test_content_length_property" time="0.000" /><testcase classname="tests.test_models.test_document.TestDocument" name="test_get_summary" time="0.000" /><testcase classname="tests.test_models.test_document.TestDocument" name="test_serialization" time="0.000" /><testcase classname="tests.test_models.test_entity.TestEntity" name="test_create_entity_with_required_fields" time="0.000" /><testcase classname="tests.test_models.test_entity.TestEntity" name="test_create_entity_with_all_fields" time="0.000" /><testcase classname="tests.test_models.test_entity.TestEntity" name="test_name_validation" time="0.000" /><testcase classname="tests.test_models.test_entity.TestEntity" name="test_type_validation" time="0.000" /><testcase classname="tests.test_models.test_entity.TestEntity" name="test_description_validation" time="0.000" /><testcase classname="tests.test_models.test_entity.TestEntity" name="test_text_units_validation" time="0.000" /><testcase classname="tests.test_models.test_entity.TestEntity" name="test_rank_validation" time="0.000" /><testcase classname="tests.test_models.test_entity.TestEntity" name="test_frequency_validation" time="0.000" /><testcase classname="tests.test_models.test_entity.TestEntity" name="test_confidence_validation" time="0.000" /><testcase classname="tests.test_models.test_entity.TestEntity" name="test_embedding_validation" time="0.000" /><testcase classname="tests.test_models.test_entity.TestEntity" name="test_properties" time="0.000" /><testcase classname="tests.test_models.test_entity.TestEntity" name="test_add_text_unit" time="0.000" /><testcase classname="tests.test_models.test_entity.TestEntity" name="test_remove_text_unit" time="0.000" /><testcase classname="tests.test_models.test_entity.TestEntity" name="test_update_rank" time="0.000" /><testcase classname="tests.test_models.test_entity.TestEntity" name="test_serialization" time="0.000" /><testcase classname="tests.test_models.test_relationship.TestRelationship" name="test_create_relationship_with_required_fields" time="0.000" /><testcase classname="tests.test_models.test_relationship.TestRelationship" name="test_create_relationship_with_all_fields" time="0.000" /><testcase classname="tests.test_models.test_relationship.TestRelationship" name="test_source_entity_id_validation" time="0.000" /><testcase classname="tests.test_models.test_relationship.TestRelationship" name="test_target_entity_id_validation" time="0.000" /><testcase classname="tests.test_models.test_relationship.TestRelationship" name="test_relationship_type_validation" time="0.000" /><testcase classname="tests.test_models.test_relationship.TestRelationship" name="test_description_validation" time="0.000" /><testcase classname="tests.test_models.test_relationship.TestRelationship" name="test_weight_validation" time="0.000" /><testcase classname="tests.test_models.test_relationship.TestRelationship" name="test_text_units_validation" time="0.000" /><testcase classname="tests.test_models.test_relationship.TestRelationship" name="test_confidence_validation" time="0.000" /><testcase classname="tests.test_models.test_relationship.TestRelationship" name="test_frequency_validation" time="0.000" /><testcase classname="tests.test_models.test_relationship.TestRelationship" name="test_properties" time="0.000" /><testcase classname="tests.test_models.test_relationship.TestRelationship" name="test_add_text_unit" time="0.000" /><testcase classname="tests.test_models.test_relationship.TestRelationship" name="test_remove_text_unit" time="0.000" /><testcase classname="tests.test_models.test_relationship.TestRelationship" name="test_update_weight" time="0.000" /><testcase classname="tests.test_models.test_relationship.TestRelationship" name="test_get_reverse_relationship" time="0.000" /><testcase classname="tests.test_models.test_relationship.TestRelationship" name="test_serialization" time="0.000" /><testcase classname="tests.test_models.test_text_unit.TestTextUnit" name="test_create_text_unit_with_required_fields" time="0.000" /><testcase classname="tests.test_models.test_text_unit.TestTextUnit" name="test_create_text_unit_with_all_fields" time="0.000" /><testcase classname="tests.test_models.test_text_unit.TestTextUnit" name="test_text_validation" time="0.000" /><testcase classname="tests.test_models.test_text_unit.TestTextUnit" name="test_document_id_validation" time="0.000" /><testcase classname="tests.test_models.test_text_unit.TestTextUnit" name="test_chunk_index_validation" time="0.000" /><testcase classname="tests.test_models.test_text_unit.TestTextUnit" name="test_position_validation" time="0.000" /><testcase classname="tests.test_models.test_text_unit.TestTextUnit" name="test_embedding_validation" time="0.000" /><testcase classname="tests.test_models.test_text_unit.TestTextUnit" name="test_token_count_validation" time="0.000" /><testcase classname="tests.test_models.test_text_unit.TestTextUnit" name="test_text_length_property" time="0.000" /><testcase classname="tests.test_models.test_text_unit.TestTextUnit" name="test_has_embedding_property" time="0.000" /><testcase classname="tests.test_models.test_text_unit.TestTextUnit" name="test_embedding_dimension_property" time="0.000" /><testcase classname="tests.test_models.test_text_unit.TestTextUnit" name="test_get_text_preview" time="0.000" /><testcase classname="tests.test_models.test_text_unit.TestTextUnit" name="test_serialization" time="0.000" /><testcase classname="tests.test_monitoring_system.TestLoggerManager" name="test_setup_logging_with_default_config" time="0.014" /><testcase classname="tests.test_monitoring_system.TestLoggerManager" name="test_get_logger_with_context" time="0.013" /><testcase classname="tests.test_monitoring_system.TestLoggerManager" name="test_update_log_level" time="0.025" /><testcase classname="tests.test_monitoring_system.TestLoggerManager" name="test_json_logging" time="0.008" /><testcase classname="tests.test_monitoring_system.TestErrorTracker" name="test_track_exception" time="0.001" /><testcase classname="tests.test_monitoring_system.TestErrorTracker" name="test_track_string_error" time="0.001" /><testcase classname="tests.test_monitoring_system.TestErrorTracker" name="test_error_aggregation" time="0.002" /><testcase classname="tests.test_monitoring_system.TestErrorTracker" name="test_error_stats" time="0.001" /><testcase classname="tests.test_monitoring_system.TestErrorTracker" name="test_alert_callback" time="0.001" /><testcase classname="tests.test_monitoring_system.TestErrorTracker" name="test_export_errors" time="0.001" /><testcase classname="tests.test_monitoring_system.TestMetricsCollector" name="test_record_counter" time="0.001" /><testcase classname="tests.test_monitoring_system.TestMetricsCollector" name="test_record_gauge" time="0.001" /><testcase classname="tests.test_monitoring_system.TestMetricsCollector" name="test_record_timer" time="0.001"><failure message="assert 0.15000000000000002 == 0.15">tests/test_monitoring_system.py:279: in test_record_timer
assert timer_stats["avg_time"] == 0.15 # (0.1 + 0.2 + 0.15) / 3
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
E assert 0.15000000000000002 == 0.15</failure></testcase><testcase classname="tests.test_monitoring_system.TestMetricsCollector" name="test_timer_context_manager" time="0.014" /><testcase classname="tests.test_monitoring_system.TestMetricsCollector" name="test_system_metrics_collection" time="1.013" /><testcase classname="tests.test_monitoring_system.TestMetricsCollector" name="test_export_metrics" time="0.004" /><testcase classname="tests.test_monitoring_system.TestSystemMonitor" name="test_collect_system_stats" time="1.012" /><testcase classname="tests.test_monitoring_system.TestSystemMonitor" name="test_system_monitoring_lifecycle" time="2.020" /><testcase classname="tests.test_monitoring_system.TestSystemMonitor" name="test_get_process_stats" time="0.048"><failure message="AssertionError: assert 0 > 0 + where 0 = ProcessStats(pid=0, name='kernel_task', cpu_percent=0, memory_percent=0, memory_mb=0, status='running', create_time=datetime.datetime(2025, 6, 25, 19, 58, 57, 200019)).pid">tests/test_monitoring_system.py:386: in test_get_process_stats
assert proc.pid > 0
E AssertionError: assert 0 > 0
E + where 0 = ProcessStats(pid=0, name='kernel_task', cpu_percent=0, memory_percent=0, memory_mb=0, status='running', create_time=datetime.datetime(2025, 6, 25, 19, 58, 57, 200019)).pid</failure></testcase><testcase classname="tests.test_monitoring_system.TestSystemMonitor" name="test_health_checks" time="0.000" /><testcase classname="tests.test_monitoring_system.TestSystemMonitor" name="test_alert_system" time="0.001" /><testcase classname="tests.test_monitoring_system.TestIntegration" name="test_monitoring_system_integration" time="1.032" /><testcase classname="tests.test_processors.test_base.TestBaseDocumentProcessor" name="test_can_process_supported_extension" time="0.002" /><testcase classname="tests.test_processors.test_base.TestBaseDocumentProcessor" name="test_validate_file_not_exists" time="0.001" /><testcase classname="tests.test_processors.test_base.TestBaseDocumentProcessor" name="test_validate_file_not_readable" time="0.002" /><testcase classname="tests.test_processors.test_base.TestBaseDocumentProcessor" name="test_detect_encoding_utf8" time="0.002" /><testcase classname="tests.test_processors.test_base.TestBaseDocumentProcessor" name="test_get_file_info" time="0.001" /><testcase classname="tests.test_processors.test_base.TestBaseDocumentProcessor" name="test_create_document" time="0.002" /><testcase classname="tests.test_processors.test_base.TestDocumentProcessorManager" name="test_register_processor" time="0.001" /><testcase classname="tests.test_processors.test_base.TestDocumentProcessorManager" name="test_get_processor" time="0.001" /><testcase classname="tests.test_processors.test_base.TestDocumentProcessorManager" name="test_can_process" time="0.001" /><testcase classname="tests.test_processors.test_base.TestDocumentProcessorManager" name="test_process_file_unsupported_format" time="0.001" /><testcase classname="tests.test_processors.test_base.TestDocumentProcessorManager" name="test_process_file_success" time="0.002" /><testcase classname="tests.test_processors.test_base.TestDocumentProcessorManager" name="test_batch_process_directory_not_exists" time="0.001" /><testcase classname="tests.test_processors.test_base.TestDocumentProcessorManager" name="test_batch_process_success" time="0.003" /><testcase classname="tests.test_processors.test_base.TestDocumentProcessorManager" name="test_get_supported_extensions" time="0.001" /><testcase classname="tests.test_processors.test_base.TestDocumentProcessorManager" name="test_get_processor_info" time="0.001" /><testcase classname="tests.test_processors.test_chinese_text_processor.TestChineseTextProcessor" name="test_init_default" time="0.002" /><testcase classname="tests.test_processors.test_chinese_text_processor.TestChineseTextProcessor" name="test_init_with_params" time="0.002" /><testcase classname="tests.test_processors.test_chinese_text_processor.TestChineseTextProcessor" name="test_clean_text_basic" time="0.001" /><testcase classname="tests.test_processors.test_chinese_text_processor.TestChineseTextProcessor" name="test_clean_text_special_chars" time="0.001" /><testcase classname="tests.test_processors.test_chinese_text_processor.TestChineseTextProcessor" name="test_clean_text_punctuation_normalization" time="0.001" /><testcase classname="tests.test_processors.test_chinese_text_processor.TestChineseTextProcessor" name="test_clean_text_empty" time="0.001" /><testcase classname="tests.test_processors.test_chinese_text_processor.TestChineseTextProcessor" name="test_segment_text_basic" time="0.013" /><testcase classname="tests.test_processors.test_chinese_text_processor.TestChineseTextProcessor" name="test_segment_text_keep_stopwords" time="0.002" /><testcase classname="tests.test_processors.test_chinese_text_processor.TestChineseTextProcessor" name="test_segment_text_no_pos_filter" time="0.001" /><testcase classname="tests.test_processors.test_chinese_text_processor.TestChineseTextProcessor" name="test_segment_text_empty" time="0.001" /><testcase classname="tests.test_processors.test_chinese_text_processor.TestChineseTextProcessor" name="test_extract_keywords_basic" time="0.050" /><testcase classname="tests.test_processors.test_chinese_text_processor.TestChineseTextProcessor" name="test_extract_keywords_empty" time="0.001" /><testcase classname="tests.test_processors.test_chinese_text_processor.TestChineseTextProcessor" name="test_split_into_sentences" time="0.001" /><testcase classname="tests.test_processors.test_chinese_text_processor.TestChineseTextProcessor" name="test_split_text_into_chunks_basic" time="0.001" /><testcase classname="tests.test_processors.test_chinese_text_processor.TestChineseTextProcessor" name="test_split_text_into_chunks_empty" time="0.001" /><testcase classname="tests.test_processors.test_chinese_text_processor.TestChineseTextProcessor" name="test_split_text_into_chunks_small_text" time="0.001" /><testcase classname="tests.test_processors.test_chinese_text_processor.TestChineseTextProcessor" name="test_split_text_into_chunks_custom_size" time="0.001" /><testcase classname="tests.test_processors.test_chinese_text_processor.TestChineseTextProcessor" name="test_get_text_statistics_comprehensive" time="0.001" /><testcase classname="tests.test_processors.test_chinese_text_processor.TestChineseTextProcessor" name="test_get_text_statistics_empty" time="0.001" /><testcase classname="tests.test_processors.test_chinese_text_processor.TestChineseTextProcessor" name="test_get_text_statistics_chinese_only" time="0.001" /><testcase classname="tests.test_processors.test_chinese_text_processor.TestChineseTextProcessor" name="test_get_text_statistics_english_only" time="0.001" /><testcase classname="tests.test_processors.test_chinese_text_processor.TestChineseTextProcessor" name="test_custom_stopwords_file" time="0.027" /><testcase classname="tests.test_processors.test_chinese_text_processor.TestChineseTextProcessor" name="test_custom_dict_integration" time="0.002" /><testcase classname="tests.test_processors.test_chinese_text_processor.TestChineseTextProcessor" name="test_normalize_punctuation" time="0.001" /><testcase classname="tests.test_processors.test_chinese_text_processor.TestChineseTextProcessor" name="test_integration_with_real_chinese_text" time="0.241" /><testcase classname="tests.test_processors.test_chinese_text_processor.TestChineseTextProcessor" name="test_preprocess_for_entity_recognition_basic" time="0.025" /><testcase classname="tests.test_processors.test_chinese_text_processor.TestChineseTextProcessor" name="test_preprocess_for_entity_recognition_empty" time="0.001" /><testcase classname="tests.test_processors.test_chinese_text_processor.TestChineseTextProcessor" name="test_extract_entity_patterns_comprehensive" time="0.001" /><testcase classname="tests.test_processors.test_chinese_text_processor.TestChineseTextProcessor" name="test_evaluate_text_quality_good_text" time="0.166" /><testcase classname="tests.test_processors.test_chinese_text_processor.TestChineseTextProcessor" name="test_evaluate_text_quality_poor_text" time="0.004" /><testcase classname="tests.test_processors.test_chinese_text_processor.TestChineseTextProcessor" name="test_evaluate_text_quality_empty" time="0.001" /><testcase classname="tests.test_processors.test_chinese_text_processor.TestChineseTextProcessor" name="test_extract_named_entities_candidates_basic" time="0.073" /><testcase classname="tests.test_processors.test_chinese_text_processor.TestChineseTextProcessor" name="test_extract_named_entities_candidates_confidence_threshold" time="0.032" /><testcase classname="tests.test_processors.test_chinese_text_processor.TestChineseTextProcessor" name="test_extract_named_entities_candidates_empty" time="0.001" /><testcase classname="tests.test_processors.test_chinese_text_processor.TestChineseTextProcessor" name="test_entity_recognition_integration" time="0.296" /><testcase classname="tests.test_processors.test_chinese_text_processor.TestChineseTextProcessor" name="test_text_quality_with_entity_patterns" time="0.338" /><testcase classname="tests.test_processors.test_text_processor.TestTextProcessor" name="test_supported_extensions" time="0.000" /><testcase classname="tests.test_processors.test_text_processor.TestTextProcessor" name="test_extract_content_success" time="0.001" /><testcase classname="tests.test_processors.test_text_processor.TestTextProcessor" name="test_extract_content_empty_file" time="0.002" /><testcase classname="tests.test_processors.test_text_processor.TestTextProcessor" name="test_extract_content_whitespace_only" time="0.001" /><testcase classname="tests.test_processors.test_text_processor.TestTextProcessor" name="test_process_file_success" time="0.001" /><testcase classname="tests.test_processors.test_text_processor.TestTextProcessor" name="test_process_file_with_chinese_content" time="0.002" /><testcase classname="tests.test_processors.test_text_processor.TestMarkdownProcessor" name="test_supported_extensions" time="0.016" /><testcase classname="tests.test_processors.test_text_processor.TestMarkdownProcessor" name="test_extract_content_simple_markdown" time="0.002" /><testcase classname="tests.test_processors.test_text_processor.TestMarkdownProcessor" name="test_extract_content_with_code_blocks" time="0.034" /><testcase classname="tests.test_processors.test_text_processor.TestMarkdownProcessor" name="test_extract_raw_content" time="0.001" /><testcase classname="tests.test_processors.test_text_processor.TestMarkdownProcessor" name="test_process_file_success" time="0.002" /><testcase classname="tests.test_processors.test_text_processor.TestMarkdownProcessor" name="test_extract_content_empty_markdown" time="0.001" /><testcase classname="tests.test_query.test_query_system.TestLLMManager" name="test_generate_with_mock_llm" time="0.103" /><testcase classname="tests.test_query.test_query_system.TestLLMManager" name="test_health_check" time="0.002" /><testcase classname="tests.test_query.test_query_system.TestLLMManager" name="test_get_metrics" time="0.001" /><testcase classname="tests.test_query.test_query_system.TestLLMManager" name="test_get_adapter_info" time="0.001" /><testcase classname="tests.test_query.test_query_system.TestChineseQueryProcessor" name="test_process_entity_query" time="0.015" /><testcase classname="tests.test_query.test_query_system.TestChineseQueryProcessor" name="test_process_relationship_query" time="0.001" /><testcase classname="tests.test_query.test_query_system.TestChineseQueryProcessor" name="test_process_global_query" time="0.001" /><testcase classname="tests.test_query.test_query_system.TestChineseQueryProcessor" name="test_extract_keywords" time="0.001" /><testcase classname="tests.test_query.test_query_system.TestChineseQueryProcessor" name="test_suggest_query_enhancement" time="0.001" /><testcase classname="tests.test_query.test_query_system.TestGlobalSearchEngine" name="test_global_search" time="0.105" /><testcase classname="tests.test_query.test_query_system.TestGlobalSearchEngine" name="test_health_check" time="0.003" /><testcase classname="tests.test_query.test_query_system.TestGlobalSearchEngine" name="test_get_available_strategies" time="0.002" /><testcase classname="tests.test_query.test_query_system.TestLocalSearchEngine" name="test_local_search" time="0.106" /><testcase classname="tests.test_query.test_query_system.TestQueryEngine" name="test_simple_query" time="0.220" /><testcase classname="tests.test_query.test_query_system.TestQueryEngine" name="test_global_search_query" time="0.218" /><testcase classname="tests.test_query.test_query_system.TestQueryEngine" name="test_local_search_query" time="0.116" /><testcase classname="tests.test_query.test_query_system.TestQueryEngine" name="test_hybrid_search_query" time="0.216" /><testcase classname="tests.test_query.test_query_system.TestQueryEngine" name="test_batch_query" time="0.442" /><testcase classname="tests.test_query.test_query_system.TestQueryEngine" name="test_get_engine_status" time="0.003" /><testcase classname="tests.test_query.test_query_system.TestQueryEngine" name="test_health_check" time="0.004" /><testcase classname="tests.test_query.test_query_system.TestQueryEngine" name="test_clear_cache" time="0.003" /><testcase classname="tests.test_query.test_query_system.TestIntegration" name="test_end_to_end_query_flow" time="0.215"><failure message="NameError: name 'logger' is not defined">tests/test_query/test_query_system.py:507: in test_end_to_end_query_flow
logger.info(f"查詢: {query}")
^^^^^^
E NameError: name 'logger' is not defined</failure></testcase><testcase classname="tests.test_query.test_query_system.TestIntegration" name="test_query_result_serialization" time="0.002" /><testcase classname="tests.test_vector_stores.test_lancedb_store.TestLanceDBStore" name="test_connection" time="0.007" /><testcase classname="tests.test_vector_stores.test_lancedb_store.TestLanceDBStore" name="test_collection_management" time="0.040" /><testcase classname="tests.test_vector_stores.test_lancedb_store.TestLanceDBStore" name="test_vector_operations" time="0.019" /><testcase classname="tests.test_vector_stores.test_lancedb_store.TestLanceDBStore" name="test_vector_search" time="0.019" /><testcase classname="tests.test_vector_stores.test_lancedb_store.TestLanceDBStore" name="test_vector_update_and_delete" time="0.024" /><testcase classname="tests.test_vector_stores.test_lancedb_store.TestLanceDBStore" name="test_health_check" time="0.003" /><testcase classname="tests.test_vector_stores.test_lancedb_store.TestLanceDBStore" name="test_context_manager" time="0.008" /><testcase classname="tests.test_vector_stores.test_lancedb_store.TestLanceDBStore" name="test_error_handling" time="0.003"><failure message="chinese_graphrag.vector_stores.base.VectorOperationError: 無法插入向量: 集合 nonexistent 不存在">src/chinese_graphrag/vector_stores/lancedb_store.py:267: in insert_vectors
raise CollectionError(f"集合 {collection_name} 不存在")
E chinese_graphrag.vector_stores.base.CollectionError: 集合 nonexistent 不存在
During handling of the above exception, another exception occurred:
tests/test_vector_stores/test_lancedb_store.py:307: in test_error_handling
await store.insert_vectors(
src/chinese_graphrag/vector_stores/lancedb_store.py:297: in insert_vectors
raise VectorOperationError(f"無法插入向量: {e}")
E chinese_graphrag.vector_stores.base.VectorOperationError: 無法插入向量: 集合 nonexistent 不存在</failure></testcase><testcase classname="tests.test_vector_stores.test_lancedb_store.TestLanceDBStore" name="test_hybrid_search" time="0.015" /><testcase classname="tests.test_vector_stores.test_lancedb_store.TestLanceDBStore" name="test_sparse_search" time="0.012" /><testcase classname="tests.test_vector_stores.test_lancedb_store.TestLanceDBStore" name="test_index_optimization" time="0.013" /><testcase classname="tests.test_vector_stores.test_lancedb_store.TestLanceDBStore" name="test_search_filter" time="0.014" /><testcase classname="tests.test_vector_stores.test_lancedb_store.TestLanceDBStore" name="test_disconnected_operations" time="0.001" /><testcase classname="tests.test_vector_stores.test_manager.TestVectorStoreManager" name="test_manager_initialization" time="0.003" /><testcase classname="tests.test_vector_stores.test_manager.TestVectorStoreManager" name="test_create_vector_store_manager" time="0.003" /><testcase classname="tests.test_vector_stores.test_manager.TestVectorStoreManager" name="test_collection_operations" time="0.011"><failure message="AssertionError: assert 0 == 128 + where 0 = VectorCollection(name='test_collection', dimension=0, count=0, metadata_schema={'type': 'string', 'score': 'double'}, created_at='2025-08-02T08:06:04.718127', updated_at='2025-08-02T08:06:04.718130').dimension">tests/test_vector_stores/test_manager.py:95: in test_collection_operations
assert info.dimension == dimension
E AssertionError: assert 0 == 128
E + where 0 = VectorCollection(name='test_collection', dimension=0, count=0, metadata_schema={'type': 'string', 'score': 'double'}, created_at='2025-08-02T08:06:04.718127', updated_at='2025-08-02T08:06:04.718130').dimension</failure></testcase><testcase classname="tests.test_vector_stores.test_manager.TestVectorStoreManager" name="test_vector_operations" time="0.032" /><testcase classname="tests.test_vector_stores.test_manager.TestVectorStoreManager" name="test_health_check" time="0.004" /><testcase classname="tests.test_vector_stores.test_manager.TestVectorStoreManager" name="test_statistics" time="0.010" /><testcase classname="tests.test_vector_stores.test_manager.TestVectorStoreManager" name="test_context_manager" time="0.004" /><testcase classname="tests.test_vector_stores.test_manager.TestVectorStoreManager" name="test_error_handling" time="0.010" /><testcase classname="tests.test_vector_stores.test_manager.TestVectorStoreManager" name="test_hybrid_search_manager" time="0.016" /><testcase classname="tests.test_vector_stores.test_manager.TestVectorStoreManager" name="test_index_optimization_manager" time="0.014" /><testcase classname="tests.test_vector_stores.test_manager.TestVectorStoreManager" name="test_search_filter_manager" time="0.015" /><testcase classname="tests.test_vector_stores.test_manager.TestVectorStoreManager" name="test_multiple_stores" time="0.019" /></testsuite></testsuites>