Esempio n. 1
0
 def test_threads(self):
     assert_that(
         self.allure_report,
         has_test_case(
             'Case With Thread #0',
             has_label('thread', 'Thread #0')
         ),
         has_test_case(
             'Case With Thread #1',
             has_label('thread', 'Thread #1')
         )
     )
def test_pytest_bytes_data_in_assert(executed_docstring_source):
    """
    >>> import allure

    >>> def test_pytest_bytes_data_in_assert_example():
    ...     with allure.step("Step"):
    ...         assert "0\\x82" == 1
    """

    assert_that(
        executed_docstring_source.allure_report,
        has_test_case(
            "test_pytest_bytes_data_in_assert_example", with_status("failed"),
            has_status_details(
                with_message_contains(
                    "AssertionError: assert \'0\\x82\' == 1"),
                with_trace_contains(
                    "def test_pytest_bytes_data_in_assert_example():")),
            has_step(
                "Step", with_status("failed"),
                has_status_details(
                    with_message_contains(
                        "AssertionError: assert \'0\\x82\' == 1"),
                    with_trace_contains(
                        "test_pytest_bytes_data_in_assert_example")))))
def test_dynamic_description_html(executed_docstring_path):
    assert_that(
        executed_docstring_path.allure_report,
        has_test_case(
            "test_dynamic_description_html",
            has_description_html(
                contains_string("<p>Actual HTML description</p>"))))
def test_fixture(allured_testdir, first_scope, second_scope):
    allured_testdir.testdir.makepyfile("""
        import pytest

        @pytest.fixture(scope="{first_scope}")
        def first_fixture():
            pass

        @pytest.fixture(scope="{second_scope}")
        def second_fixture():
            pass

        def test_fixture_example(first_fixture, second_fixture):
            pass
    """.format(first_scope=first_scope, second_scope=second_scope))

    allured_testdir.run_with_allure()

    assert_that(allured_testdir.allure_report,
                has_test_case("test_fixture_example",
                              has_container(allured_testdir.allure_report,
                                            has_before("first_fixture")
                                            ),
                              has_container(allured_testdir.allure_report,
                                            has_before("second_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")
                                                                   ),
                                            ),
                                            )
                              )
                )
Esempio n. 6
0
 def test_passed_with_step(self):
     assert_that(
         self.allure_report,
         has_test_case(
             'Passed Case With Step', with_status('passed'),
             has_step(RobotBasicKeywords.NO_OPERATION,
                      with_status('passed'))))
def test_fixture_with_step_from_conftest(allured_testdir):
    allured_testdir.testdir.makeconftest("""
        import allure
        import pytest

        @allure.step("step in conftest.py")
        def conftest_step():
            pass


        @pytest.fixture
        def fixture_with_conftest_step():
            conftest_step()
    """)

    allured_testdir.testdir.makepyfile("""
        def test_fixture_with_step_from_conftest_example(fixture_with_conftest_step):
            pass
    """)

    allured_testdir.run_with_allure()

    assert_that(allured_testdir.allure_report,
                has_test_case("test_fixture_with_step_from_conftest_example",
                              has_container(allured_testdir.allure_report,
                                            has_before("fixture_with_conftest_step",
                                                       has_step("step in conftest.py")
                                                       )
                                            )
                              )
                )
def test_dynamic_feature(executed_docstring_path):
    assert_that(executed_docstring_path.allure_report,
                has_test_case("test_dynamic_feature",
                              has_feature("first feature"),
                              has_feature("second feature")
                              )
                )
