|
| 1 | +import pytest |
| 2 | +import os |
| 3 | +from lazyllm.module.llms.onlinemodule.supplier.deepseek import DeepSeekModule |
| 4 | +from lazyllm.module.llms.onlinemodule.supplier.doubao import DoubaoModule |
| 5 | +from lazyllm.module.llms.onlinemodule.supplier.kimi import KimiModule |
| 6 | +from lazyllm.module.llms.onlinemodule.supplier.openai import OpenAIModule |
| 7 | +from lazyllm.module.llms.onlinemodule.supplier.glm import GLMModule |
| 8 | +from lazyllm.module.llms.onlinemodule.supplier.qwen import QwenModule |
| 9 | +from lazyllm.module.llms.onlinemodule.supplier.sensenova import SenseNovaModule |
| 10 | + |
| 11 | + |
| 12 | +class TestValidateApiKey: |
| 13 | + '''Test online model API Key validation functionality''' |
| 14 | + |
| 15 | + def setup_method(self): |
| 16 | + '''Initialize test environment, get API Keys from environment variables''' |
| 17 | + self.api_keys = { |
| 18 | + 'deepseek': os.getenv('LAZYLLM_DEEPSEEK_API_KEY'), |
| 19 | + 'doubao': os.getenv('LAZYLLM_DOUBAO_API_KEY'), |
| 20 | + 'kimi': os.getenv('LAZYLLM_KIMI_API_KEY'), |
| 21 | + 'openai': os.getenv('LAZYLLM_OPENAI_API_KEY'), |
| 22 | + 'glm': os.getenv('LAZYLLM_GLM_API_KEY'), |
| 23 | + 'qwen': os.getenv('LAZYLLM_QWEN_API_KEY'), |
| 24 | + 'sensenova': os.getenv('LAZYLLM_SENSENOVA_API_KEY'), |
| 25 | + } |
| 26 | + # Get sensenova secret key |
| 27 | + self.sensenova_secret_key = os.getenv('LAZYLLM_SENSENOVA_SECRET_KEY') |
| 28 | + # Get doubao model name (if set in environment variables) |
| 29 | + self.doubao_model_name = os.getenv('LAZYLLM_DOUBAO_MODEL_NAME') |
| 30 | + |
| 31 | + def test_deepseek_validate_valid_api_key(self): |
| 32 | + '''Test DeepSeek valid API Key validation''' |
| 33 | + if not self.api_keys['deepseek']: |
| 34 | + pytest.skip('LAZYLLM_DEEPSEEK_API_KEY environment variable is not set') |
| 35 | + |
| 36 | + module = DeepSeekModule(api_key=self.api_keys['deepseek']) |
| 37 | + result = module._validate_api_key() |
| 38 | + assert result is True, 'DeepSeek valid API Key should pass validation' |
| 39 | + |
| 40 | + def test_deepseek_validate_invalid_api_key(self): |
| 41 | + '''Test DeepSeek invalid API Key validation''' |
| 42 | + module = DeepSeekModule(api_key='invalid_api_key_12345') |
| 43 | + result = module._validate_api_key() |
| 44 | + assert result is False, 'DeepSeek invalid API Key should fail validation' |
| 45 | + |
| 46 | + def test_doubao_validate_valid_api_key(self): |
| 47 | + '''Test Doubao valid API Key validation''' |
| 48 | + if not self.api_keys['doubao']: |
| 49 | + pytest.skip('LAZYLLM_DOUBAO_API_KEY environment variable is not set') |
| 50 | + |
| 51 | + # If model name is set in environment variables, use it; otherwise use default |
| 52 | + if self.doubao_model_name: |
| 53 | + module = DoubaoModule( |
| 54 | + api_key=self.api_keys['doubao'], |
| 55 | + model=self.doubao_model_name |
| 56 | + ) |
| 57 | + else: |
| 58 | + module = DoubaoModule(api_key=self.api_keys['doubao']) |
| 59 | + |
| 60 | + result = module._validate_api_key() |
| 61 | + assert result is True, 'Doubao valid API Key should pass validation' |
| 62 | + |
| 63 | + def test_doubao_validate_invalid_api_key(self): |
| 64 | + '''Test Doubao invalid API Key validation''' |
| 65 | + module = DoubaoModule(api_key='invalid_api_key_12345') |
| 66 | + result = module._validate_api_key() |
| 67 | + assert result is False, 'Doubao invalid API Key should fail validation' |
| 68 | + |
| 69 | + def test_kimi_validate_valid_api_key(self): |
| 70 | + '''Test Kimi valid API Key validation''' |
| 71 | + if not self.api_keys['kimi']: |
| 72 | + pytest.skip('LAZYLLM_KIMI_API_KEY environment variable is not set') |
| 73 | + |
| 74 | + module = KimiModule(api_key=self.api_keys['kimi']) |
| 75 | + result = module._validate_api_key() |
| 76 | + assert result is True, 'Kimi valid API Key should pass validation' |
| 77 | + |
| 78 | + def test_kimi_validate_invalid_api_key(self): |
| 79 | + '''Test Kimi invalid API Key validation''' |
| 80 | + module = KimiModule(api_key='invalid_api_key_12345') |
| 81 | + result = module._validate_api_key() |
| 82 | + assert result is False, 'Kimi invalid API Key should fail validation' |
| 83 | + |
| 84 | + def test_openai_validate_valid_api_key(self): |
| 85 | + '''Test OpenAI valid API Key validation''' |
| 86 | + if not self.api_keys['openai']: |
| 87 | + pytest.skip('LAZYLLM_OPENAI_API_KEY environment variable is not set') |
| 88 | + |
| 89 | + module = OpenAIModule(api_key=self.api_keys['openai']) |
| 90 | + result = module._validate_api_key() |
| 91 | + assert result is True, 'OpenAI valid API Key should pass validation' |
| 92 | + |
| 93 | + def test_openai_validate_invalid_api_key(self): |
| 94 | + '''Test OpenAI invalid API Key validation''' |
| 95 | + module = OpenAIModule(api_key='invalid_api_key_12345') |
| 96 | + result = module._validate_api_key() |
| 97 | + assert result is False, 'OpenAI invalid API Key should fail validation' |
| 98 | + |
| 99 | + def test_glm_validate_valid_api_key(self): |
| 100 | + '''Test GLM valid API Key validation''' |
| 101 | + if not self.api_keys['glm']: |
| 102 | + pytest.skip('LAZYLLM_GLM_API_KEY environment variable is not set') |
| 103 | + |
| 104 | + module = GLMModule(api_key=self.api_keys['glm']) |
| 105 | + result = module._validate_api_key() |
| 106 | + assert result is True, 'GLM valid API Key should pass validation' |
| 107 | + |
| 108 | + def test_glm_validate_invalid_api_key(self): |
| 109 | + '''Test GLM invalid API Key validation''' |
| 110 | + module = GLMModule(api_key='invalid_api_key_12345') |
| 111 | + result = module._validate_api_key() |
| 112 | + assert result is False, 'GLM invalid API Key should fail validation' |
| 113 | + |
| 114 | + def test_qwen_validate_valid_api_key(self): |
| 115 | + '''Test Qwen valid API Key validation''' |
| 116 | + if not self.api_keys['qwen']: |
| 117 | + pytest.skip('LAZYLLM_QWEN_API_KEY environment variable is not set') |
| 118 | + |
| 119 | + module = QwenModule(api_key=self.api_keys['qwen']) |
| 120 | + result = module._validate_api_key() |
| 121 | + assert result is True, 'Qwen valid API Key should pass validation' |
| 122 | + |
| 123 | + def test_qwen_validate_invalid_api_key(self): |
| 124 | + '''Test Qwen invalid API Key validation''' |
| 125 | + module = QwenModule(api_key='invalid_api_key_12345') |
| 126 | + result = module._validate_api_key() |
| 127 | + assert result is False, 'Qwen invalid API Key should fail validation' |
| 128 | + |
| 129 | + def test_sensenova_validate_valid_api_key(self): |
| 130 | + '''Test SenseNova valid API Key validation''' |
| 131 | + if not self.api_keys['sensenova'] or not self.sensenova_secret_key: |
| 132 | + pytest.skip('LAZYLLM_SENSENOVA_API_KEY or LAZYLLM_SENSENOVA_SECRET_KEY environment variable is not set') |
| 133 | + |
| 134 | + module = SenseNovaModule( |
| 135 | + api_key=self.api_keys['sensenova'], |
| 136 | + secret_key=self.sensenova_secret_key |
| 137 | + ) |
| 138 | + result = module._validate_api_key() |
| 139 | + assert result is True, 'SenseNova valid API Key should pass validation' |
| 140 | + |
| 141 | + def test_sensenova_validate_invalid_api_key(self): |
| 142 | + '''Test SenseNova invalid API Key validation''' |
| 143 | + module = SenseNovaModule( |
| 144 | + api_key='invalid_api_key_12345', |
| 145 | + secret_key='invalid_secret_key_12345' |
| 146 | + ) |
| 147 | + result = module._validate_api_key() |
| 148 | + assert result is False, 'SenseNova invalid API Key should fail validation' |
0 commit comments