|
| 1 | +import os |
1 | 2 | from functools import partial |
2 | 3 | from typing import Any, Generic, TypeVar |
3 | 4 |
|
4 | 5 | import pytest |
5 | 6 |
|
6 | | -from litestar.utils.helpers import get_name, unique_name_for_scope, unwrap_partial |
| 7 | +from litestar.utils.helpers import envflag, get_name, unique_name_for_scope, unwrap_partial |
7 | 8 |
|
8 | 9 | T = TypeVar("T") |
9 | 10 |
|
@@ -45,3 +46,40 @@ def test_unique_name_for_scope() -> None: |
45 | 46 | assert unique_name_for_scope("a", ["a", "a_0", "b"]) == "a_1" |
46 | 47 |
|
47 | 48 | assert unique_name_for_scope("b", ["a", "a_0", "b"]) == "b_0" |
| 49 | + |
| 50 | + |
| 51 | +def test_envflag_truthy_values() -> None: |
| 52 | + for value in ("1", "true", "TRUE", "t", "T", "yes", "YES", "on", "ON", "y", "Y"): |
| 53 | + os.environ["TEST_FLAG"] = value |
| 54 | + assert envflag("TEST_FLAG") is True |
| 55 | + del os.environ["TEST_FLAG"] |
| 56 | + |
| 57 | + |
| 58 | +def test_envflag_falsy_values() -> None: |
| 59 | + for value in ("0", "false", "no", "off", ""): |
| 60 | + os.environ["TEST_FLAG"] = value |
| 61 | + assert envflag("TEST_FLAG") is False |
| 62 | + del os.environ["TEST_FLAG"] |
| 63 | + |
| 64 | + |
| 65 | +def test_envflag_missing() -> None: |
| 66 | + assert envflag("NONEXISTENT_VAR") is False |
| 67 | + assert envflag("NONEXISTENT_VAR_123", default=True) is True |
| 68 | + assert envflag("NONEXISTENT_VAR_456", default=False) is False |
| 69 | + |
| 70 | + |
| 71 | +def test_envflag_overrides_default() -> None: |
| 72 | + os.environ["TEST_FLAG"] = "true" |
| 73 | + assert envflag("TEST_FLAG", default=False) is True |
| 74 | + del os.environ["TEST_FLAG"] |
| 75 | + |
| 76 | + os.environ["TEST_FLAG"] = "0" |
| 77 | + assert envflag("TEST_FLAG", default=True) is False |
| 78 | + del os.environ["TEST_FLAG"] |
| 79 | + |
| 80 | + |
| 81 | +def test_envflag_empty_string_uses_default() -> None: |
| 82 | + os.environ["TEST_FLAG"] = "" |
| 83 | + assert envflag("TEST_FLAG", default=True) is True |
| 84 | + assert envflag("TEST_FLAG", default=False) is False |
| 85 | + del os.environ["TEST_FLAG"] |
0 commit comments