repositories
loading repo index
repositories
loading repo index
repository
loading code, commits, and activity
public Clawd ADK gateway launch mirror
stars
latest
clone command
git clone gitlawb://did:key:z6Mkq5mY...iFZ5/my-project-publ...git clone gitlawb://did:key:z6Mkq5mY.../my-project-publ...2fa351d6docs: add automaton and perps launch sources16d ago| #1 | from unittest.mock import Mock, patch |
| #2 | |
| #3 | import pytest |
| #4 | |
| #5 | from mem0.configs.embeddings.base import BaseEmbedderConfig |
| #6 | from mem0.embeddings.openai import OpenAIEmbedding |
| #7 | |
| #8 | |
| #9 | @pytest.fixture |
| #10 | def mock_openai_client(): |
| #11 | with patch("mem0.embeddings.openai.OpenAI") as mock_openai: |
| #12 | mock_client = Mock() |
| #13 | mock_openai.return_value = mock_client |
| #14 | yield mock_client |
| #15 | |
| #16 | |
| #17 | def test_embed_default_model(mock_openai_client): |
| #18 | config = BaseEmbedderConfig() |
| #19 | embedder = OpenAIEmbedding(config) |
| #20 | mock_response = Mock() |
| #21 | mock_response.data = [Mock(embedding=[0.1, 0.2, 0.3])] |
| #22 | mock_openai_client.embeddings.create.return_value = mock_response |
| #23 | |
| #24 | result = embedder.embed("Hello world") |
| #25 | |
| #26 | mock_openai_client.embeddings.create.assert_called_once_with( |
| #27 | input=["Hello world"], model="text-embedding-3-small", dimensions=1536 |
| #28 | ) |
| #29 | assert result == [0.1, 0.2, 0.3] |
| #30 | |
| #31 | |
| #32 | def test_embed_custom_model(mock_openai_client): |
| #33 | config = BaseEmbedderConfig(model="text-embedding-2-medium", embedding_dims=1024) |
| #34 | embedder = OpenAIEmbedding(config) |
| #35 | mock_response = Mock() |
| #36 | mock_response.data = [Mock(embedding=[0.4, 0.5, 0.6])] |
| #37 | mock_openai_client.embeddings.create.return_value = mock_response |
| #38 | |
| #39 | result = embedder.embed("Test embedding") |
| #40 | |
| #41 | mock_openai_client.embeddings.create.assert_called_once_with( |
| #42 | input=["Test embedding"], model="text-embedding-2-medium", dimensions=1024 |
| #43 | ) |
| #44 | assert result == [0.4, 0.5, 0.6] |
| #45 | |
| #46 | |
| #47 | def test_embed_removes_newlines(mock_openai_client): |
| #48 | config = BaseEmbedderConfig() |
| #49 | embedder = OpenAIEmbedding(config) |
| #50 | mock_response = Mock() |
| #51 | mock_response.data = [Mock(embedding=[0.7, 0.8, 0.9])] |
| #52 | mock_openai_client.embeddings.create.return_value = mock_response |
| #53 | |
| #54 | result = embedder.embed("Hello\nworld") |
| #55 | |
| #56 | mock_openai_client.embeddings.create.assert_called_once_with( |
| #57 | input=["Hello world"], model="text-embedding-3-small", dimensions=1536 |
| #58 | ) |
| #59 | assert result == [0.7, 0.8, 0.9] |
| #60 | |
| #61 | |
| #62 | def test_embed_without_api_key_env_var(mock_openai_client): |
| #63 | config = BaseEmbedderConfig(api_key="test_key") |
| #64 | embedder = OpenAIEmbedding(config) |
| #65 | mock_response = Mock() |
| #66 | mock_response.data = [Mock(embedding=[1.0, 1.1, 1.2])] |
| #67 | mock_openai_client.embeddings.create.return_value = mock_response |
| #68 | |
| #69 | result = embedder.embed("Testing API key") |
| #70 | |
| #71 | mock_openai_client.embeddings.create.assert_called_once_with( |
| #72 | input=["Testing API key"], model="text-embedding-3-small", dimensions=1536 |
| #73 | ) |
| #74 | assert result == [1.0, 1.1, 1.2] |
| #75 | |
| #76 | |
| #77 | def test_embed_uses_environment_api_key(mock_openai_client, monkeypatch): |
| #78 | monkeypatch.setenv("OPENAI_API_KEY", "env_key") |
| #79 | config = BaseEmbedderConfig() |
| #80 | embedder = OpenAIEmbedding(config) |
| #81 | mock_response = Mock() |
| #82 | mock_response.data = [Mock(embedding=[1.3, 1.4, 1.5])] |
| #83 | mock_openai_client.embeddings.create.return_value = mock_response |
| #84 | |
| #85 | result = embedder.embed("Environment key test") |
| #86 | |
| #87 | mock_openai_client.embeddings.create.assert_called_once_with( |
| #88 | input=["Environment key test"], model="text-embedding-3-small", dimensions=1536 |
| #89 | ) |
| #90 | assert result == [1.3, 1.4, 1.5] |
| #91 |