File tree Expand file tree Collapse file tree 2 files changed +64
-3
lines changed
Expand file tree Collapse file tree 2 files changed +64
-3
lines changed Original file line number Diff line number Diff line change @@ -1513,6 +1513,60 @@ def test_parameters_required_after_star(self):
15131513 with self .subTest (block = block ):
15141514 self .expect_failure (block , err )
15151515
1516+ def test_fulldisplayname_class (self ):
1517+ dataset = (
1518+ ("T" , """
1519+ class T "void *" ""
1520+ T.__init__
1521+ """ ),
1522+ ("m.T" , """
1523+ module m
1524+ class m.T "void *" ""
1525+ @classmethod
1526+ m.T.__new__
1527+ """ ),
1528+ ("m.T.C" , """
1529+ module m
1530+ class m.T "void *" ""
1531+ class m.T.C "void *" ""
1532+ m.T.C.__init__
1533+ """ ),
1534+ )
1535+ for name , code in dataset :
1536+ with self .subTest (name = name , code = code ):
1537+ block = self .parse (code )
1538+ func = block .signatures [- 1 ]
1539+ self .assertEqual (func .fulldisplayname , name )
1540+
1541+ def test_fulldisplayname_meth (self ):
1542+ dataset = (
1543+ ("func" , "func" ),
1544+ ("m.func" , """
1545+ module m
1546+ m.func
1547+ """ ),
1548+ ("T.meth" , """
1549+ class T "void *" ""
1550+ T.meth
1551+ """ ),
1552+ ("m.T.meth" , """
1553+ module m
1554+ class m.T "void *" ""
1555+ m.T.meth
1556+ """ ),
1557+ ("m.T.C.meth" , """
1558+ module m
1559+ class m.T "void *" ""
1560+ class m.T.C "void *" ""
1561+ m.T.C.meth
1562+ """ ),
1563+ )
1564+ for name , code in dataset :
1565+ with self .subTest (name = name , code = code ):
1566+ block = self .parse (code )
1567+ func = block .signatures [- 1 ]
1568+ self .assertEqual (func .fulldisplayname , name )
1569+
15161570 def test_depr_star_invalid_format_1 (self ):
15171571 block = """
15181572 module foo
Original file line number Diff line number Diff line change @@ -2682,9 +2682,16 @@ def displayname(self) -> str:
26822682
26832683 @functools .cached_property
26842684 def fulldisplayname (self ) -> str :
2685- if isinstance (self .module , Module ):
2686- return f"{ self .module .name } .{ self .displayname } "
2687- return self .displayname
2685+ parent : Class | Module | Clinic | None
2686+ if self .kind .new_or_init :
2687+ parent = getattr (self .cls , "parent" , None )
2688+ else :
2689+ parent = self .parent
2690+ name = self .displayname
2691+ while isinstance (parent , (Module , Class )):
2692+ name = f"{ parent .name } .{ name } "
2693+ parent = parent .parent
2694+ return name
26882695
26892696 @property
26902697 def render_parameters (self ) -> list [Parameter ]:
You can’t perform that action at this time.
0 commit comments