forked from tox-dev/tox
-
Notifications
You must be signed in to change notification settings - Fork 1
/
test_ci.py
56 lines (48 loc) · 1.69 KB
/
test_ci.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
from __future__ import annotations
import pytest
from tox.util.ci import _ENV_VARS, is_ci
@pytest.mark.parametrize(
"env_var",
{
"CI": None, # generic flag
"TF_BUILD": "true", # Azure Pipelines
"bamboo.buildKey": None, # Bamboo
"BUILDKITE": "true", # Buildkite
"CIRCLECI": "true", # Circle CI
"CIRRUS_CI": "true", # Cirrus CI
"CODEBUILD_BUILD_ID": None, # CodeBuild
"GITHUB_ACTIONS": "true", # GitHub Actions
"GITLAB_CI": None, # GitLab CI
"HEROKU_TEST_RUN_ID": None, # Heroku CI
"BUILD_ID": None, # Hudson
"TEAMCITY_VERSION": None, # TeamCity
"TRAVIS": "true", # Travis CI
}.items(),
ids=lambda v: v[0], # type: ignore
)
def test_is_ci(env_var: tuple[str, str | None], monkeypatch: pytest.MonkeyPatch) -> None:
for var in _ENV_VARS:
monkeypatch.delenv(var, raising=False)
monkeypatch.setenv(env_var[0], env_var[1] or "")
assert is_ci()
@pytest.mark.parametrize(
"env_var",
{
"TF_BUILD": "", # Azure Pipelines
"BUILDKITE": "", # Buildkite
"CIRCLECI": "", # Circle CI
"CIRRUS_CI": "", # Cirrus CI
"GITHUB_ACTIONS": "", # GitHub Actions
"TRAVIS": "", # Travis CI
}.items(),
ids=lambda v: v[0], # type: ignore
)
def test_is_ci_bad_set(env_var: tuple[str, str], monkeypatch: pytest.MonkeyPatch) -> None:
for var in _ENV_VARS:
monkeypatch.delenv(var, raising=False)
monkeypatch.setenv(env_var[0], env_var[1])
assert not is_ci()
def test_is_ci_not(monkeypatch: pytest.MonkeyPatch) -> None:
for var in _ENV_VARS:
monkeypatch.delenv(var, raising=False)
assert not is_ci()