def test_titled_fixture_from_conftest(allured_testdir):
    allured_testdir.testdir.makeconftest("""
        import allure
        import pytest

        @allure.title('Titled fixture before pytest.fixture')
        @pytest.fixture
        def first_fixture():
            pass

        @pytest.fixture
        @allure.title('Titled fixture after pytest.fixture')
        def second_fixture():
            pass
    """)

    allured_testdir.testdir.makepyfile("""
        def test_with_titled_conftest_fixtures(first_fixture, second_fixture):
            pass
    """)

    allured_testdir.run_with_allure()

    assert_that(
        allured_testdir.allure_report,
        has_test_case(
            "test_with_titled_conftest_fixtures",
            has_container(allured_testdir.allure_report,
                          has_before("Titled fixture before pytest.fixture")),
            has_container(allured_testdir.allure_report,
                          has_before("Titled fixture after pytest.fixture"))))
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_fixture(allured_testdir, first_scope, second_scope):
    allured_testdir.testdir.makepyfile("""
        import pytest

        @pytest.fixture(scope="{first_scope}")
        def first_fixture():
            pass

        @pytest.fixture(scope="{second_scope}")
        def second_fixture():
            pass

        def test_fixture_example(first_fixture, second_fixture):
            pass
    """.format(first_scope=first_scope, second_scope=second_scope))

    allured_testdir.run_with_allure()

    assert_that(
        allured_testdir.allure_report,
        has_test_case(
            "test_fixture_example",
            has_container(allured_testdir.allure_report,
                          has_before("first_fixture")),
            has_container(
                allured_testdir.allure_report,
                has_before("second_fixture"),
            )))
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_with_step_from_conftest(allured_testdir):
    allured_testdir.testdir.makeconftest("""
        import allure
        import pytest

        @allure.step("step in conftest.py")
        def conftest_step():
            pass


        @pytest.fixture
        def fixture_with_conftest_step():
            conftest_step()
    """)

    allured_testdir.testdir.makepyfile("""
        def test_fixture_with_step_from_conftest_example(fixture_with_conftest_step):
            pass
    """)

    allured_testdir.run_with_allure()

    assert_that(
        allured_testdir.allure_report,
        has_test_case(
            "test_fixture_with_step_from_conftest_example",
            has_container(
                allured_testdir.allure_report,
                has_before("fixture_with_conftest_step",
                           has_step("step in conftest.py")))))
Esempio n. 15
0
def test_xfail_step_failure(executed_docstring_source):
    """
    >>> import pytest
    >>> import allure

    >>> @pytest.mark.xfail()
    ... def test_xfail_step_failure_example():
    ...     with allure.step("Step"):
    ...         assert False
    """

    assert_that(executed_docstring_source.allure_report,
                has_test_case("test_xfail_step_failure_example",
                              with_status("skipped"),
                              has_status_details(with_message_contains("AssertionError"),
                                                 with_trace_contains("def test_xfail_step_failure_example():")
                                                 ),
                              has_step("Step",
                                       with_status("failed"),
                                       has_status_details(with_message_contains("AssertionError"),
                                                          with_trace_contains("test_xfail_step_failure_example")
                                                          )
                                       )
                              )
                )
def test_step_with_attachment(executed_docstring_path):
    assert_that(
        executed_docstring_path.allure_report,
        has_test_case(
            "test_step_with_attachment",
            has_step("step_with_attachment", has_attachment()),
        ))
def test_step_parameters(executed_docstring_source, request, args, kwargs):
    """
    >>> import pytest
    >>> import allure

    >>> @allure.step
    ... def step(arg, kwarg=None):
    ...     pass

    >>> @pytest.mark.parametrize(
    ...     ["args", "kwargs"],
    ...     [
    ...         ([True], {"kwarg": False}),
    ...         ([True], {"kwarg": False}),
    ...         (["hi"], {"kwarg": None}),
    ...         ([None], {"kwarg": 42})
    ...     ]
    ... )
    ... def test_args_less_than_placeholders_example(args, kwargs):
    ...     step(*args, **kwargs)
    """

    test_name = "test_args_less_than_placeholders_example[{params_name}]".format(
        params_name=params_name(request))

    assert_that(
        executed_docstring_source.allure_report,
        has_test_case(
            test_name,
            has_step(
                "step",
                *([has_parameter("arg", represent(arg)) for arg in args] + [
                    has_parameter("kwarg", represent(kwarg))
                    for kwarg in kwargs.values()
                ]))))
Esempio n. 18
0
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_step_with_thread_and_attachment(allured_testdir):
    allured_testdir.testdir.makepyfile("""
    from concurrent.futures import ThreadPoolExecutor

    import allure
    import pytest

    @allure.step("thread {x}")
    def parallel_step(x=1):
        allure.attach("text", str(x), allure.attachment_type.TEXT)


    def test_thread():
        with allure.step("Start in thread"):
            with ThreadPoolExecutor(max_workers=2) as executor:
                f_result = executor.map(parallel_step, [1, 2])
    """)

    allured_testdir.run_with_allure()

    assert_that(
        allured_testdir.allure_report,
        has_test_case(
            "test_thread",
            has_step(
                "Start in thread",
                has_step("thread 1", has_attachment(name="1")),
                has_step("thread 2", has_attachment(name="2")),
            )))
