Coverage for intelligence_toolkit/tests/unit/helpers/test_classes.py: 100%
50 statements
« prev ^ index » next coverage.py v7.10.7, created at 2025-10-16 13:41 -0300
« prev ^ index » next coverage.py v7.10.7, created at 2025-10-16 13:41 -0300
1# Copyright (c) 2024 Microsoft Corporation. All rights reserved.
2# Licensed under the MIT license. See LICENSE file in the project.
3#
4from unittest.mock import patch
6import pytest
8from intelligence_toolkit.AI.openai_configuration import OpenAIConfiguration
9from intelligence_toolkit.helpers.classes import IntelligenceWorkflow
12@pytest.fixture
13def openai_config():
14 return OpenAIConfiguration({
15 "api_key": "test_key",
16 "model": "gpt-4",
17 "api_type": "OpenAI",
18 })
21def test_intelligence_workflow_initialization_without_config():
22 workflow = IntelligenceWorkflow()
23 assert workflow.ai_configuration is None
24 assert workflow.embedder is None
25 assert workflow.cache_embeddings is True
28def test_intelligence_workflow_initialization_with_config(openai_config):
29 workflow = IntelligenceWorkflow(openai_config)
30 assert workflow.ai_configuration == openai_config
31 assert workflow.embedder is None
32 assert workflow.cache_embeddings is True
35def test_set_ai_configuration(openai_config):
36 workflow = IntelligenceWorkflow()
38 with patch.object(workflow, 'set_embedder') as mock_set_embedder:
39 workflow.set_ai_configuration(openai_config)
41 assert workflow.ai_configuration == openai_config
42 mock_set_embedder.assert_called_once()
45def test_set_ai_configuration_with_existing_embedder(openai_config):
46 workflow = IntelligenceWorkflow()
47 workflow.embedder = "mock_embedder"
49 with patch.object(workflow, 'set_embedder') as mock_set_embedder:
50 workflow.set_ai_configuration(openai_config)
52 assert workflow.ai_configuration == openai_config
53 # Should not call set_embedder if embedder already exists
54 mock_set_embedder.assert_not_called()
57def test_set_embedder_local(openai_config):
58 with patch("intelligence_toolkit.helpers.classes.LocalEmbedder") as mock_local:
59 workflow = IntelligenceWorkflow(openai_config)
60 workflow.set_embedder(local_embedding=True, cache_embeddings=False)
62 mock_local.assert_called_once()
63 assert workflow.embedder is not None
64 assert workflow.cache_embeddings is False
67def test_set_embedder_openai(openai_config):
68 with patch("intelligence_toolkit.helpers.classes.OpenAIEmbedder") as mock_openai, \
69 patch("intelligence_toolkit.AI.client.OpenAI"), \
70 patch("intelligence_toolkit.AI.client.AsyncOpenAI"):
72 workflow = IntelligenceWorkflow(openai_config)
73 workflow.set_embedder(local_embedding=False, cache_embeddings=True)
75 mock_openai.assert_called_once_with(openai_config)
76 assert workflow.embedder is not None
77 assert workflow.cache_embeddings is True
80def test_set_embedder_default_parameters(openai_config):
81 with patch("intelligence_toolkit.helpers.classes.OpenAIEmbedder") as mock_openai, \
82 patch("intelligence_toolkit.AI.client.OpenAI"), \
83 patch("intelligence_toolkit.AI.client.AsyncOpenAI"):
85 workflow = IntelligenceWorkflow(openai_config)
86 workflow.set_embedder()
88 # Default is OpenAI embedder with cache_embeddings=True
89 mock_openai.assert_called_once()
90 assert workflow.cache_embeddings is True