(capsys)
| 506 | strict=(sys.version_info < (3, 15)), |
| 507 | ) |
| 508 | def test_pinfo_docstring_dynamic(capsys): |
| 509 | obj_def = """class Bar: |
| 510 | __custom_documentations__ = { |
| 511 | "prop" : "cdoc for prop", |
| 512 | "non_exist" : "cdoc for non_exist", |
| 513 | } |
| 514 | @property |
| 515 | def prop(self): |
| 516 | ''' |
| 517 | Docstring for prop |
| 518 | ''' |
| 519 | return self._prop |
| 520 | |
| 521 | @prop.setter |
| 522 | def prop(self, v): |
| 523 | self._prop = v |
| 524 | """ |
| 525 | ip.run_cell(obj_def) |
| 526 | |
| 527 | ip.run_cell("b = Bar()") |
| 528 | |
| 529 | ip.run_line_magic("pinfo", "b.prop") |
| 530 | captured = capsys.readouterr() |
| 531 | assert re.search(r"Docstring:\s+cdoc for prop", captured.out) |
| 532 | |
| 533 | ip.run_line_magic("pinfo", "b.non_exist") |
| 534 | captured = capsys.readouterr() |
| 535 | assert re.search(r"Docstring:\s+cdoc for non_exist", captured.out) |
| 536 | |
| 537 | ip.run_cell("b.prop?") |
| 538 | captured = capsys.readouterr() |
| 539 | assert re.search(r"Docstring:\s+cdoc for prop", captured.out) |
| 540 | |
| 541 | ip.run_cell("b.non_exist?") |
| 542 | captured = capsys.readouterr() |
| 543 | assert re.search(r"Docstring:\s+cdoc for non_exist", captured.out) |
| 544 | |
| 545 | ip.run_cell("b.undefined?") |
| 546 | captured = capsys.readouterr() |
| 547 | assert re.search(r"Type:\s+NoneType", captured.out) |
| 548 | |
| 549 | |
| 550 | def test_pinfo_getattr_object(capsys): |
nothing calls this directly
no test coverage detected
searching dependent graphs…