internlm/SWE-Fixer-Train-110K huggingface dataset:
Repository: open-telemetry/opentelemetry-python

Issue:
Configuration object stores ints as floats
The global configuration object will store `"2"` as `2.0` instead of `2`. Fix that.


Discussion:

Resolving patch:
diff --git a/opentelemetry-api/src/opentelemetry/configuration/__init__.py b/opentelemetry-api/src/opentelemetry/configuration/__init__.py
--- a/opentelemetry-api/src/opentelemetry/configuration/__init__.py
+++ b/opentelemetry-api/src/opentelemetry/configuration/__init__.py
@@ -128,11 +128,10 @@ def __new__(cls) -> "Configuration":
                         try:
                             value = int(value_str)
                         except ValueError:
-                            pass
-                        try:
-                            value = float(value_str)
-                        except ValueError:
-                            pass
+                            try:
+                                value = float(value_str)
+                            except ValueError:
+                                pass
 
                     instance._config_map[key] = value
 


Test patch:
diff --git a/opentelemetry-api/tests/configuration/test_configuration.py b/opentelemetry-api/tests/configuration/test_configuration.py
--- a/opentelemetry-api/tests/configuration/test_configuration.py
+++ b/opentelemetry-api/tests/configuration/test_configuration.py
@@ -119,15 +119,12 @@ def test_boolean(self) -> None:
         },
     )
     def test_integer(self) -> None:
