Test embedder selection via environment variables.
| 322 | |
| 323 | |
| 324 | class TestEnvironmentVariableHandling: |
| 325 | """Test embedder selection via environment variables.""" |
| 326 | |
| 327 | def test_embedder_type_env_var(self, embedder_type=None): |
| 328 | """Test embedder selection via DEEPWIKI_EMBEDDER_TYPE environment variable.""" |
| 329 | import importlib |
| 330 | import api.config |
| 331 | |
| 332 | if embedder_type: |
| 333 | # Test specific embedder type |
| 334 | self._test_single_embedder_type(embedder_type) |
| 335 | else: |
| 336 | # Test all embedder types |
| 337 | for et in ['openai', 'google', 'ollama', 'bedrock']: |
| 338 | self._test_single_embedder_type(et) |
| 339 | |
| 340 | def _test_single_embedder_type(self, embedder_type): |
| 341 | """Test a single embedder type.""" |
| 342 | import importlib |
| 343 | import api.config |
| 344 | |
| 345 | # Save original value |
| 346 | original_value = os.environ.get('DEEPWIKI_EMBEDDER_TYPE') |
| 347 | |
| 348 | try: |
| 349 | # Set environment variable |
| 350 | os.environ['DEEPWIKI_EMBEDDER_TYPE'] = embedder_type |
| 351 | |
| 352 | # Reload config to pick up new env var |
| 353 | importlib.reload(api.config) |
| 354 | |
| 355 | from api.config import EMBEDDER_TYPE, get_embedder_type |
| 356 | |
| 357 | assert EMBEDDER_TYPE == embedder_type, f"EMBEDDER_TYPE should be {embedder_type}" |
| 358 | assert get_embedder_type() == embedder_type, f"get_embedder_type() should return {embedder_type}" |
| 359 | |
| 360 | finally: |
| 361 | # Restore original value |
| 362 | if original_value is not None: |
| 363 | os.environ['DEEPWIKI_EMBEDDER_TYPE'] = original_value |
| 364 | elif 'DEEPWIKI_EMBEDDER_TYPE' in os.environ: |
| 365 | del os.environ['DEEPWIKI_EMBEDDER_TYPE'] |
| 366 | |
| 367 | # Reload config to restore original state |
| 368 | importlib.reload(api.config) |
| 369 | |
| 370 | |
| 371 | class TestIssuesIdentified: |
no outgoing calls