From f65ad62bb3582b3dd5bf22a5bd3885c4f1f60716 Mon Sep 17 00:00:00 2001 From: Benedikt Bartscher Date: Mon, 27 Jul 2026 16:42:13 +0200 Subject: [PATCH 1/3] add validation for EnvVar uppercase --- .../src/reflex_base/environment.py | 6 +++++ tests/units/test_environment.py | 23 +++++++++++++++++++ 2 files changed, 29 insertions(+) diff --git a/packages/reflex-base/src/reflex_base/environment.py b/packages/reflex-base/src/reflex_base/environment.py index 33461cc19fc..9381d064515 100644 --- a/packages/reflex-base/src/reflex_base/environment.py +++ b/packages/reflex-base/src/reflex_base/environment.py @@ -405,7 +405,13 @@ def __init__(self, name: str, default: Any, type_: T) -> None: name: The environment variable name. default: The default value. type_: The type of the value. + + Raises: + ValueError: If the name is not fully uppercase. """ + if not name.isupper(): + msg = f"Environment variable name must be uppercase: {name!r}" + raise ValueError(msg) self.name = name self.default = default self.type_ = type_ diff --git a/tests/units/test_environment.py b/tests/units/test_environment.py index d3f93165957..50f0ad7e341 100644 --- a/tests/units/test_environment.py +++ b/tests/units/test_environment.py @@ -437,6 +437,29 @@ def test_set_list_value(self): del os.environ["TEST_VAR"] +@pytest.mark.parametrize( + "name", ["test_var", "Test_Var", "tEST_VAR", "reflex_use_npm"] +) +def test_env_var_name_not_uppercase_raises(name): + """Test that a non-uppercase environment variable name is rejected. + + Args: + name: The invalid environment variable name. + """ + with pytest.raises(ValueError, match="must be uppercase"): + EnvVar(name, "default", str) + + +@pytest.mark.parametrize("name", ["TEST_VAR", "__INTERNAL_VAR", "VAR_2"]) +def test_env_var_name_uppercase_accepted(name): + """Test that fully uppercase environment variable names are accepted. + + Args: + name: The valid environment variable name. + """ + assert EnvVar(name, "default", str).name == name + + class TestEnvVarDescriptor: """Test the env_var descriptor.""" From 5844415212fa85453e80fdab2759565758db10c6 Mon Sep 17 00:00:00 2001 From: Benedikt Bartscher Date: Mon, 27 Jul 2026 16:42:29 +0200 Subject: [PATCH 2/3] format --- tests/units/test_environment.py | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/tests/units/test_environment.py b/tests/units/test_environment.py index 50f0ad7e341..b5b477d5fcd 100644 --- a/tests/units/test_environment.py +++ b/tests/units/test_environment.py @@ -437,9 +437,7 @@ def test_set_list_value(self): del os.environ["TEST_VAR"] -@pytest.mark.parametrize( - "name", ["test_var", "Test_Var", "tEST_VAR", "reflex_use_npm"] -) +@pytest.mark.parametrize("name", ["test_var", "Test_Var", "tEST_VAR", "reflex_use_npm"]) def test_env_var_name_not_uppercase_raises(name): """Test that a non-uppercase environment variable name is rejected. From 324697c75545a8ef9997d6e30e693cf269cafbc5 Mon Sep 17 00:00:00 2001 From: Benedikt Bartscher Date: Tue, 4 Aug 2026 20:04:34 +0200 Subject: [PATCH 3/3] add changelog entry --- packages/reflex-base/news/6815.misc.md | 1 + 1 file changed, 1 insertion(+) create mode 100644 packages/reflex-base/news/6815.misc.md diff --git a/packages/reflex-base/news/6815.misc.md b/packages/reflex-base/news/6815.misc.md new file mode 100644 index 00000000000..8b4552b6b2b --- /dev/null +++ b/packages/reflex-base/news/6815.misc.md @@ -0,0 +1 @@ +Raise a `ValueError` when an `EnvVar` is declared with a name that is not fully uppercase, so misnamed environment variables are caught at definition time.