@@ -285,18 +285,27 @@ def test_env_var_precedence(mock_env_file, tmp_path, monkeypatch): # noqa: ARG0
285
285
# Create local .env directory if it doesn't exist
286
286
local_env_dir = tmp_path / "local"
287
287
local_env_dir .mkdir (exist_ok = True )
288
+ system_env_dir = tmp_path / "system"
289
+ system_env_dir .mkdir (exist_ok = True )
288
290
monkeypatch .setattr ("sed.core.config.ENV_DIR" , local_env_dir / ".env" )
291
+ monkeypatch .setattr ("sed.core.config.SYSTEM_CONFIG_PATH" , system_env_dir )
289
292
290
293
# Set up test values in different locations
291
294
os .environ ["TEST_VAR" ] = "os_value"
292
295
293
- # Save to user config first (lowest precedence)
296
+ # Save to system config first (4th precedence)
297
+ with open (system_env_dir / ".env" , "w" ) as f :
298
+ f .write ("TEST_VAR=system_value\n " )
299
+
300
+ # Save to user config first (3rd precedence)
294
301
save_env_var ("TEST_VAR" , "user_value" )
295
302
296
- # Create local .env file (medium precedence)
303
+ # Create local .env file (2nd precedence)
297
304
with open (local_env_dir / ".env" , "w" ) as f :
298
305
f .write ("TEST_VAR=local_value\n " )
299
306
307
+ assert read_env_var ("TEST_VAR" ) == "os_value"
308
+
300
309
# Remove from OS env to test other precedence levels
301
310
monkeypatch .delenv ("TEST_VAR" , raising = False )
302
311
assert read_env_var ("TEST_VAR" ) == "local_value"
@@ -305,8 +314,12 @@ def test_env_var_precedence(mock_env_file, tmp_path, monkeypatch): # noqa: ARG0
305
314
(local_env_dir / ".env" ).unlink ()
306
315
assert read_env_var ("TEST_VAR" ) == "user_value"
307
316
308
- # Remove user config and should get None
317
+ # Remove user config and should get system value
309
318
(mock_env_file / ".env" ).unlink ()
319
+ assert read_env_var ("TEST_VAR" ) == "system_value"
320
+
321
+ # Remove system config and should get None
322
+ (system_env_dir / ".env" ).unlink ()
310
323
assert read_env_var ("TEST_VAR" ) is None
311
324
312
325
0 commit comments