40 lines
1.5 KiB
Python
40 lines
1.5 KiB
Python
"""Tests for ops.system.setenv 模块 (setenv_run 函数)."""
|
|
|
|
from __future__ import annotations
|
|
|
|
import os
|
|
|
|
import pytest
|
|
|
|
from pyflowx.ops.system.setenv import setenv_run
|
|
|
|
|
|
class TestSetenvRun:
|
|
"""``setenv_run`` 函数测试."""
|
|
|
|
def test_setenv_overwrites_existing(self, monkeypatch: pytest.MonkeyPatch) -> None:
|
|
"""setenv_run(default=False) 应覆盖已有环境变量."""
|
|
monkeypatch.setenv("PYFLOWX_TEST_SETENV_1", "old")
|
|
setenv_run("PYFLOWX_TEST_SETENV_1", "new")
|
|
assert os.environ["PYFLOWX_TEST_SETENV_1"] == "new"
|
|
|
|
def test_setenv_default_not_overwrite(self, monkeypatch: pytest.MonkeyPatch) -> None:
|
|
"""setenv_run(default=True) 不应覆盖已有环境变量."""
|
|
monkeypatch.setenv("PYFLOWX_TEST_SETENV_2", "original")
|
|
setenv_run("PYFLOWX_TEST_SETENV_2", "new", default=True)
|
|
assert os.environ["PYFLOWX_TEST_SETENV_2"] == "original"
|
|
|
|
def test_setenv_default_sets_when_missing(self, monkeypatch: pytest.MonkeyPatch) -> None:
|
|
"""setenv_run(default=True) 应在变量缺失时设置."""
|
|
var = "PYFLOWX_TEST_SETENV_3"
|
|
monkeypatch.delenv(var, raising=False)
|
|
setenv_run(var, "value", default=True)
|
|
assert os.environ[var] == "value"
|
|
|
|
def test_setenv_creates_new_var(self, monkeypatch: pytest.MonkeyPatch) -> None:
|
|
"""setenv_run 应能创建新的环境变量."""
|
|
var = "PYFLOWX_TEST_SETENV_4"
|
|
monkeypatch.delenv(var, raising=False)
|
|
setenv_run(var, "created")
|
|
assert os.environ[var] == "created"
|