| """ |
| Test suite for model_manager module |
| """ |
|
|
| import pytest |
| from model_manager import ModelManager |
|
|
|
|
| def test_model_manager_initialization(): |
| """Test that model manager initializes correctly""" |
| manager = ModelManager() |
| assert manager.current_model == "keyword" |
| assert manager.model_configs is not None |
|
|
|
|
| def test_get_available_models(): |
| """Test getting available models""" |
| manager = ModelManager() |
| models = manager.get_available_models() |
| |
| assert len(models) == 10 |
| model_ids = [m["id"] for m in models] |
| assert "keyword" in model_ids |
| assert "openai" in model_ids |
| assert "anthropic" in model_ids |
| assert "ollama" in model_ids |
| assert "huggingface" in model_ids |
| assert "cohere" in model_ids |
| assert "google" in model_ids |
| assert "together" in model_ids |
| assert "replicate" in model_ids |
| assert "deepseek" in model_ids |
|
|
|
|
| def test_set_model(): |
| """Test setting current model""" |
| manager = ModelManager() |
| |
| assert manager.set_model("openai") == True |
| assert manager.current_model == "openai" |
| |
| assert manager.set_model("invalid") == False |
| assert manager.current_model == "openai" |
|
|
|
|
| def test_get_current_model(): |
| """Test getting current model""" |
| manager = ModelManager() |
| manager.set_model("anthropic") |
| |
| assert manager.get_current_model() == "anthropic" |
|
|
|
|
| def test_check_api_key(): |
| """Test API key checking""" |
| manager = ModelManager() |
| |
| |
| assert manager.check_api_key("keyword") == True |
| |
| |
| assert manager.check_api_key("openai") == False |
|
|
|
|
| def test_keyword_analysis(): |
| """Test keyword-based analysis""" |
| manager = ModelManager() |
| |
| test_paper = { |
| 'title': 'Test Paper', |
| 'summary': 'This is a test paper about AI' |
| } |
| |
| result = manager.analyze_paper_semantic(test_paper, "keyword") |
| |
| assert result['model_used'] == "keyword" |
| assert result['semantic_relevance'] == 0.0 |
| assert result['key_concepts'] == [] |
|
|
|
|
| def test_batch_analyze(): |
| """Test batch analysis""" |
| manager = ModelManager() |
| |
| papers = [ |
| {'title': 'Paper 1', 'summary': 'Summary 1'}, |
| {'title': 'Paper 2', 'summary': 'Summary 2'} |
| ] |
| |
| results = manager.batch_analyze(papers, "keyword") |
| |
| assert len(results) == 2 |
| assert all('semantic_analysis' in p for p in results) |
|
|