Esempio n. 20
0
def test_pytest_fail_fixture(executed_docstring_source):
    """
    >>> import pytest

    >>> @pytest.fixture
    ... def pytest_fail_fixture():
    ...     pytest.fail()

    >>> def test_pytest_fail_fixture_example(pytest_fail_fixture):
    ...     pass
    """

    assert_that(
        executed_docstring_source.allure_report,
        has_test_case(
            "test_pytest_fail_fixture_example", with_status("failed"),
            has_status_details(
                with_message_contains("Failed: <Failed instance>"),
                with_trace_contains("def pytest_fail_fixture():")),
            has_container(
                executed_docstring_source.allure_report,
                has_before(
                    "pytest_fail_fixture",
                    with_status("failed"),
                    has_status_details(
                        with_message_contains("Failed: <Failed instance>"),
                        with_trace_contains("pytest_fail_fixture")),
                ),
            )))
Esempio n. 21
0
def test_failed_fixture(executed_docstring_source):
    """
    >>> import pytest

    >>> @pytest.fixture
    ... def failed_fixture():
    ...     assert False

    >>> def test_failed_fixture_example(failed_fixture):
    ...     pass
    """

    assert_that(
        executed_docstring_source.allure_report,
        has_test_case(
            "test_failed_fixture_example", with_status("failed"),
            has_status_details(with_message_contains("AssertionError"),
                               with_trace_contains("def failed_fixture():")),
            has_container(
                executed_docstring_source.allure_report,
                has_before(
                    "failed_fixture",
                    with_status("failed"),
                    has_status_details(with_message_contains("AssertionError"),
                                       with_trace_contains("failed_fixture")),
                ),
            )))
def test_module_custom_suite(executed_docstring_path):
    assert_that(
        executed_docstring_path.allure_report,
        has_test_case(
            "test_module_level_custom_suite",
            has_suite("module level suite name"),
        ))
Esempio n. 23
0
def test_opened_step_function(executed_docstring_source):
    """
    >>> import allure
    >>> import pytest

    >>> @pytest.fixture()
    ... def yield_fixture():
    ...     with allure.step("Opened step"):
    ...         yield

    >>> def test_opened_step(yield_fixture):
    ...     with allure.step("Body step"):
    ...         pass
    """

    assert_that(
        executed_docstring_source.allure_report,
        has_test_case(
            "test_opened_step",
            all_of(
                has_step("Body step"),
                has_container(
                    executed_docstring_source.allure_report,
                    has_before(
                        "yield_fixture",
                        has_step("Opened step", not_(has_step("Body step"))))),
            )))
def test_pytest_fail_fixture(executed_docstring_source):
    """
    >>> import pytest

    >>> @pytest.fixture
    ... def pytest_fail_fixture():
    ...     pytest.fail()

    >>> def test_pytest_fail_fixture_example(pytest_fail_fixture):
    ...     pass
    """

    assert_that(executed_docstring_source.allure_report,
                has_test_case("test_pytest_fail_fixture_example",
                              with_status("failed"),
                              has_status_details(with_message_contains("Failed: <Failed instance>"),
                                                 with_trace_contains("def pytest_fail_fixture():")
                                                 ),
                              has_container(executed_docstring_source.allure_report,
                                            has_before("pytest_fail_fixture",
                                                       with_status("failed"),
                                                       has_status_details(
                                                           with_message_contains("Failed: <Failed instance>"),
                                                           with_trace_contains("pytest_fail_fixture")
                                                       ),
                                                       ),
                                            )
                              )
                )
Esempio n. 25
0
def test_step_with_thread(allured_testdir):
    allured_testdir.testdir.makepyfile("""
    from concurrent.futures import ThreadPoolExecutor

    import allure

    @allure.step("thread {x}")
    def parallel_step(x=1):
        with allure.step("Sub-step in thread"):
            pass


    def test_thread():
        with allure.step("Start in thread"):
            with ThreadPoolExecutor(max_workers=2) as executor:
                executor.map(parallel_step, [1, 2])
    """)

    allured_testdir.run_with_allure()

    assert_that(
        allured_testdir.allure_report,
        has_test_case(
            "test_thread",
            has_step("Start in thread",
                     has_step("thread 1", has_step("Sub-step in thread")),
                     has_step("thread 2"))))
