1+ import os
2+ from enum import Enum
3+
4+ import pytest
5+
6+ from codecov_cli .fallbacks import FallbackFieldEnum
7+ from codecov_cli .helpers .ci_adapters import HarnessAdapter
8+
9+
10+ class HarnessEnvEnum (str , Enum ):
11+ CI_BUILD_LINK = "CI_BUILD_LINK"
12+ CI_BUILD_NUMBER = "CI_BUILD_NUMBER"
13+ CI_REPO = "CI_REPO"
14+ DRONE = "DRONE"
15+ DRONE_COMMIT_BRANCH = "DRONE_COMMIT_BRANCH"
16+ DRONE_COMMIT_SHA = "DRONE_COMMIT_SHA"
17+ DRONE_PULL_REQUEST = "DRONE_PULL_REQUEST"
18+
19+ class TestHarnessCI (object ):
20+ @pytest .mark .parametrize (
21+ "env_dict,expected" ,
22+ [
23+ ({}, False ),
24+ ({HarnessEnvEnum .DRONE : "true" }, True ),
25+ ],
26+ )
27+ def test_detect (self , env_dict , expected , mocker ):
28+ mocker .patch .dict (os .environ , env_dict )
29+ actual = HarnessAdapter ().detect ()
30+ assert actual == expected
31+
32+ @pytest .mark .parametrize (
33+ "env_dict,expected" ,
34+ [
35+ ({}, None ),
36+ ({HarnessEnvEnum .DRONE_COMMIT_BRANCH : "branch" }, "branch" ),
37+ ],
38+ )
39+ def test_branch (self , env_dict , expected , mocker ):
40+ mocker .patch .dict (os .environ , env_dict )
41+ actual = HarnessAdapter ().get_fallback_value (FallbackFieldEnum .branch )
42+ assert actual == expected
43+
44+ @pytest .mark .parametrize (
45+ "env_dict,expected" ,
46+ [
47+ ({}, None ),
48+ ({HarnessEnvEnum .DRONE_COMMIT_SHA : "sha" }, "sha" ),
49+ ],
50+ )
51+ def test_commit_sha (self , env_dict , expected , mocker ):
52+ mocker .patch .dict (os .environ , env_dict )
53+ actual = HarnessAdapter ().get_fallback_value (FallbackFieldEnum .commit_sha )
54+ assert actual == expected
55+
56+ @pytest .mark .parametrize (
57+ "env_dict,expected" ,
58+ [
59+ ({}, None ),
60+ ({HarnessEnvEnum .DRONE_PULL_REQUEST : "123" }, "123" ),
61+ ],
62+ )
63+ def test_pull_request_number (self , env_dict , expected , mocker ):
64+ mocker .patch .dict (os .environ , env_dict )
65+ actual = HarnessAdapter ().get_fallback_value (FallbackFieldEnum .pull_request_number )
66+ assert actual == expected
67+
68+ @pytest .mark .parametrize (
69+ "env_dict,expected" ,
70+ [
71+ ({}, None ),
72+ ({HarnessEnvEnum .CI_BUILD_NUMBER : "123" }, "123" ),
73+ ],
74+ )
75+ def test_build_code (self , env_dict , expected , mocker ):
76+ mocker .patch .dict (os .environ , env_dict )
77+ actual = HarnessAdapter ().get_fallback_value (FallbackFieldEnum .build_code )
78+ assert actual == expected
79+
80+ @pytest .mark .parametrize (
81+ "env_dict,expected" ,
82+ [
83+ ({}, None ),
84+ ({HarnessEnvEnum .CI_BUILD_LINK : "https://example.com" }, "https://example.com" ),
85+ ],
86+ )
87+ def test_build_url (self , env_dict , expected , mocker ):
88+ mocker .patch .dict (os .environ , env_dict )
89+ actual = HarnessAdapter ().get_fallback_value (FallbackFieldEnum .build_url )
90+ assert actual == expected
91+
92+ @pytest .mark .parametrize (
93+ "env_dict,expected" ,
94+ [
95+ ({}, None ),
96+ ({HarnessEnvEnum .CI_REPO : "repo" }, "repo" ),
97+ ],
98+ )
99+ def test_slug (self , env_dict , expected , mocker ):
100+ mocker .patch .dict (os .environ , env_dict )
101+ actual = HarnessAdapter ().get_fallback_value (FallbackFieldEnum .slug )
102+ assert actual == expected
103+
104+ def test_service (self ):
105+ assert (
106+ HarnessAdapter ().get_fallback_value (FallbackFieldEnum .service ) == "harness"
107+ )
0 commit comments