Use inspect.getdoc to massage fixture docstrings (#6668)
Ref: https://github.com/pytest-dev/pytest/pull/2575
This commit is contained in:
		
							parent
							
								
									75714ee707
								
							
						
					
					
						commit
						5a4c1b628b
					
				| 
						 | 
					@ -9,7 +9,6 @@ from collections import Counter
 | 
				
			||||||
from collections import defaultdict
 | 
					from collections import defaultdict
 | 
				
			||||||
from collections.abc import Sequence
 | 
					from collections.abc import Sequence
 | 
				
			||||||
from functools import partial
 | 
					from functools import partial
 | 
				
			||||||
from textwrap import dedent
 | 
					 | 
				
			||||||
from typing import List
 | 
					from typing import List
 | 
				
			||||||
from typing import Optional
 | 
					from typing import Optional
 | 
				
			||||||
from typing import Tuple
 | 
					from typing import Tuple
 | 
				
			||||||
| 
						 | 
					@ -1247,7 +1246,7 @@ def _show_fixtures_per_test(config, session):
 | 
				
			||||||
        else:
 | 
					        else:
 | 
				
			||||||
            funcargspec = argname
 | 
					            funcargspec = argname
 | 
				
			||||||
        tw.line(funcargspec, green=True)
 | 
					        tw.line(funcargspec, green=True)
 | 
				
			||||||
        fixture_doc = fixture_def.func.__doc__
 | 
					        fixture_doc = inspect.getdoc(fixture_def.func)
 | 
				
			||||||
        if fixture_doc:
 | 
					        if fixture_doc:
 | 
				
			||||||
            write_docstring(tw, fixture_doc)
 | 
					            write_docstring(tw, fixture_doc)
 | 
				
			||||||
        else:
 | 
					        else:
 | 
				
			||||||
| 
						 | 
					@ -1332,7 +1331,7 @@ def _showfixtures_main(config, session):
 | 
				
			||||||
            tw.write(" -- %s" % bestrel, yellow=True)
 | 
					            tw.write(" -- %s" % bestrel, yellow=True)
 | 
				
			||||||
        tw.write("\n")
 | 
					        tw.write("\n")
 | 
				
			||||||
        loc = getlocation(fixturedef.func, curdir)
 | 
					        loc = getlocation(fixturedef.func, curdir)
 | 
				
			||||||
        doc = fixturedef.func.__doc__ or ""
 | 
					        doc = inspect.getdoc(fixturedef.func)
 | 
				
			||||||
        if doc:
 | 
					        if doc:
 | 
				
			||||||
            write_docstring(tw, doc)
 | 
					            write_docstring(tw, doc)
 | 
				
			||||||
        else:
 | 
					        else:
 | 
				
			||||||
| 
						 | 
					@ -1341,18 +1340,8 @@ def _showfixtures_main(config, session):
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
def write_docstring(tw, doc, indent="    "):
 | 
					def write_docstring(tw, doc, indent="    "):
 | 
				
			||||||
    doc = doc.rstrip()
 | 
					    for line in doc.split("\n"):
 | 
				
			||||||
    if "\n" in doc:
 | 
					        tw.write(indent + line + "\n")
 | 
				
			||||||
        firstline, rest = doc.split("\n", 1)
 | 
					 | 
				
			||||||
    else:
 | 
					 | 
				
			||||||
        firstline, rest = doc, ""
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    if firstline.strip():
 | 
					 | 
				
			||||||
        tw.line(indent + firstline.strip())
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    if rest:
 | 
					 | 
				
			||||||
        for line in dedent(rest).split("\n"):
 | 
					 | 
				
			||||||
            tw.write(indent + line + "\n")
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
class Function(PyobjMixin, nodes.Item):
 | 
					class Function(PyobjMixin, nodes.Item):
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
		Reference in New Issue