GeezerVison is showing github.com — @allure.step decorator fails if one of the method parameters has a default value · Issue #440 · allure-framework/allure-python
@allure.step decorator fails if one of the method parameters has a default value #440DescriptionI have a method that has the default argument set to "None". (it can be string as well)
@allure.step(
"Send message: '{message}' on {channel} with props: '{props}'")
def send_message(
self,
channel: str,
message: str,
username: str = None,
props: Dict = None) -> None:
...
Calling this method without the props parameter:
self.bot.send_message(
channel=self.DZIUNIA['mm_channel_id'],
message=letter)
causes a Python exception:
E KeyError: 'props'
Activitymlewandowskipear commented on Oct 31, 2019 I have seen this too.
I assume the hook doesn't get a 'props' in this case, therefore fails. Yet, the function would be the next step after the hook, where it forces props = None making it a known variable.
Not sure if it's a bug, or working as intended, due to order of operations.
To that end, my workaround would be using a context manager for the whole step:
def send_message(
self,
channel: str,
message: str,
username: str = None,
props: Dict = None) -> None:
with allure.step(
"Send message: '{message}' on {channel} with props: '{props}'")
<code>
Hope that helps for the mean time!
tanistra commented on Oct 31, 2019 I don't know if it's a bug either.
I will try to replace decorator by your solution.
Thanks! ocherniavskyi-lohika-tix commented on Feb 20, 2020 
The problem is here - in this case only kwargs will be treated as a parameters
But actually we need to take all default parameters from function object and merge them with kwargs
Araksya-Hambaryan commented on May 25, 2020 Is there any updates?
Please note that the issue occurs on 2.8.15 version as well Denis-Alexeev commented on Mar 3, 2021
Is there any updates?
Please note that the issue occurs on 2.8.15 version as well
PR #569 added a commit that references this issue on May 19, 2021This issue will close once commit b2e64d4 is merged into the 'master' branch.b2e64d4 added a commit that references this issue on Apr 10, 2023This issue will close once commit d21a2bf is merged into the 'master' branch.d21a2bf added a commit that references this issue on Mar 19, 2024This issue will close once commit 6a59bea is merged into the 'master' branch.6a59bea
MetadataMetadataDevelopmentNo branches or pull requestsIssue actions
|