allure-framework / allure-framework/allure-python

Attachments doesnt works with pre-test fixtures

Open
#475 1 comment 2 reactions 0 assignees View on GitHub
bug theme:pytest-bdd
Dominant language
Python
Stars
814
Forks
260
PR merge metrics
No merged PRs in 30d

Description

@pytest.fixture(autouse=True, scope='session')
def configuration(config):
> attach_json_to_report("Config", config)

test\conftest.py:27:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
test\commons\utils\reporting_utils.py:9: in attach_json_to_report
allure.attach(name=name, body=json, attachment_type=allure.attachment_type.JSON)
.venv\lib\site-packages\allure_commons\_allure.py:164: in __call__
plugin_manager.hook.attach_data(body=body, name=name, attachment_type=attachment_type, extension=extension)
.venv\lib\site-packages\allure_pytest_bdd\pytest_bdd_listener.py:118: in attach_data
self.lifecycle.attach_data(uuid4(), body, name=name, attachment_type=attachment_type, extension=extension)
.venv\lib\site-packages\allure_commons\lifecycle.py:146: in attach_data
file_name = self._attach(uuid, name=name, attachment_type=attachment_type, extension=extension)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = , uuid = None, name = 'Config', attachment_type = , extension = 'json'

def _attach(self, uuid, name=None, attachment_type=None, extension=None):
mime_type = attachment_type
extension = extension if extension else 'attach'

if type(attachment_type) is AttachmentType:
extension = attachment_type.extension
mime_type = attachment_type.mime_type

file_name = ATTACHMENT_PATTERN.format(prefix=uuid, ext=extension)
attachment = Attachment(source=file_name, name=name, type=mime_type)
uuid = self._last_item_uuid(item_type=ExecutableItem)
> self._items[uuid].attachments.append(attachment)
E KeyError: None

.venv\lib\site-packages\allure_commons\lifecycle.py:137: KeyError

Contributor guide

Open the contributing guide

Research direction

Start by reproducing the session-scoped fixture in test/conftest.py and inspect test/commons/utils/reporting_utils.py, especially attach_json_to_report. Follow the reported failure through allure_pytest_bdd and allure_commons lifecycle.py. Done means attachments from pre-test fixtures no longer raise KeyError when no executable item is active.

Written by the indexing model from the issue text.

Assessment

Tech stack
python
Domain
testing
Issue type
Bug
Difficulty
3/5
Estimated time
1-2 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.