1111# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
1212# See the License for the specific language governing permissions and
1313# limitations under the License.
14-
14+ import os
1515import unittest
1616from unittest .mock import Mock , patch
1717
2121 _setup_instrumentations ,
2222 _setup_logging ,
2323 _setup_metrics ,
24+ _setup_resources ,
2425 _setup_tracing ,
2526 configure_azure_monitor ,
2627)
@@ -39,8 +40,12 @@ class TestConfigure(unittest.TestCase):
3940 @patch (
4041 "azure.monitor.opentelemetry._configure._setup_tracing" ,
4142 )
43+ @patch (
44+ "azure.monitor.opentelemetry._configure._setup_resources" ,
45+ )
4246 def test_configure_azure_monitor (
4347 self ,
48+ resource_mock ,
4449 tracing_mock ,
4550 logging_mock ,
4651 metrics_mock ,
@@ -50,6 +55,7 @@ def test_configure_azure_monitor(
5055 "connection_string" : "test_cs" ,
5156 }
5257 configure_azure_monitor (** kwargs )
58+ resource_mock .assert_called_once ()
5359 tracing_mock .assert_called_once ()
5460 logging_mock .assert_called_once ()
5561 metrics_mock .assert_called_once ()
@@ -67,12 +73,16 @@ def test_configure_azure_monitor(
6773 @patch (
6874 "azure.monitor.opentelemetry._configure._setup_tracing" ,
6975 )
76+ @patch (
77+ "azure.monitor.opentelemetry._configure._setup_resources" ,
78+ )
7079 @patch (
7180 "azure.monitor.opentelemetry._configure._get_configurations" ,
7281 )
7382 def test_configure_azure_monitor_disable_tracing (
7483 self ,
7584 config_mock ,
85+ resource_mock ,
7686 tracing_mock ,
7787 logging_mock ,
7888 metrics_mock ,
@@ -86,6 +96,7 @@ def test_configure_azure_monitor_disable_tracing(
8696 }
8797 config_mock .return_value = configurations
8898 configure_azure_monitor ()
99+ resource_mock .assert_called_once ()
89100 tracing_mock .assert_not_called ()
90101 logging_mock .assert_called_once_with (configurations )
91102 metrics_mock .assert_called_once_with (configurations )
@@ -103,12 +114,16 @@ def test_configure_azure_monitor_disable_tracing(
103114 @patch (
104115 "azure.monitor.opentelemetry._configure._setup_tracing" ,
105116 )
117+ @patch (
118+ "azure.monitor.opentelemetry._configure._setup_resources" ,
119+ )
106120 @patch (
107121 "azure.monitor.opentelemetry._configure._get_configurations" ,
108122 )
109123 def test_configure_azure_monitor_disable_logging (
110124 self ,
111125 config_mock ,
126+ resource_mock ,
112127 tracing_mock ,
113128 logging_mock ,
114129 metrics_mock ,
@@ -122,6 +137,7 @@ def test_configure_azure_monitor_disable_logging(
122137 }
123138 config_mock .return_value = configurations
124139 configure_azure_monitor ()
140+ resource_mock .assert_called_once ()
125141 tracing_mock .assert_called_once_with (configurations )
126142 logging_mock .assert_not_called ()
127143 metrics_mock .assert_called_once_with (configurations )
@@ -139,12 +155,16 @@ def test_configure_azure_monitor_disable_logging(
139155 @patch (
140156 "azure.monitor.opentelemetry._configure._setup_tracing" ,
141157 )
158+ @patch (
159+ "azure.monitor.opentelemetry._configure._setup_resources" ,
160+ )
142161 @patch (
143162 "azure.monitor.opentelemetry._configure._get_configurations" ,
144163 )
145164 def test_configure_azure_monitor_disable_metrics (
146165 self ,
147166 config_mock ,
167+ resource_mock ,
148168 tracing_mock ,
149169 logging_mock ,
150170 metrics_mock ,
@@ -158,11 +178,28 @@ def test_configure_azure_monitor_disable_metrics(
158178 }
159179 config_mock .return_value = configurations
160180 configure_azure_monitor ()
181+ resource_mock .assert_called_once ()
161182 tracing_mock .assert_called_once_with (configurations )
162183 logging_mock .assert_called_once_with (configurations )
163184 metrics_mock .assert_not_called ()
164185 instrumentation_mock .assert_called_once_with (configurations )
165186
187+ @patch .dict ("os.environ" , {"OTEL_EXPERIMENTAL_RESOURCE_DETECTORS" : "" })
188+ def test_setup_resources (self ):
189+ _setup_resources ()
190+ self .assertEqual (
191+ os .environ ["OTEL_EXPERIMENTAL_RESOURCE_DETECTORS" ],
192+ "azure_app_service,azure_vm"
193+ )
194+
195+ @patch .dict ("os.environ" , {"OTEL_EXPERIMENTAL_RESOURCE_DETECTORS" : "test_detector" })
196+ def test_setup_resources_existing_detectors (self ):
197+ _setup_resources ()
198+ self .assertEqual (
199+ os .environ ["OTEL_EXPERIMENTAL_RESOURCE_DETECTORS" ],
200+ "test_detector,azure_app_service,azure_vm"
201+ )
202+
166203 @patch (
167204 "azure.monitor.opentelemetry._configure.settings" ,
168205 )
0 commit comments