def test_failed_fixture(executed_docstring_source):
    """
    >>> import pytest

    >>> @pytest.fixture
    ... def failed_fixture():
    ...     assert False

    >>> def test_failed_fixture_example(failed_fixture):
    ...     pass
    """

    assert_that(executed_docstring_source.allure_report,
                has_test_case("test_failed_fixture_example",
                              with_status("failed"),
                              has_status_details(with_message_contains("AssertionError"),
                                                 with_trace_contains("def failed_fixture():")
                                                 ),
                              has_container(executed_docstring_source.allure_report,
                                            has_before("failed_fixture",
                                                       with_status("failed"),
                                                       has_status_details(with_message_contains("AssertionError"),
                                                                          with_trace_contains("failed_fixture")
                                                                          ),
                                                       ),
                                            )
                              )
                )
Esempio n. 27
0
def test_skip_fixture(executed_docstring_source):
    """
    >>> import pytest

    >>> @pytest.fixture
    ... def skip_fixture():
    ...     pytest.skip()

    >>> @pytest.mark.xfail()
    ... def test_skip_fixture_example(skip_fixture):
    ...     pass
    """

    assert_that(
        executed_docstring_source.allure_report,
        has_test_case(
            "test_skip_fixture_example", with_status("skipped"),
            has_status_details(
                with_message_contains("Skipped: <Skipped instance>")),
            has_container(
                executed_docstring_source.allure_report,
                has_before(
                    "skip_fixture",
                    with_status("skipped"),
                    has_status_details(
                        with_message_contains("Skipped: <Skipped instance>"),
                        with_trace_contains("skip_fixture")),
                ),
            )))
Esempio n. 28
0
def test_attach_body(executed_docstring_path):
    assert_that(
        executed_docstring_path.allure_report,
        has_test_case(
            "test_attach_body",
            has_attachment(attach_type="application/xml",
                           name="some attachment name")))
def test_xfail_fixture(executed_docstring_source):
    """
    >>> import pytest

    >>> @pytest.fixture
    ... def broken_fixture():
    ...     raise NotImplementedError

    >>> @pytest.mark.xfail()
    ... def test_xfail_fixture_example(broken_fixture):
    ...     pass
    """

    assert_that(
        executed_docstring_source.allure_report,
        has_test_case(
            "test_xfail_fixture_example", with_status("skipped"),
            has_status_details(with_message_contains("NotImplementedError"),
                               with_trace_contains("def broken_fixture():")),
            has_container(
                executed_docstring_source.allure_report,
                has_before(
                    "broken_fixture",
                    with_status("broken"),
                    has_status_details(
                        with_message_contains("NotImplementedError"),
                        with_trace_contains("broken_fixture")),
                ),
            )))
Esempio n. 30
0
def test_nested_steps(executed_docstring_path):
    assert_that(
        executed_docstring_path.allure_report,
        has_test_case(
            "test_nested_steps",
            has_step("grand parent step",
                     has_step("parent step", has_step("passed_step")))))
def test_step_parameters(executed_docstring_source, request, args, kwargs):
    """
    >>> import pytest
    >>> import allure

    >>> @allure.step
    ... def step(arg, kwarg=None):
    ...     pass

    >>> @pytest.mark.parametrize(
    ...     ["args", "kwargs"],
    ...     [
    ...         ([True], {"kwarg": False}),
    ...         ([True], {"kwarg": False}),
    ...         (["hi"], {"kwarg": None}),
    ...         ([None], {"kwarg": 42})
    ...     ]
    ... )
    ... def test_args_less_than_placeholders_example(args, kwargs):
    ...     step(*args, **kwargs)
    """

    test_name = "test_args_less_than_placeholders_example[{params_name}]".format(
        params_name=params_name(request))

    assert_that(executed_docstring_source.allure_report,
                has_test_case(test_name,
                              has_step("step",
                                       *([has_parameter("arg", represent(arg)) for arg in args] +
                                         [has_parameter("kwarg", represent(kwarg)) for kwarg in kwargs.values()]
                                         )

                                       )
                              )
                )
Esempio n. 32
0
def test_parametrize_dynamic_link(executed_docstring_path, link):
    assert_that(
        executed_docstring_path.allure_report,
        has_test_case(
            "test_parametrize_dynamic_link[{link}]".format(link=link),
            has_issue_link(link),
        ))
def test_custom_label(executed_docstring_path):
    assert_that(executed_docstring_path.allure_report,
                has_test_case("test_custom_label",
                              has_label("Application", "desktop"),
                              has_label("Application", "mobile")
                              )
                )
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_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")
                                                      )
                                            )
                              )
                )
