You can not select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
				
					31 lines
				
				797 B
			
		
		
			
		
	
	
					31 lines
				
				797 B
			| 
								 
											3 years ago
										 
									 | 
							
								from tempfile import NamedTemporaryFile
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								import pytest
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								import openai
							 | 
						||
| 
								 | 
							
								from openai import util
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								@pytest.fixture(scope="function")
							 | 
						||
| 
								 | 
							
								def api_key_file():
							 | 
						||
| 
								 | 
							
								    saved_path = openai.api_key_path
							 | 
						||
| 
								 | 
							
								    try:
							 | 
						||
| 
								 | 
							
								        with NamedTemporaryFile(prefix="openai-api-key", mode="wt") as tmp:
							 | 
						||
| 
								 | 
							
								            openai.api_key_path = tmp.name
							 | 
						||
| 
								 | 
							
								            yield tmp
							 | 
						||
| 
								 | 
							
								    finally:
							 | 
						||
| 
								 | 
							
								        openai.api_key_path = saved_path
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								def test_openai_api_key_path(api_key_file) -> None:
							 | 
						||
| 
								 | 
							
								    print("sk-foo", file=api_key_file)
							 | 
						||
| 
								 | 
							
								    api_key_file.flush()
							 | 
						||
| 
								 | 
							
								    assert util.default_api_key() == "sk-foo"
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								def test_openai_api_key_path_with_malformed_key(api_key_file) -> None:
							 | 
						||
| 
								 | 
							
								    print("malformed-api-key", file=api_key_file)
							 | 
						||
| 
								 | 
							
								    api_key_file.flush()
							 | 
						||
| 
								 | 
							
								    with pytest.raises(ValueError, match="Malformed API key"):
							 | 
						||
| 
								 | 
							
								        util.default_api_key()
							 |