Skip to content

Doctests on properties do not detect line numbers #6082

Closed
@kondratyev-nv

Description

@kondratyev-nv

When there are doctest tests on a @property method, pytest does not show the line number where the error occurred. For example on code

class Fun(object):    
    @property    
    def test_prop(self):    
        '''    
        >>> Fun().test_prop    
        'another thing'    
        '''    
        return 'something'  

running pytest produces the following output

python3 -m pytest --doctest-modules
============================= test session starts ==============================
platform linux -- Python 3.7.5rc1, pytest-5.2.2, py-1.8.0, pluggy-0.12.0
hypothesis profile 'default' -> database=DirectoryBasedExampleDatabase('/<some-path>/.hypothesis/examples')
rootdir: /<some-path>
plugins: hypothesis-4.41.3
collected 1 item                                                               

hello.py F                                                               [100%]

=================================== FAILURES ===================================
________________________ [doctest] hello.Fun.test_prop _________________________
EXAMPLE LOCATION UNKNOWN, not showing all tests of that example
??? >>> Fun().test_prop
Expected:
    'another thing'
Got:
    'something'

/<some-path>/hello.py:None: DocTestFailure
============================== 1 failed in 0.01s ===============================

Notice ??? instead of the line number. Expected output would be

005 
006         >>> Fun().test_prop
Expected:
    'another thing'
Got:
    'something'

I've tried it with Python 3.7.5rc1, Python 3.8.0, and Python 2.7.17rc1. The results are the same.

Metadata

Metadata

Assignees

No one assigned

    Labels

    plugin: doctestsrelated to the doctests builtin plugintopic: reportingrelated to terminal output and user-facing messages and errorstype: bugproblem that needs to be addressed

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions