Skip to content

Commit 31bec74

Browse files
committed
Move test to e2e tests
1 parent 0026982 commit 31bec74

File tree

3 files changed

+17
-72
lines changed

3 files changed

+17
-72
lines changed

tests/e2e/data/config_files/simple_kg_pipeline_config.json

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,12 @@
11
{
22
"version_": "1",
33
"template_": "SimpleKGPipeline",
4+
"extras": {
5+
"openai_api_key": {
6+
"resolver_": "ENV",
7+
"key_": "MY_OPENAI_KEY"
8+
}
9+
},
410
"neo4j_config": {
511
"params_": {
612
"uri": {
@@ -36,8 +42,8 @@
3642
"class_": "OpenAIEmbeddings",
3743
"params_": {
3844
"api_key": {
39-
"resolver_": "ENV",
40-
"var_": "OPENAI_API_KEY"
45+
"resolver_": "CONFIG_KEY",
46+
"key_": "extras.openai_api_key"
4147
}
4248
}
4349
},

tests/e2e/experimental/pipeline/config/test_pipeline_runner_e2e.py

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -129,10 +129,18 @@ async def test_simple_kg_pipeline_from_json_config(
129129
os.environ["NEO4J_USER"] = "neo4j"
130130
os.environ["NEO4J_PASSWORD"] = "password"
131131
os.environ["OPENAI_API_KEY"] = "sk-my-secret-key"
132+
os.environ["MY_OPENAI_KEY"] = "my-openai-key"
132133

133134
runner = PipelineRunner.from_config_file(
134135
"tests/e2e/data/config_files/simple_kg_pipeline_config.json"
135136
)
137+
config = runner.config
138+
assert config._global_data["extras"] == {"openai_api_key": "my-openai-key"}
139+
default_llm = config._global_data["llm_config"]["default"]
140+
assert default_llm.client.api_key == "my-openai-key" # read from extras
141+
default_embedder = config._global_data["embedder_config"]["default"]
142+
assert default_embedder.client.api_key == "sk-my-secret-key" # read from env vaf
143+
136144
res = await runner.run({"file_path": "tests/e2e/data/documents/harry_potter.pdf"})
137145
assert isinstance(res, PipelineResult)
138146
# print(await runner.pipeline.store.get_result_for_component(res.run_id, "splitter"))

tests/unit/experimental/pipeline/config/test_pipeline_config.py

Lines changed: 1 addition & 70 deletions
Original file line numberDiff line numberDiff line change
@@ -12,9 +12,7 @@
1212
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
1313
# See the License for the specific language governing permissions and
1414
# limitations under the License.
15-
import json
16-
import tempfile
17-
from unittest.mock import MagicMock, Mock, patch
15+
from unittest.mock import Mock, patch
1816

1917
import neo4j
2018
from neo4j_graphrag.embeddings import Embedder
@@ -32,7 +30,6 @@
3230
from neo4j_graphrag.experimental.pipeline.config.pipeline_config import (
3331
AbstractPipelineConfig,
3432
)
35-
from neo4j_graphrag.experimental.pipeline.config.runner import PipelineRunner
3633
from neo4j_graphrag.experimental.pipeline.types import ComponentDefinition
3734
from neo4j_graphrag.llm import LLMInterface
3835

@@ -379,69 +376,3 @@ def test_abstract_pipeline_config_resolve_component_definition_with_run_params(
379376
assert component_definition.component == component
380377
assert component_definition.run_params == {"param": "resolver param result"}
381378
mock_resolve_params.assert_called_once_with({"param1": "value1"})
382-
383-
384-
@patch(
385-
"neo4j_graphrag.experimental.pipeline.config.object_config.Neo4jDriverConfig.parse"
386-
)
387-
@patch("os.environ.get")
388-
def test_simple_kg_pipeline_config_from_file(
389-
mock_getenv: Mock,
390-
mock_neo4j_config: Mock,
391-
) -> None:
392-
mock_getenv.return_value = "some_value"
393-
neo4j_driver_mock = MagicMock()
394-
neo4j_driver_mock.return_value.execute_query.return_value = ("5.23", None, None)
395-
mock_neo4j_config.return_value.execute_query.return_value = (
396-
[{"versions": ["5.23"]}],
397-
None,
398-
None,
399-
)
400-
json_config_dict = {
401-
"version_": "1",
402-
"template_": "SimpleKGPipeline",
403-
"extras": {
404-
"openai_api_key": {"resolver_": "ENV", "var_": "MY_ENV_VAR"},
405-
},
406-
"neo4j_config": {
407-
"params_": {
408-
"uri": "bolt://myhost",
409-
"user": "neo4j",
410-
"password": "password",
411-
}
412-
},
413-
"llm_config": {
414-
"class_": "OpenAILLM",
415-
"params_": {
416-
"model_name": "gpt-4o",
417-
"api_key": {
418-
"resolver_": "CONFIG_KEY",
419-
"key_": "extras.openai_api_key",
420-
},
421-
},
422-
},
423-
"embedder_config": {
424-
"class_": "OpenAIEmbeddings",
425-
"params_": {
426-
"api_key": {
427-
"resolver_": "CONFIG_KEY",
428-
"key_": "extras.openai_api_key",
429-
}
430-
},
431-
},
432-
}
433-
json_string = json.dumps(json_config_dict)
434-
with tempfile.NamedTemporaryFile(mode="w", suffix=".json", delete=False) as fp:
435-
fp.write(json_string)
436-
fp.close()
437-
# the file is closed, but not removed
438-
# open the file again by using its name
439-
runner = PipelineRunner.from_config_file(fp.name)
440-
config = runner.config
441-
442-
assert config is not None
443-
# check 'extras' have been resolved
444-
assert config._global_data["extras"] == {"openai_api_key": "some_value"}
445-
# check api key is propagated to the LLM
446-
default_llm = config._global_data["llm_config"]["default"]
447-
assert default_llm.client.api_key == "some_value"

0 commit comments

Comments
 (0)