3
3
import subprocess
4
4
import tempfile
5
5
from typing import Generator
6
- from unittest .mock import patch
6
+ from unittest .mock import MagicMock , Mock , patch
7
7
8
8
import pytest
9
9
from opentelemetry .sdk .resources import Resource
@@ -26,11 +26,27 @@ def bare_codebase() -> Generator[str, None, None]:
26
26
27
27
@pytest .fixture
28
28
def resource () -> Resource :
29
- return CodebaseResourceDetector ().detect ()
29
+ return CodebaseResourceDetector (Mock () ).detect ()
30
30
31
31
32
- def test_service_name_from_directory (bare_codebase : str , resource : Resource ) -> None :
33
- assert resource .attributes ['service.name' ] == 'my-project'
32
+ def test_get_codebase_name () -> None :
33
+ config = MagicMock ()
34
+ config .inicfg = {'junit_suite_name' : 'my-project' }
35
+ config .rootpath .name = None
36
+ config .getoption .return_value = None
37
+ assert CodebaseResourceDetector (config ).get_codebase_name () == 'my-project'
38
+
39
+ config = MagicMock ()
40
+ config .inicfg = {}
41
+ config .rootpath .name = None
42
+ config .getoption .return_value = 'my-project'
43
+ assert CodebaseResourceDetector (config ).get_codebase_name () == 'my-project'
44
+
45
+ config = MagicMock ()
46
+ config .inicfg = {}
47
+ config .rootpath .name = 'my-project'
48
+ config .getoption .return_value = None
49
+ assert CodebaseResourceDetector (config ).get_codebase_name () == 'my-project'
34
50
35
51
36
52
def test_service_version_unknown (bare_codebase : str , resource : Resource ) -> None :
@@ -45,15 +61,15 @@ def test_service_version_git_problems() -> None:
45
61
subprocess .CalledProcessError (128 , ['git' , 'rev-parse' , 'HEAD' ]),
46
62
],
47
63
):
48
- resource = CodebaseResourceDetector ().detect ()
64
+ resource = CodebaseResourceDetector (Mock () ).detect ()
49
65
assert resource .attributes ['service.version' ] == (
50
66
"[unknown: Command '['git', 'rev-parse', 'HEAD']' "
51
67
"returned non-zero exit status 128.]"
52
68
)
53
69
with patch (
54
70
'pytest_opentelemetry.resource.subprocess.check_output' , side_effect = [b'false' ]
55
71
):
56
- resource = CodebaseResourceDetector ().detect ()
72
+ resource = CodebaseResourceDetector (Mock () ).detect ()
57
73
assert resource .attributes ['service.version' ] == (
58
74
"[unknown: not a git repository]"
59
75
)
0 commit comments