def test_fixture_finalizers(executed_docstring_source): """ >>> import pytest In pytest, you can define several finalizers for one fixture, like this: >>> @pytest.fixture ... def fixture_with_finalizers(request): ... def first_finalizer(): ... pass ... request.addfinalizer(first_finalizer) ... ... def second_finalizer(): ... pass ... request.addfinalizer(second_finalizer) Of course, allure will report all of them >>> def test_fixture_with_finalizers_example(fixture_with_finalizers): ... pass """ assert_that(executed_docstring_source.allure_report, has_test_case("test_fixture_with_finalizers_example", has_container(executed_docstring_source.allure_report, has_before("fixture_with_finalizers"), has_after("{fixture}::{finalizer}".format(fixture="fixture_with_finalizers", finalizer="first_finalizer") ), has_after("{fixture}::{finalizer}".format(fixture="fixture_with_finalizers", finalizer="second_finalizer"), ) ) ) )
def test_fixture_finalizers(executed_docstring_source): """ >>> import pytest In pytest, you can define several finalizers for one fixture, like this: >>> @pytest.fixture ... def fixture_with_finalizers(request): ... def first_finalizer(): ... pass ... request.addfinalizer(first_finalizer) ... ... def second_finalizer(): ... pass ... request.addfinalizer(second_finalizer) Of course, allure will report all of them >>> def test_fixture_with_finalizers_example(fixture_with_finalizers): ... pass """ assert_that( executed_docstring_source.allure_report, has_test_case( "test_fixture_with_finalizers_example", has_container( executed_docstring_source.allure_report, has_before("fixture_with_finalizers"), has_after("{fixture}::{finalizer}".format( fixture="fixture_with_finalizers", finalizer="first_finalizer")), has_after( "{fixture}::{finalizer}".format( fixture="fixture_with_finalizers", finalizer="second_finalizer"), ))))
def test_group_with_test_teardown(self): assert_that( self.allure_report, has_test_case( 'Case With Test Teardown', has_container( self.allure_report, has_container( self.allure_report, all_of(has_before('Suite Setup Keyword'), has_after('Suite Teardown Keyword'))), has_after('Test Teardown Keyword'))), )
def test_fixture_override(allured_testdir): allured_testdir.testdir.makeconftest(""" import pytest import allure @pytest.fixture def my_fixture(): with allure.step('Step in before in original fixture'): pass yield with allure.step('Step in after in original fixture'): pass """) allured_testdir.testdir.makepyfile(""" import pytest import allure @pytest.fixture def my_fixture(my_fixture): with allure.step('Step in before in redefined fixture'): pass yield with allure.step('Step in after in redefined fixture'): pass def test_with_redefined_fixture(my_fixture): pass """) allured_testdir.run_with_allure() assert_that( allured_testdir.allure_report, has_test_case( "test_with_redefined_fixture", has_container( allured_testdir.allure_report, has_before("my_fixture", has_step("Step in before in original fixture")), has_after("my_fixture::0", has_step("Step in after in original fixture"))), has_container( allured_testdir.allure_report, has_before("my_fixture", has_step("Step in before in redefined fixture")), has_after("my_fixture::0", has_step("Step in after in redefined fixture"))), ))
def test_skip_finalizer_fixture(executed_docstring_source): """ >>> import pytest >>> @pytest.fixture ... def skip_finalizer_fixture(request): ... def fixture_finalizer(): ... pytest.skip() ... request.addfinalizer(fixture_finalizer) >>> def test_skip_finalizer_fixture_example(skip_finalizer_fixture): ... pass """ assert_that(executed_docstring_source.allure_report, has_test_case("test_skip_finalizer_fixture_example", with_status("passed"), has_container(executed_docstring_source.allure_report, has_after("{fixture}::{finalizer}".format( fixture="skip_finalizer_fixture", finalizer="fixture_finalizer"), with_status("skipped"), has_status_details(with_message_contains("Skipped: <Skipped instance>"), with_trace_contains("fixture_finalizer") ), ), ) ) )
def test_fixture_finalizer(executed_docstring_source): """ >>> import pytest Let"s define fixture with finalizer: >>> @pytest.fixture ... def fixture_with_finalizer(request): ... def finalizer(): ... pass ... request.addfinalizer(finalizer) For next test, allure will report fixture finalizer in TearDown section >>> def test_fixture_with_finalizer_example(fixture_with_finalizer): ... pass """ assert_that(executed_docstring_source.allure_report, has_test_case("test_fixture_with_finalizer_example", has_container(executed_docstring_source.allure_report, has_before("fixture_with_finalizer"), has_after("{fixture}::{finalizer}".format(fixture="fixture_with_finalizer", finalizer="finalizer") ) ) ) )
def test_pytest_failed_finalizer_fixture(executed_docstring_source): """ >>> import pytest >>> @pytest.fixture ... def pytest_failed_finalizer_fixture(request): ... def fixture_finalizer(): ... pytest.fail() ... request.addfinalizer(fixture_finalizer) >>> def test_pytest_failed_finalizer_fixture_example(pytest_failed_finalizer_fixture): ... pass """ assert_that(executed_docstring_source.allure_report, has_test_case("test_pytest_failed_finalizer_fixture_example", with_status("failed"), has_status_details(with_message_contains("Failed"), with_trace_contains("def fixture_finalizer():") ), has_container(executed_docstring_source.allure_report, has_after("{fixture}::{finalizer}".format( fixture="pytest_failed_finalizer_fixture", finalizer="fixture_finalizer"), with_status("failed"), has_status_details(with_message_contains("Failed"), with_trace_contains("fixture_finalizer") ), ), ) ) )
def test_failed_finalizer_fixture(executed_docstring_source): """ >>> import pytest >>> @pytest.fixture ... def failed_finalizer_fixture(request): ... def fixture_finalizer(): ... assert False ... request.addfinalizer(fixture_finalizer) ... ... def test_failed_finalizer_fixture_example(failed_finalizer_fixture): ... pass """ assert_that(executed_docstring_source.allure_report, has_test_case("test_failed_finalizer_fixture_example", with_status("failed"), has_status_details(with_message_contains("AssertionError"), with_trace_contains("def fixture_finalizer():") ), has_container(executed_docstring_source.allure_report, has_after("{fixture}::{finalizer}".format( fixture="failed_finalizer_fixture", finalizer="fixture_finalizer"), with_status("failed"), has_status_details(with_message_contains("AssertionError"), with_trace_contains("fixture_finalizer") ), ), ) ) )
def test_fixture_finalizer(executed_docstring_source): """ >>> import pytest Let"s define fixture with finalizer: >>> @pytest.fixture ... def fixture_with_finalizer(request): ... def finalizer(): ... pass ... request.addfinalizer(finalizer) For next test, allure will report fixture finalizer in TearDown section >>> def test_fixture_with_finalizer_example(fixture_with_finalizer): ... pass """ assert_that( executed_docstring_source.allure_report, has_test_case( "test_fixture_with_finalizer_example", has_container( executed_docstring_source.allure_report, has_before("fixture_with_finalizer"), has_after("{fixture}::{finalizer}".format( fixture="fixture_with_finalizer", finalizer="finalizer")))))
def test_case_with_teardown(self): assert_that( self.allure_report, has_test_case( 'Case With Test Teardown', has_container(self.allure_report, has_after('Test Teardown Keyword'))), )
def test_fixture_finalizer_attachment(executed_docstring_path): assert_that( executed_docstring_path.allure_report, has_test_case( "test_fixture_finalizer_attachment", has_container( executed_docstring_path.allure_report, has_after("fixture_with_attachment_in_finalizer::finalizer", has_attachment()))))
def test_fixture_finalizer_attachment(executed_docstring_path): assert_that(executed_docstring_path.allure_report, has_test_case("test_fixture_finalizer_attachment", has_container(executed_docstring_path.allure_report, has_after("fixture_with_attachment_in_finalizer::finalizer", has_attachment() ) ) ) )
def test_case_with_fixtures(self): assert_that( self.allure_report, has_test_case( 'Case With Test Fixtures', has_container( self.allure_report, all_of(has_before('Test Setup Keyword'), has_after('Test Teardown Keyword')))), )