Esempio n. 36
0
 def test_quadruple_suite(self):
     assert_that(
         self.allure_report,
         has_test_case(
             'Case With Four Parent Suites',
             has_container(
                 self.allure_report,
                 has_entry('name', 'Case With Four Parent Suites'),
                 has_container(
                     self.allure_report,
                     has_entry('name', 'Suite With Three Parent'),
                     has_container(
                         self.allure_report,
                         has_entry('name', 'Third Level Suite'),
                         has_container(
                             self.allure_report,
                             has_entry('name', 'Second Level Suite'),
                             has_container(
                                 self.allure_report,
                                 has_entry('name', 'First Level Suite')
                             )
                         )
                     )
                 )
             ),
             has_sub_suite('Third Level Suite.Suite With Three Parent'),
             has_suite('Second Level Suite'),
             has_parent_suite('First Level Suite')
         )
     )
Esempio n. 37
0
 def test_failed_with_details(self):
     assert_that(self.allure_report, has_test_case('Failed Case With Message',
                                                   with_status('failed'),
                                                   has_status_details(with_message_contains('Failed Details')
                                                                      )
                                                   )
                 )
def test_broken_fixture(executed_docstring_source):
    """
    >>> import pytest

    >>> @pytest.fixture
    ... def broken_fixture():
    ...     raise IndexError

    >>> def test_broken_fixture_example(broken_fixture):
    ...     pass
    """

    assert_that(executed_docstring_source.allure_report,
                has_test_case("test_broken_fixture_example",
                              with_status("broken"),
                              has_status_details(with_message_contains("IndexError"),
                                                 with_trace_contains("def broken_fixture():")
                                                 ),
                              has_container(executed_docstring_source.allure_report,
                                            has_before("broken_fixture",
                                                       with_status("broken"),
                                                       has_status_details(with_message_contains("IndexError"),
                                                                          with_trace_contains("broken_fixture")
                                                                          ),
                                                       ),
                                            )
                              )
                )
def test_dynamic_display_name(executed_docstring_path):
    """ ./examples/display_name/dynamic_display_name.rst """

    assert_that(
        executed_docstring_path.allure_report,
        has_test_case("test_dynamic_display_name",
                      has_title("It is renamed test")))
def test_step_with_attachment(executed_docstring_path):
    assert_that(executed_docstring_path.allure_report,
                has_test_case("test_step_with_attachment",
                              has_step("step_with_attachment",
                                       has_attachment()
                                       ),
                              )
                )
def test_not_decorated_sub_class_decorated_method(executed_docstring_path):
    assert_that(executed_docstring_path.allure_report,
                has_test_case("TestNotDecoratedSubClass#test_decorated_method",
                              all_of(has_severity("critical"),
                                     is_not(has_severity("trivial"))
                                     )
                              )
                )
Esempio n. 42
0
 def test_tags(self):
     assert_that(
         self.allure_report,
         has_test_case(
             'Case In Suite With Metadata',
             has_link('https://google.com', LinkType.LINK, 'Link')
         )
     )
Esempio n. 43
0
def test_issue_link(executed_docstring_path):
    assert_that(
        executed_docstring_path.allure_report,
        has_test_case(
            "test_issue_link",
            has_issue_link(
                "https://github.com/allure-framework/allure-python/issues/24"))
    )
def test_all_links_together(executed_docstring_path):
    assert_that(executed_docstring_path.allure_report,
                has_test_case("test_all_links_together",
                              has_issue_link("issues/24"),
                              has_issue_link("issues/24"),
                              has_link("allure", name="QAMETA", link_type="docs")
                              )
                )
def test_dynamic_display_name(executed_docstring_path):
    """ ./examples/display_name/dynamic_display_name.rst """

    assert_that(executed_docstring_path.allure_report,
                has_test_case("test_dynamic_display_name",
                              has_title("It is renamed test")
                              )
                )
Esempio n. 46
0
 def test_history_id(self):
     assert_that(
         self.allure_report,
         has_test_case(
             'Case With Tags',
             has_history_id()
         )
     )
def test_unicode_function_name(executed_docstring_source):
    """
    >>> def test_unicode_func_déjà_vu():
    ...     pass
    """

    assert_that(executed_docstring_source.allure_report,
                has_test_case("test_unicode_func_déjà_vu")
                )
