From f00d230fd38d0f0c638d011813db2f6ee1e5ecc0 Mon Sep 17 00:00:00 2001 From: Marty Oehme Date: Mon, 8 Dec 2025 17:38:23 +0100 Subject: [PATCH] test: Add test for parsing circular env vars --- test/test_configuration.py | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/test/test_configuration.py b/test/test_configuration.py index 7afe8c8..a4573c6 100644 --- a/test/test_configuration.py +++ b/test/test_configuration.py @@ -7,6 +7,7 @@ import pytest from topen import TConf, build_config + class TestTConf: def test_paths_are_expanded(self): cfg = TConf.from_dict( @@ -62,6 +63,17 @@ class TestBuildConfigPrecedence: cfg = build_config() assert cfg.notes_ext == "from-env" + def test_circular_env_vars(self, isolate_env, monkeypatch, fake_id): + """Test environment variables with circular references.""" + for k, v in { + "TOPEN_NOTES_DIR": "$TOPEN_NOTES_DIR/subdir", + "EDITOR": "${EDITOR}_backup", + }.items(): + monkeypatch.setenv(k, v) + cfg = build_config() + assert cfg.notes_dir == Path("$TOPEN_NOTES_DIR/subdir/subdir") + assert cfg.notes_editor == "nano" + def test_cli_overrides_env(self, fake_rc, monkeypatch, isolate_env): fake_rc.write_text("notes.ext=from-rc\n") monkeypatch.setenv("TOPEN_NOTES_EXT", "from-env")