From 5ded6325a2ae02922926b68bf35bbf7e2cb0a2da Mon Sep 17 00:00:00 2001 From: amiroshnichenko Date: Wed, 1 Sep 2021 14:50:50 +0300 Subject: [PATCH 1/2] ISSUE#616: Add test for labels with object --- .../acceptance/label/bdd/bdd_label_test.py | 22 ++++++++++++++++++- 1 file changed, 21 insertions(+), 1 deletion(-) diff --git a/allure-pytest/test/acceptance/label/bdd/bdd_label_test.py b/allure-pytest/test/acceptance/label/bdd/bdd_label_test.py index 28d72275..7e0ca52e 100644 --- a/allure-pytest/test/acceptance/label/bdd/bdd_label_test.py +++ b/allure-pytest/test/acceptance/label/bdd/bdd_label_test.py @@ -1,6 +1,7 @@ """ ./examples/label/bdd/bdd_label.rst """ +import json -from hamcrest import assert_that +from hamcrest import assert_that, calling, is_not, raises from allure_commons_test.report import has_test_case from allure_commons_test.label import has_epic from allure_commons_test.label import has_feature @@ -29,3 +30,22 @@ def test_multiple_bdd_label(executed_docstring_path): has_story("Alternative story") ) ) + + +def test_set_bdd_label_as_object(executed_docstring_source): + """ + >>> import allure + + >>> class SomeClass: + ... pass + + + >>> @allure.feature(SomeClass()) + ... def test_set_label_as_object_example(): + ... pass + """ + + assert_that( + calling(json.dumps).with_args(executed_docstring_source.allure_report.test_cases), + is_not(raises(TypeError, 'not JSON serializable')) + ) From a70e38f3ed4dba67f703cf9d13cac3dba2fcda6d Mon Sep 17 00:00:00 2001 From: amiroshnichenko Date: Wed, 1 Sep 2021 17:11:12 +0300 Subject: [PATCH 2/2] ISSUE#616: Stringify feature labels --- allure-pytest/test/acceptance/label/bdd/bdd_label_test.py | 3 +-- allure-python-commons/src/_allure.py | 4 ++-- 2 files changed, 3 insertions(+), 4 deletions(-) diff --git a/allure-pytest/test/acceptance/label/bdd/bdd_label_test.py b/allure-pytest/test/acceptance/label/bdd/bdd_label_test.py index 7e0ca52e..4bb4e2b1 100644 --- a/allure-pytest/test/acceptance/label/bdd/bdd_label_test.py +++ b/allure-pytest/test/acceptance/label/bdd/bdd_label_test.py @@ -39,10 +39,9 @@ def test_set_bdd_label_as_object(executed_docstring_source): >>> class SomeClass: ... pass - >>> @allure.feature(SomeClass()) ... def test_set_label_as_object_example(): - ... pass + ... allure.dynamic.feature(SomeClass) """ assert_that( diff --git a/allure-python-commons/src/_allure.py b/allure-python-commons/src/_allure.py index 5cc92966..1ea155ca 100644 --- a/allure-python-commons/src/_allure.py +++ b/allure-python-commons/src/_allure.py @@ -40,7 +40,7 @@ def epic(*epics): def feature(*features): - return label(LabelType.FEATURE, *features) + return label(LabelType.FEATURE, *[str(feature) for feature in features]) def story(*stories): @@ -103,7 +103,7 @@ def severity(severity_level): @staticmethod def feature(*features): - Dynamic.label(LabelType.FEATURE, *features) + Dynamic.label(LabelType.FEATURE, *[str(feature) for feature in features]) @staticmethod def story(*stories):