pytest-sugar icon indicating copy to clipboard operation
pytest-sugar copied to clipboard

Log captured during setup is displayed 3 times

Open ods opened this issue 4 years ago • 2 comments

Test file

import logging
import pytest

@pytest.fixture
def fixture():
    logging.warning('Warning in fixture')


def test_nothing(fixture):
    pass

Output with pytest-sugar

$ pytest -r P test.py 
Test session starts (platform: darwin, Python 3.8.2, pytest 5.3.5, pytest-sugar 0.9.2)
rootdir: /Users/ods/work/sugar-dup-log
plugins: sugar-0.9.2
collecting ... 
 test.py ✓                                             100% ██████████
=============================== PASSES ===============================
____________________________ test_nothing ____________________________
------------------------- Captured log setup -------------------------
WARNING  root:test.py:6 Warning in fixture
____________________________ test_nothing ____________________________
------------------------- Captured log setup -------------------------
WARNING  root:test.py:6 Warning in fixture
____________________________ test_nothing ____________________________
------------------------- Captured log setup -------------------------
WARNING  root:test.py:6 Warning in fixture

Results (0.02s):
       1 passed

Output with pytest-sugar

$ pytest -r P -p no:sugar test.py 
======================== test session starts =========================
platform darwin -- Python 3.8.2, pytest-5.3.5, py-1.8.1, pluggy-0.13.1
rootdir: /Users/ods/work/sugar-dup-log
collected 1 item                                                     

test.py .                                                      [100%]

=============================== PASSES ===============================
____________________________ test_nothing ____________________________
------------------------- Captured log setup -------------------------
WARNING  root:test.py:6 Warning in fixture
========================= 1 passed in 0.01s ==========================

ods avatar Mar 25 '20 07:03 ods

this is probably the same fault that is reported in #222 . I have just started using pytest-sugar and when I pytest with any combination of the -r flag, I get output three times...

import pytest
class Test:
    @pytest.fixture()
    def setUp(self):
        print("setup")
        yield "resource"
        print("teardown")

    def test_that_depends_on_resource(self, setUp):
        print("testing {}".format(setUp))

and I get:

pytest tests/ -rA
(Linux uses --headless by default. To override, use --headed / --gui. For Xvfb mode instead, use --xvfb. Or hide this info with --headless.)
Test session starts (platform: linux, Python 3.10.5, pytest 7.1.2, pytest-sugar 0.9.5)
Using --randomly-seed=1102316951
rootdir: /var/home/XXX/src/test_tests/django_test
plugins: ordering-0.6, metadata-2.0.2, forked-1.4.0, html-2.0.1, rerunfailures-10.2, randomly-3.12.0, mock-3.8.2, django-4.5.2, cov-3.0.0, bdd-6.0.1, xdist-2.5.0, seleniumbase-3.5.11, sugar-0.9.5
collecting ... 
 tests/features/test_test.py ✓                                   100% ██████████
==================================== PASSES ====================================
______________________ Test.test_that_depends_on_resource ______________________
---------------------------- Captured stdout setup -----------------------------
setup
______________________ Test.test_that_depends_on_resource ______________________
---------------------------- Captured stdout setup -----------------------------
setup
----------------------------- Captured stdout call -----------------------------
testing resource
______________________ Test.test_that_depends_on_resource ______________________
---------------------------- Captured stdout setup -----------------------------
setup
----------------------------- Captured stdout call -----------------------------
testing resource
--------------------------- Captured stdout teardown ---------------------------
teardown
=========================== short test summary info ============================
PASSED tests/features/test_test.py::Test::test_that_depends_on_resource
PASSED tests/features/test_test.py::Test::test_that_depends_on_resource
PASSED tests/features/test_test.py::Test::test_that_depends_on_resource

Results (0.03s):
       1 passed

and

pytest tests/ -rA -p no:sugar
(Linux uses --headless by default. To override, use --headed / --gui. For Xvfb mode instead, use --xvfb. Or hide this info with --headless.)
============================= test session starts ==============================
platform linux -- Python 3.10.5, pytest-7.1.2, pluggy-1.0.0
Using --randomly-seed=4284594808
rootdir: /var/home/XXX/src/test_tests/django_test
plugins: ordering-0.6, metadata-2.0.2, forked-1.4.0, html-2.0.1, rerunfailures-10.2, randomly-3.12.0, mock-3.8.2, django-4.5.2, cov-3.0.0, bdd-6.0.1, xdist-2.5.0, seleniumbase-3.5.11
collected 1 item                                                               

tests/features/test_test.py .                                            [100%]

==================================== PASSES ====================================
______________________ Test.test_that_depends_on_resource ______________________
---------------------------- Captured stdout setup -----------------------------
setup
----------------------------- Captured stdout call -----------------------------
testing resource
--------------------------- Captured stdout teardown ---------------------------
teardown
=========================== short test summary info ============================
PASSED tests/features/test_test.py::Test::test_that_depends_on_resource
============================== 1 passed in 0.03s ===============================

.... :(

millerthegorilla avatar Aug 17 '22 15:08 millerthegorilla

I'm not seeing this issue with the following:

python 3.11.2 pytest==7.4.4 pytest-sugar==0.9.7

hortonew avatar Jan 05 '24 00:01 hortonew