-        self.assertEqual(
-            Configuration().POSITIVE_INTEGER, 123
-        )  # pylint: disable=no-member
-        self.assertEqual(
-            Configuration().NEGATIVE_INTEGER, -123
-        )  # pylint: disable=no-member
-        self.assertEqual(
-            Configuration().NON_INTEGER, "-12z3"
-        )  # pylint: disable=no-member
+        # pylint: disable=no-member
+        self.assertIsInstance(Configuration().POSITIVE_INTEGER, int)
+        self.assertEqual(Configuration().POSITIVE_INTEGER, 123)
+        self.assertIsInstance(Configuration().NEGATIVE_INTEGER, int)
+        self.assertEqual(Configuration().NEGATIVE_INTEGER, -123)
+        self.assertEqual(Configuration().NON_INTEGER, "-12z3")
 
     @patch.dict(
         "os.environ",  # type: ignore
Repository: open-telemetry/opentelemetry-python

Issue:
Wrong case in configuration example
[This](https://github.com/open-telemetry/opentelemetry-python/blob/master/opentelemetry-api/src/opentelemetry/configuration/__init__.py#L46) should be ``Configuration().METER_PROVIDER == "my_meter_provider"`` would be ``True``.



Discussion:

Resolving patch:
diff --git a/opentelemetry-api/src/opentelemetry/configuration/__init__.py b/opentelemetry-api/src/opentelemetry/configuration/__init__.py
--- a/opentelemetry-api/src/opentelemetry/configuration/__init__.py
+++ b/opentelemetry-api/src/opentelemetry/configuration/__init__.py
@@ -43,7 +43,7 @@
 
 For example, if the environment variable
 ``OTEL_PYTHON_METER_PROVIDER`` value is ``my_meter_provider``, then
-``Configuration().meter_provider == "my_meter_provider"`` would be ``True``.
+``Configuration().METER_PROVIDER == "my_meter_provider"`` would be ``True``.
 
 Non defined attributes will always return ``None``. This is intended to make it
 easier to use the ``Configuration`` object in actual code, because it won't be


Test patch:
Repository: open-telemetry/opentelemetry-python

Issue:
SDK package is setup as a Regular Package when it should be a Namespace Package
As a follow up to @aabmass 's [comment](https://github.com/open-telemetry/opentelemetry-python/pull/769#issuecomment-638381625) on #769, the `__init__.py` file in the SDK package causes it to be interpreted as a Regular Package instead of a Namespace Package. See the [two types of Python packages](https://docs.python.org/3/reference/import.html#namespace-packages). Namespace Packages should not have an `__init__.py` file.

Namespace packages are meant to contribute sub-packages (e.g. `sdk.metrics`, `sdk.traces`, `sdk.resources`) to some parent package (i.e. `opentelemtry.sdk`).

Having this `__init__.py` file makes it so that _we cannot extend_ the `opentelmetry.sdk` package to have additional sub-packges (e.g. `opentelemetry.sdk.extension`).

The solution should be the same as in #769 , where we change the file to be called `__init__.pyi` instead. This should allow mypy to know this is a namespace package without preventing future sub-packages from being added.


Discussion:

Resolving patch:
diff --git a/opentelemetry-sdk/src/opentelemetry/sdk/metrics/export/in_memory_metrics_exporter.py b/opentelemetry-sdk/src/opentelemetry/sdk/metrics/export/in_memory_metrics_exporter.py
--- a/opentelemetry-sdk/src/opentelemetry/sdk/metrics/export/in_memory_metrics_exporter.py
+++ b/opentelemetry-sdk/src/opentelemetry/sdk/metrics/export/in_memory_metrics_exporter.py
@@ -15,7 +15,11 @@
 import threading
 from typing import Sequence
 
-from . import MetricRecord, MetricsExporter, MetricsExportResult
+from opentelemetry.sdk.metrics.export import (
+    MetricRecord,
+    MetricsExporter,
+    MetricsExportResult,
+)
 
 
 class InMemoryMetricsExporter(MetricsExporter):
diff --git a/opentelemetry-sdk/src/opentelemetry/sdk/trace/export/__init__.py b/opentelemetry-sdk/src/opentelemetry/sdk/trace/export/__init__.py
--- a/opentelemetry-sdk/src/opentelemetry/sdk/trace/export/__init__.py
+++ b/opentelemetry-sdk/src/opentelemetry/sdk/trace/export/__init__.py
@@ -22,10 +22,9 @@
 
 from opentelemetry.configuration import Configuration
 from opentelemetry.context import attach, detach, set_value
+from opentelemetry.sdk.trace import Span, SpanProcessor
 from opentelemetry.util import time_ns
 
-from .. import Span, SpanProcessor
-
 logger = logging.getLogger(__name__)
 
 
diff --git a/opentelemetry-sdk/src/opentelemetry/sdk/trace/export/in_memory_span_exporter.py b/opentelemetry-sdk/src/opentelemetry/sdk/trace/export/in_memory_span_exporter.py
--- a/opentelemetry-sdk/src/opentelemetry/sdk/trace/export/in_memory_span_exporter.py
+++ b/opentelemetry-sdk/src/opentelemetry/sdk/trace/export/in_memory_span_exporter.py
@@ -15,8 +15,8 @@
 import threading
 import typing
 
-from .. import Span
-from . import SpanExporter, SpanExportResult
+from opentelemetry.sdk.trace import Span
+from opentelemetry.sdk.trace.export import SpanExporter, SpanExportResult
 
 
 class InMemorySpanExporter(SpanExporter):


Test patch:
Repository: open-telemetry/opentelemetry-python

Issue:
RecordException with extra parameters
As per the spec:

> If RecordException is provided, the method MUST accept an optional parameter to provide any additional event attributes (this SHOULD be done in the same way as for the AddEvent method). If attributes with the same name would be generated by the method already, the additional attributes take precedence.


Discussion:
Hello, can I pick up this issue? cc: @alolita 
That'd be great, thanks!
Un-assigning myself from this issue - finished other first issues, leaving for others to try 

Hi, @codeboten ! I am an outreachy applicant. I'd be happy to work on this issue. Can I contribute to it?
Sure @shreyagupta30, will assign it to you

Resolving patch:
diff --git a/opentelemetry-api/src/opentelemetry/trace/span.py b/opentelemetry-api/src/opentelemetry/trace/span.py
--- a/opentelemetry-api/src/opentelemetry/trace/span.py
+++ b/opentelemetry-api/src/opentelemetry/trace/span.py
@@ -79,7 +79,12 @@ def set_status(self, status: Status) -> None:
         """
 
     @abc.abstractmethod
-    def record_exception(self, exception: Exception) -> None:
+    def record_exception(
+        self,
+        exception: Exception,
+        attributes: types.Attributes = None,
+        timestamp: typing.Optional[int] = None,
+    ) -> None:
         """Records an exception as a span event."""
 
     def __enter__(self) -> "Span":
@@ -263,7 +268,12 @@ def update_name(self, name: str) -> None:
     def set_status(self, status: Status) -> None:
         pass
 
-    def record_exception(self, exception: Exception) -> None:
+    def record_exception(
+        self,
+        exception: Exception,
+        attributes: types.Attributes = None,
+        timestamp: typing.Optional[int] = None,
+    ) -> None:
         pass
 
 
diff --git a/opentelemetry-sdk/src/opentelemetry/sdk/trace/__init__.py b/opentelemetry-sdk/src/opentelemetry/sdk/trace/__init__.py
--- a/opentelemetry-sdk/src/opentelemetry/sdk/trace/__init__.py
+++ b/opentelemetry-sdk/src/opentelemetry/sdk/trace/__init__.py
@@ -680,7 +680,12 @@ def __exit__(
 
         super().__exit__(exc_type, exc_val, exc_tb)
 
-    def record_exception(self, exception: Exception) -> None:
+    def record_exception(
+        self,
+        exception: Exception,
+        attributes: types.Attributes = None,
+        timestamp: Optional[int] = None,
+    ) -> None:
         """Records an exception as a span event."""
         try:
             stacktrace = traceback.format_exc()


Test patch:
Repository: open-telemetry/opentelemetry-python

Issue:
Update limits for collection size
As per the spec change here https://github.com/open-telemetry/opentelemetry-specification/commit/507884f02618a91247fe3634a8c6c5ac99a32a40

The limits for event, attribute and link collection should be 1000


Discussion:

Resolving patch:
diff --git a/opentelemetry-sdk/src/opentelemetry/sdk/trace/__init__.py b/opentelemetry-sdk/src/opentelemetry/sdk/trace/__init__.py
--- a/opentelemetry-sdk/src/opentelemetry/sdk/trace/__init__.py
+++ b/opentelemetry-sdk/src/opentelemetry/sdk/trace/__init__.py
@@ -53,9 +53,9 @@
 
 logger = logging.getLogger(__name__)
 
-MAX_NUM_ATTRIBUTES = 32
-MAX_NUM_EVENTS = 128
-MAX_NUM_LINKS = 32
+MAX_NUM_ATTRIBUTES = 1000
+MAX_NUM_EVENTS = 1000
+MAX_NUM_LINKS = 1000
 VALID_ATTR_VALUE_TYPES = (bool, str, int, float)
 
 


Test patch:
Repository: open-telemetry/opentelemetry-python

Issue:
Avoid logging in lock
As per the comment [here](https://github.com/open-telemetry/opentelemetry-python/commit/27dc6916fc5c920c2861eb5c6c4f0f938fea5886#r43626614), it would be best not to call to logger within the lock


Discussion:

Resolving patch:
diff --git a/opentelemetry-sdk/src/opentelemetry/sdk/trace/__init__.py b/opentelemetry-sdk/src/opentelemetry/sdk/trace/__init__.py
--- a/opentelemetry-sdk/src/opentelemetry/sdk/trace/__init__.py
+++ b/opentelemetry-sdk/src/opentelemetry/sdk/trace/__init__.py
@@ -373,11 +373,15 @@ def _create_immutable_attributes(attributes):
 
 def _check_span_ended(func):
     def wrapper(self, *args, **kwargs):
+        already_ended = False
         with self._lock:  # pylint: disable=protected-access
-            if self.end_time is not None:
-                logger.warning("Calling %s on an ended span.", func.__name__)
-                return
-            func(self, *args, **kwargs)
+            if self.end_time is None:
+                func(self, *args, **kwargs)
+            else:
+                already_ended = True
+
+        if already_ended:
+            logger.warning("Tried calling %s on an ended span.", func.__name__)
 
     return wrapper
 


Test patch:
Repository: open-telemetry/opentelemetry-python

Issue:
Release process improvement
The prepare_release script needs updating to accommodate for the new changelog


Discussion:

Resolving patch:
diff --git a/scripts/eachdist.py b/scripts/eachdist.py
--- a/scripts/eachdist.py
+++ b/scripts/eachdist.py
@@ -533,13 +533,13 @@ def update_changelog(path, version, new_entry):
     try:
         with open(path) as changelog:
             text = changelog.read()
-            if "## Version {}".format(version) in text:
+            if "## [{}]".format(version) in text:
                 raise AttributeError(
                     "{} already contans version {}".format(path, version)
                 )
         with open(path) as changelog:
             for line in changelog:
-                if line.startswith("## Unreleased"):
+                if line.startswith("## [Unreleased]"):
                     unreleased_changes = False
                 elif line.startswith("## "):
                     break
@@ -552,26 +552,26 @@ def update_changelog(path, version, new_entry):
 
     if unreleased_changes:
         print("updating: {}".format(path))
-        text = re.sub("## Unreleased", new_entry, text)
+        text = re.sub(r"## \[Unreleased\].*", new_entry, text)
         with open(path, "w") as changelog:
             changelog.write(text)
 
 
-def update_changelogs(targets, version):
-    print("updating CHANGELOG")
+def update_changelogs(version):
     today = datetime.now().strftime("%Y-%m-%d")
-    new_entry = "## Unreleased\n\n## Version {}\n\nReleased {}".format(
-        version, today
+    new_entry = """## [Unreleased](https://github.com/open-telemetry/opentelemetry-python/compare/v{version}...HEAD)
+
+## [{version}](https://github.com/open-telemetry/opentelemetry-python/releases/tag/v{version}) - {today}
+
+""".format(
+        version=version, today=today
     )
     errors = False
-    for target in targets:
-        try:
-            update_changelog(
-                "{}/CHANGELOG.md".format(target), version, new_entry
-            )
-        except Exception as err:  # pylint: disable=broad-except
-            print(str(err))
-            errors = True
+    try:
+        update_changelog("./CHANGELOG.md", version, new_entry)
+    except Exception as err:  # pylint: disable=broad-except
+        print(str(err))
+        errors = True
 
     if errors:
         sys.exit(1)
@@ -637,7 +637,7 @@ def release_args(args):
     version = args.version
     update_dependencies(targets, version)
     update_version_files(targets, version)
-    update_changelogs(targets, version)
+    update_changelogs(version)
 
 
 def test_args(args):


Test patch:
Repository: open-telemetry/opentelemetry-python

Issue:
Tracer and Meter provider lack environment variables
Now that `Configuration` has been removed, both providers should use consistent environment variables.


Discussion:

Resolving patch:
diff --git a/opentelemetry-api/src/opentelemetry/environment_variables/__init__.py b/opentelemetry-api/src/opentelemetry/environment_variables/__init__.py
--- a/opentelemetry-api/src/opentelemetry/environment_variables/__init__.py
+++ b/opentelemetry-api/src/opentelemetry/environment_variables/__init__.py
@@ -19,3 +19,5 @@
 OTEL_PYTHON_SERVICE_NAME = "OTEL_PYTHON_SERVICE_NAME"
 OTEL_TRACE_EXPORTER = "OTEL_TRACE_EXPORTER"
 OTEL_METRICS_EXPORTER = "OTEL_METRICS_EXPORTER"
+OTEL_PYTHON_TRACER_PROVIDER = "OTEL_PYTHON_TRACER_PROVIDER"
+OTEL_PYTHON_METER_PROVIDER = "OTEL_PYTHON_METER_PROVIDER"
diff --git a/opentelemetry-api/src/opentelemetry/util/__init__.py b/opentelemetry-api/src/opentelemetry/util/__init__.py
--- a/opentelemetry-api/src/opentelemetry/util/__init__.py
+++ b/opentelemetry-api/src/opentelemetry/util/__init__.py
@@ -19,6 +19,11 @@
 
 from pkg_resources import iter_entry_points
 
+from opentelemetry.environment_variables import (
+    OTEL_PYTHON_METER_PROVIDER,
+    OTEL_PYTHON_TRACER_PROVIDER,
+)
+
 if TYPE_CHECKING:
     from opentelemetry.metrics import MeterProvider
     from opentelemetry.trace import TracerProvider
@@ -39,7 +44,9 @@ def time_ns() -> int:
         return int(time.time() * 1e9)
 
 
-def _load_provider(provider: str) -> Provider:
+def _load_provider(
+    provider_environment_variable: str, provider: str
+) -> Provider:
     try:
         entry_point = next(
             iter_entry_points(
@@ -47,7 +54,8 @@ def _load_provider(provider: str) -> Provider:
                 name=cast(
                     str,
                     environ.get(
-                        provider.upper(), "default_{}".format(provider),
+                        provider_environment_variable,
+                        "default_{}".format(provider),
                     ),
                 ),
             )
@@ -59,8 +67,13 @@ def _load_provider(provider: str) -> Provider:
 
 
 def _load_meter_provider(provider: str) -> "MeterProvider":
-    return cast("MeterProvider", _load_provider(provider))
+    return cast(
+        "MeterProvider", _load_provider(OTEL_PYTHON_METER_PROVIDER, provider),
+    )
 
 
 def _load_trace_provider(provider: str) -> "TracerProvider":
-    return cast("TracerProvider", _load_provider(provider))
+    return cast(
+        "TracerProvider",
+        _load_provider(OTEL_PYTHON_TRACER_PROVIDER, provider),
+    )


Test patch:
Repository: open-telemetry/opentelemetry-python

Issue:
sitecustomize is being run multiple times
When `opentelemetry-instrument` is run, the path of `opentelemetry-python`'s `sitecustomize.py` file is added to `PYTHONPATH`. This works fine unless the command executed by `opentelemetry-instrument` is also calling the `python` executable, which would make this `sitecustomize` be executed more than once. This is bad because this means multiple instrumentations may happen.

I'll be modifying `sitecustomize` to remove its path from `PYTHONPATH` after it has been executed.


Discussion:

Resolving patch:
diff --git a/opentelemetry-instrumentation/src/opentelemetry/instrumentation/auto_instrumentation/sitecustomize.py b/opentelemetry-instrumentation/src/opentelemetry/instrumentation/auto_instrumentation/sitecustomize.py
--- a/opentelemetry-instrumentation/src/opentelemetry/instrumentation/auto_instrumentation/sitecustomize.py
+++ b/opentelemetry-instrumentation/src/opentelemetry/instrumentation/auto_instrumentation/sitecustomize.py
@@ -15,6 +15,8 @@
 import sys
 from logging import getLogger
 from os import environ, path
+from os.path import abspath, dirname, pathsep
+from re import sub
 
 from pkg_resources import iter_entry_points
 
@@ -83,6 +85,12 @@ def initialize():
         _load_instrumentors()
     except Exception:  # pylint: disable=broad-except
         logger.exception("Failed to auto initialize opentelemetry")
+    finally:
+        environ["PYTHONPATH"] = sub(
+            r"{}{}?".format(dirname(abspath(__file__)), pathsep),
+            "",
+            environ["PYTHONPATH"],
+        )
 
 
 if (


Test patch:
Repository: open-telemetry/opentelemetry-python

Issue:
Update limits
As per spec change: https://github.com/open-telemetry/opentelemetry-specification/commit/03a6f0fd9d1d2f5e08858b102ba620ebf3e4a6fa

The following limits must be updated:
>* `AttributeCountLimit` (Default=128) - Maximum allowed span attribute count;
>* `EventCountLimit` (Default=128) - Maximum allowed span event count;
>* `LinkCountLimit` (Default=128) - Maximum allowed span link count;


Discussion:

Resolving patch:
diff --git a/opentelemetry-sdk/src/opentelemetry/sdk/trace/__init__.py b/opentelemetry-sdk/src/opentelemetry/sdk/trace/__init__.py
--- a/opentelemetry-sdk/src/opentelemetry/sdk/trace/__init__.py
+++ b/opentelemetry-sdk/src/opentelemetry/sdk/trace/__init__.py
@@ -61,11 +61,11 @@
 logger = logging.getLogger(__name__)
 
 SPAN_ATTRIBUTE_COUNT_LIMIT = int(
-    environ.get(OTEL_SPAN_ATTRIBUTE_COUNT_LIMIT, 1000)
+    environ.get(OTEL_SPAN_ATTRIBUTE_COUNT_LIMIT, 128)
 )
 
-SPAN_EVENT_COUNT_LIMIT = int(environ.get(OTEL_SPAN_EVENT_COUNT_LIMIT, 1000))
-SPAN_LINK_COUNT_LIMIT = int(environ.get(OTEL_SPAN_LINK_COUNT_LIMIT, 1000))
+SPAN_EVENT_COUNT_LIMIT = int(environ.get(OTEL_SPAN_EVENT_COUNT_LIMIT, 128))
+SPAN_LINK_COUNT_LIMIT = int(environ.get(OTEL_SPAN_LINK_COUNT_LIMIT, 128))
 VALID_ATTR_VALUE_TYPES = (bool, str, int, float)
 # pylint: disable=protected-access
 TRACE_SAMPLER = sampling._get_from_env_or_default()


Test patch:
Repository: open-telemetry/opentelemetry-python

Issue:
Do not allow TracerProvider resource to be settable
As per the [TracerProvider section](https://github.com/open-telemetry/opentelemetry-specification/blob/main/specification/resource/sdk.md#resource-sdk):

> When used with distributed tracing, a resource can be associated with the TracerProvider when the TracerProvider is created. That association cannot be changed later.

Consider making `resource` a get-only property.


Discussion:

Resolving patch:
diff --git a/opentelemetry-sdk/src/opentelemetry/sdk/trace/__init__.py b/opentelemetry-sdk/src/opentelemetry/sdk/trace/__init__.py
--- a/opentelemetry-sdk/src/opentelemetry/sdk/trace/__init__.py
+++ b/opentelemetry-sdk/src/opentelemetry/sdk/trace/__init__.py
@@ -1009,12 +1009,16 @@ def __init__(
             self.id_generator = RandomIdGenerator()
         else:
             self.id_generator = id_generator
-        self.resource = resource
+        self._resource = resource
         self.sampler = sampler
         self._atexit_handler = None
         if shutdown_on_exit:
             self._atexit_handler = atexit.register(self.shutdown)
 
+    @property
+    def resource(self) -> Resource:
+        return self._resource
+
     def get_tracer(
         self,
         instrumenting_module_name: str,


Test patch:
Repository: open-telemetry/opentelemetry-python

Issue:
Consider renaming Resource.create_empty() to Resource.get_empty()
Specially given the fact a cached instance is returned, i.e. no actual creation happens.


Discussion:

Resolving patch:
diff --git a/opentelemetry-sdk/src/opentelemetry/sdk/resources/__init__.py b/opentelemetry-sdk/src/opentelemetry/sdk/resources/__init__.py
--- a/opentelemetry-sdk/src/opentelemetry/sdk/resources/__init__.py
+++ b/opentelemetry-sdk/src/opentelemetry/sdk/resources/__init__.py
@@ -188,7 +188,7 @@ def create(attributes: typing.Optional[Attributes] = None) -> "Resource":
         return resource
 
     @staticmethod
-    def create_empty() -> "Resource":
+    def get_empty() -> "Resource":
         return _EMPTY_RESOURCE
 
     @property


Test patch:
diff --git a/opentelemetry-sdk/tests/resources/test_resources.py b/opentelemetry-sdk/tests/resources/test_resources.py
--- a/opentelemetry-sdk/tests/resources/test_resources.py
+++ b/opentelemetry-sdk/tests/resources/test_resources.py
@@ -59,7 +59,7 @@ def test_create(self):
         self.assertEqual(resource.attributes, expected_with_envar)
         os.environ[resources.OTEL_RESOURCE_ATTRIBUTES] = ""
 
-        resource = resources.Resource.create_empty()
+        resource = resources.Resource.get_empty()
         self.assertEqual(resource, resources._EMPTY_RESOURCE)
 
         resource = resources.Resource.create(None)
@@ -140,9 +140,7 @@ def test_service_name_using_process_name(self):
 
     def test_aggregated_resources_no_detectors(self):
         aggregated_resources = resources.get_aggregated_resources([])
-        self.assertEqual(
-            aggregated_resources, resources.Resource.create_empty()
-        )
+        self.assertEqual(aggregated_resources, resources.Resource.get_empty())
 
     def test_aggregated_resources_with_static_resource(self):
         static_resource = resources.Resource({"static_key": "static_value"})
@@ -208,7 +206,7 @@ def test_resource_detector_ignore_error(self):
         resource_detector.raise_on_error = False
         self.assertEqual(
             resources.get_aggregated_resources([resource_detector]),
-            resources.Resource.create_empty(),
+            resources.Resource.get_empty(),
         )
 
     def test_resource_detector_raise_error(self):
@@ -245,7 +243,7 @@ def tearDown(self) -> None:
     def test_empty(self):
         detector = resources.OTELResourceDetector()
         os.environ[resources.OTEL_RESOURCE_ATTRIBUTES] = ""
-        self.assertEqual(detector.detect(), resources.Resource.create_empty())
+        self.assertEqual(detector.detect(), resources.Resource.get_empty())
 
     def test_one(self):
         detector = resources.OTELResourceDetector()