def test_nested_fixture(allured_testdir, parent_scope, child_scope):
    allured_testdir.testdir.makepyfile("""
        import pytest

        @pytest.fixture(scope="{parent_scope}")
        def parent_fixture():
            pass

        @pytest.fixture(scope="{child_scope}")
        def child_fixture(parent_fixture):
            pass

        def test_nested_fixture_example(child_fixture):
            pass

        def test_fixture_used_in_other_fixtures_example(parent_fixture):
            pass

    """.format(parent_scope=parent_scope, child_scope=child_scope))

    allured_testdir.run_with_allure()

    assert_that(allured_testdir.allure_report,
                has_test_case("test_nested_fixture_example",
                              has_container(allured_testdir.allure_report,
                                            has_before("parent_fixture")
                                            ),
                              has_container(allured_testdir.allure_report,
                                            has_before("child_fixture"),
                                            )
                              )
                )

    assert_that(allured_testdir.allure_report,
                has_test_case("test_fixture_used_in_other_fixtures_example",
                              has_container(allured_testdir.allure_report,
                                            has_before("parent_fixture")
                                            ),
                              not_(has_container(allured_testdir.allure_report,
                                                 has_before("child_fixture"),
                                                 )
                                   )
                              )
                )
def test_unicode_class_name(executed_docstring_source):
    """
    >>> class TestCaseПервый:
    ...     def test_method(self):
    ...         pass
    """

    assert_that(executed_docstring_source.allure_report,
                has_test_case("TestCaseПервый#test_method")
                )
def test_unicode_method_name(executed_docstring_source):
    """
    >>> class TestCase:
    ...     def test_unicode_method_例子(self):
    ...         pass
    """

    assert_that(executed_docstring_source.allure_report,
                has_test_case("test_unicode_method_例子")
                )
def test_fixture_attachment(executed_docstring_path):
    assert_that(executed_docstring_path.allure_report,
                has_test_case("test_fixture_attachment",
                              has_container(executed_docstring_path.allure_report,
                                            has_before("fixture_with_attachment",
                                                       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()
                                                      )
                                            )
                              )
                )
Esempio n. 53
0
def test_nested_steps(executed_docstring_path):
    assert_that(executed_docstring_path.allure_report,
                has_test_case("test_nested_steps",
                              has_step("grand parent step",
                                       has_step("parent step",
                                                has_step("passed_step"
                                                         )
                                                )
                                       )
                              )
                )
def test_history_id(executed_docstring_source):
    """
    >>> def test_history_id_example():
    ...     assert True
    """

    assert_that(executed_docstring_source.allure_report,
                has_test_case("test_history_id_example",
                              has_history_id()
                              )
                )
def test_passed(executed_docstring_source):
    """
    >>> def test_passed_example():
    ...     pass
    """

    assert_that(executed_docstring_source.allure_report,
                has_test_case("test_passed_example",
                              with_status("passed")
                              )
                )
def test_unicode_display_name(executed_docstring_source):
    """
    >>> import allure

    >>> @allure.title(u"Лунтик")
    >>> def test_unicode_display_name_example():
    ...     pass
    """

    assert_that(executed_docstring_source.allure_report,
                has_test_case("test_unicode_display_name_example", has_title(u"Лунтик"))
                )
def test_default_suite(executed_docstring_source):
    """
    >>> def test_default_suite_example():
    ...     pass
    """

    assert_that(executed_docstring_source.allure_report,
                has_test_case("test_default_suite_example",
                              has_parent_suite(anything()),  # path to testdir
                              has_suite("test_default_suite"),  # created file name
                              not_(has_sub_suite(anything()))
                              )
                )
def test_class_method_attachment(executed_docstring_source):
    """
    >>> import allure

    >>> class TestClass(object):
    ...     def test_class_method_attachment(self):
    ...         allure.attach("text", "failed", allure.attachment_type.TEXT)
    """

    assert_that(executed_docstring_source.allure_report,
                has_test_case("test_class_method_attachment",
                              has_attachment(name="failed")
                              )
                )
def test_with_no_package(allured_testdir):
    """
    >>> def test_package_less(request):
    ...     pass
    """
    allured_testdir.parse_docstring_source()

    allured_testdir.testdir.makeini("""[pytest]""")
    allured_testdir.run_with_allure(allured_testdir.testdir.tmpdir)

    assert_that(allured_testdir.allure_report,
                has_test_case("test_package_less",
                              has_package("test_with_no_package"))
                )