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
						
					
					
				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()
 |