-
Notifications
You must be signed in to change notification settings - Fork 8
Open
Description
i was trying out pytest-opentelemetry, seems pretty cool, but ran into one issue due to some dynamic fixtures from pytest-terraform, which allows for fixture parameterization via class creation on the decorator, this unfortunately causes a traceback for pytest-opentelemetry. can this be changed to fail gracefully via conditional and getattr(). happy to put up a pr, if open to that.
fixturedef.execute(request=subrequest)
File "/Users/kapil/projects/cloud-custodian/.venv/lib/python3.12/site-packages/_pytest/fixtures.py", line 1069, in execute
result = ihook.pytest_fixture_setup(fixturedef=self, request=request)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/Users/kapil/projects/cloud-custodian/.venv/lib/python3.12/site-packages/pluggy/_hooks.py", line 512, in __call__
return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/Users/kapil/projects/cloud-custodian/.venv/lib/python3.12/site-packages/pluggy/_manager.py", line 120, in _hookexec
return self._inner_hookexec(hook_name, methods, kwargs, firstresult)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/Users/kapil/projects/cloud-custodian/.venv/lib/python3.12/site-packages/pluggy/_callers.py", line 167, in _multicall
raise exception
File "/Users/kapil/projects/cloud-custodian/.venv/lib/python3.12/site-packages/pluggy/_callers.py", line 107, in _multicall
next(function_gen) # first yield
^^^^^^^^^^^^^^^^^^
File "/Users/kapil/projects/cloud-custodian/.venv/lib/python3.12/site-packages/pluggy/_callers.py", line 34, in run_old_style_hookwrapper
next(teardown)
File "/Users/kapil/projects/cloud-custodian/.venv/lib/python3.12/site-packages/pytest_opentelemetry/instrumentation.py", line 127, in pytest_fixture_setup
attributes=self._attributes_from_fixturedef(fixturedef),
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/Users/kapil/projects/cloud-custodian/.venv/lib/python3.12/site-packages/pytest_opentelemetry/instrumentation.py", line 103, in _attributes_from_fixturedef
SpanAttributes.CODE_FILEPATH: fixturedef.func.__code__.co_filename,
^^^^^^^^^^^^^^^^^^^^^^^^
AttributeError: 'ScopedTerraformFixture' object has no attribute '__code__'. Did you mean: '__call__'?
Metadata
Metadata
Assignees
Labels
No labels