-
- Notifications
You must be signed in to change notification settings - Fork 2.9k
Labels
topic: reportingrelated to terminal output and user-facing messages and errorsrelated to terminal output and user-facing messages and errorstype: questiongeneral question, might be closed after 2 weeks of inactivitygeneral question, might be closed after 2 weeks of inactivity
Description
If a comparison on the length of a sequence fails, the sequence is truncated in the failure explanation regardless of the verbosity setting.
Example script:
def test_list(): l = list(range(50)) assert l == [] def test_list_len(): l = list(range(50)) assert len(l) == 49 def test_dict(): d = dict(zip(range(50), range(50))) assert d == {} def test_dict_len(): d = dict(zip(range(50), range(50))) assert len(d) == 49Output of python3 -m pytest test_truncation.py:
====================================================== FAILURES ====================================================== _____________________________________________________ test_list ______________________________________________________ def test_list(): l = list(range(50)) > assert l == [] E assert [0, 1, 2, 3, 4, 5, ...] == [] E Left contains 50 more items, first extra item: 0 E Use -v to get more diff test_truncation.py:3: AssertionError ___________________________________________________ test_list_len ____________________________________________________ def test_list_len(): l = list(range(50)) > assert len(l) == 49 E assert 50 == 49 E + where 50 = len([0, 1, 2, 3, 4, 5, ...]) test_truncation.py:7: AssertionError _____________________________________________________ test_dict ______________________________________________________ def test_dict(): d = dict(zip(range(50), range(50))) > assert d == {} E AssertionError: assert {0: 0, 1: 1, 2: 2, 3: 3, ...} == {} E Left contains 50 more items: E {0: 0, E 1: 1, E 2: 2, E 3: 3, E 4: 4, E 5: 5,... E E ...Full output truncated (45 lines hidden), use '-vv' to show test_truncation.py:11: AssertionError ___________________________________________________ test_dict_len ____________________________________________________ def test_dict_len(): d = dict(zip(range(50), range(50))) > assert len(d) == 49 E assert 50 == 49 E + where 50 = len({0: 0, 1: 1, 2: 2, 3: 3, ...}) test_truncation.py:15: AssertionError ============================================== short test summary info =============================================== FAILED test_truncation.py::test_list - assert [0, 1, 2, 3, 4, 5, ...] == [] FAILED test_truncation.py::test_list_len - assert 50 == 49 FAILED test_truncation.py::test_dict - AssertionError: assert {0: 0, 1: 1, 2: 2, 3: 3, ...} == {} FAILED test_truncation.py::test_dict_len - assert 50 == 49 Output of python3 -m pytest test_truncation.py -v:
====================================================== FAILURES ====================================================== _____________________________________________________ test_list ______________________________________________________ def test_list(): l = list(range(50)) > assert l == [] E AssertionError: assert [0, 1, 2, 3, 4, 5, ...] == [] E Left contains 50 more items, first extra item: 0 E Full diff: E [ E - , E + 0, E ? + E + 1,... E E ...Full output truncated (49 lines hidden), use '-vv' to show test_truncation.py:3: AssertionError ___________________________________________________ test_list_len ____________________________________________________ def test_list_len(): l = list(range(50)) > assert len(l) == 49 E assert 50 == 49 E + where 50 = len([0, 1, 2, 3, 4, 5, ...]) test_truncation.py:7: AssertionError _____________________________________________________ test_dict ______________________________________________________ def test_dict(): d = dict(zip(range(50), range(50))) > assert d == {} E AssertionError: assert {0: 0, 1: 1, 2: 2, 3: 3, ...} == {} E Left contains 50 more items: E {0: 0, E 1: 1, E 2: 2, E 3: 3, E 4: 4, E 5: 5,... E E ...Full output truncated (98 lines hidden), use '-vv' to show test_truncation.py:11: AssertionError ___________________________________________________ test_dict_len ____________________________________________________ def test_dict_len(): d = dict(zip(range(50), range(50))) > assert len(d) == 49 E assert 50 == 49 E + where 50 = len({0: 0, 1: 1, 2: 2, 3: 3, ...}) test_truncation.py:15: AssertionError ============================================== short test summary info =============================================== FAILED test_truncation.py::test_list - AssertionError: assert [0, 1, 2, 3, 4, 5, ...] == [] FAILED test_truncation.py::test_list_len - assert 50 == 49 FAILED test_truncation.py::test_dict - AssertionError: assert {0: 0, 1: 1, 2: 2, 3: 3, ...} == {} FAILED test_truncation.py::test_dict_len - assert 50 == 49 Output of python3 -m pytest test_truncation.py -vv:
====================================================== FAILURES ====================================================== _____________________________________________________ test_list ______________________________________________________ def test_list(): l = list(range(50)) > assert l == [] E assert [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49] == [] E Left contains 50 more items, first extra item: 0 E Full diff: E [ E - , E + 0, E ? + E + 1, E + 2, E + 3, E + 4, E + 5, E + 6, E + 7, E + 8, E + 9, E + 10, E + 11, E + 12, E + 13, E + 14, E + 15, E + 16, E + 17, E + 18, E + 19, E + 20, E + 21, E + 22, E + 23, E + 24, E + 25, E + 26, E + 27, E + 28, E + 29, E + 30, E + 31, E + 32, E + 33, E + 34, E + 35, E + 36, E + 37, E + 38, E + 39, E + 40, E + 41, E + 42, E + 43, E + 44, E + 45, E + 46, E + 47, E + 48, E + 49, E ] test_truncation.py:3: AssertionError ___________________________________________________ test_list_len ____________________________________________________ def test_list_len(): l = list(range(50)) > assert len(l) == 49 E assert 50 == 49 E + where 50 = len([0, 1, 2, 3, 4, 5, ...]) test_truncation.py:7: AssertionError _____________________________________________________ test_dict ______________________________________________________ def test_dict(): d = dict(zip(range(50), range(50))) > assert d == {} E assert {0: 0, 1: 1, 2: 2, 3: 3, 4: 4, 5: 5, 6: 6, 7: 7, 8: 8, 9: 9, 10: 10, 11: 11, 12: 12, 13: 13, 14: 14, 15: 15, 16: 16, 17: 17, 18: 18, 19: 19, 20: 20, 21: 21, 22: 22, 23: 23, 24: 24, 25: 25, 26: 26, 27: 27, 28: 28, 29: 29, 30: 30, 31: 31, 32: 32, 33: 33, 34: 34, 35: 35, 36: 36, 37: 37, 38: 38, 39: 39, 40: 40, 41: 41, 42: 42, 43: 43, 44: 44, 45: 45, 46: 46, 47: 47, 48: 48, 49: 49} == {} E Left contains 50 more items: E {0: 0, E 1: 1, E 2: 2, E 3: 3, E 4: 4, E 5: 5, E 6: 6, E 7: 7, E 8: 8, E 9: 9, E 10: 10, E 11: 11, E 12: 12, E 13: 13, E 14: 14, E 15: 15, E 16: 16, E 17: 17, E 18: 18, E 19: 19, E 20: 20, E 21: 21, E 22: 22, E 23: 23, E 24: 24, E 25: 25, E 26: 26, E 27: 27, E 28: 28, E 29: 29, E 30: 30, E 31: 31, E 32: 32, E 33: 33, E 34: 34, E 35: 35, E 36: 36, E 37: 37, E 38: 38, E 39: 39, E 40: 40, E 41: 41, E 42: 42, E 43: 43, E 44: 44, E 45: 45, E 46: 46, E 47: 47, E 48: 48, E 49: 49} E Full diff: E { E - , E + 0: 0, E + 1: 1, E + 2: 2, E + 3: 3, E + 4: 4, E + 5: 5, E + 6: 6, E + 7: 7, E + 8: 8, E + 9: 9, E + 10: 10, E + 11: 11, E + 12: 12, E + 13: 13, E + 14: 14, E + 15: 15, E + 16: 16, E + 17: 17, E + 18: 18, E + 19: 19, E + 20: 20, E + 21: 21, E + 22: 22, E + 23: 23, E + 24: 24, E + 25: 25, E + 26: 26, E + 27: 27, E + 28: 28, E + 29: 29, E + 30: 30, E + 31: 31, E + 32: 32, E + 33: 33, E + 34: 34, E + 35: 35, E + 36: 36, E + 37: 37, E + 38: 38, E + 39: 39, E + 40: 40, E + 41: 41, E + 42: 42, E + 43: 43, E + 44: 44, E + 45: 45, E + 46: 46, E + 47: 47, E + 48: 48, E + 49: 49, E } test_truncation.py:11: AssertionError ___________________________________________________ test_dict_len ____________________________________________________ def test_dict_len(): d = dict(zip(range(50), range(50))) > assert len(d) == 49 E assert 50 == 49 E + where 50 = len({0: 0, 1: 1, 2: 2, 3: 3, ...}) test_truncation.py:15: AssertionError ============================================== short test summary info =============================================== FAILED test_truncation.py::test_list - assert [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28,... FAILED test_truncation.py::test_list_len - assert 50 == 49 FAILED test_truncation.py::test_dict - assert {0: 0, 1: 1, 2: 2, 3: 3, 4: 4, 5: 5, 6: 6, 7: 7, 8: 8, 9: 9, 10: 10, 11: 11, 12: 12, 13: 13, 14: 14, 15: 1... FAILED test_truncation.py::test_dict_len - assert 50 == 49 Why are the sequences always truncated in the explanations of the length comparison failures, regardless of verbosity?
Python 3.10.12, pytest-7.4.4, my OS is Linux Mint 21.2.
pip list output attached:
Metadata
Metadata
Assignees
Labels
topic: reportingrelated to terminal output and user-facing messages and errorsrelated to terminal output and user-facing messages and errorstype: questiongeneral question, might be closed after 2 weeks of inactivitygeneral question, might be closed after 2 weeks of inactivity