File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff line change @@ -64,6 +64,15 @@ def setup_environment(
6464 os .environ ["ANTHROPIC_API_KEY" ] = os .environ [anthropic_tag ]
6565 if openrouter_tag in os .environ :
6666 os .environ ["OPENROUTER_API_KEY" ] = os .environ [openrouter_tag ]
67+
68+ # Blank values in .env are loaded as ""; treat any var ending in _API_KEY or HF_TOKEN as unset.
69+ _other_secret_env_vars = ("HF_TOKEN" ,)
70+ for key in list (os .environ ):
71+ if (key .endswith ("_API_KEY" ) or key in _other_secret_env_vars ) and (
72+ (os .environ [key ] or "" ).strip () == ""
73+ ):
74+ del os .environ [key ]
75+
6776 # warn if we do not have an openai api key
6877 if "OPENAI_API_KEY" not in os .environ :
6978 LOGGER .warning ("OPENAI_API_KEY not found in environment, OpenAI API will not be available" )
Original file line number Diff line number Diff line change 1+ import os
2+ from unittest .mock import patch
3+
4+ from safetytooling .utils import utils
5+
6+
7+ def test_setup_environment_treats_blank_api_keys_as_unset ():
8+ with patch ("safetytooling.utils.utils.dotenv.load_dotenv" , return_value = True ):
9+ os .environ ["TOGETHER_API_KEY" ] = ""
10+ try :
11+ utils .setup_environment ()
12+ # Should be removed so downstream code gets None, not ""
13+ assert "TOGETHER_API_KEY" not in os .environ
14+ finally :
15+ os .environ .pop ("TOGETHER_API_KEY" , None )
16+
17+
18+ def test_setup_environment_treats_whitespace_only_api_keys_as_unset ():
19+ with patch ("safetytooling.utils.utils.dotenv.load_dotenv" , return_value = True ):
20+ os .environ ["TOGETHER_API_KEY" ] = " \t "
21+ try :
22+ utils .setup_environment ()
23+ assert "TOGETHER_API_KEY" not in os .environ
24+ finally :
25+ os .environ .pop ("TOGETHER_API_KEY" , None )
26+
27+
28+ def test_setup_environment_normalizes_any_var_ending_in_api_key ():
29+ with patch ("safetytooling.utils.utils.dotenv.load_dotenv" , return_value = True ):
30+ os .environ ["SOME_FUTURE_API_KEY" ] = ""
31+ try :
32+ utils .setup_environment ()
33+ assert "SOME_FUTURE_API_KEY" not in os .environ
34+ finally :
35+ os .environ .pop ("SOME_FUTURE_API_KEY" , None )
You can’t perform that action at this time.
0 commit comments