@@ -390,3 +390,98 @@ def test_pydecoratormethod_signature(app):
390390
391391 assert 'deco' in domain .objects
392392 assert domain .objects ['deco' ] == ('index' , 'deco' , 'method' , False )
393+
394+
395+ def test_pycurrentmodule (app ):
396+ text = (".. py:module:: Other\n "
397+ "\n "
398+ ".. py:module:: Module\n "
399+ ".. py:class:: A\n "
400+ "\n "
401+ " .. py:method:: m1\n "
402+ " .. py:method:: m2\n "
403+ "\n "
404+ ".. py:currentmodule:: Other\n "
405+ "\n "
406+ ".. py:class:: B\n "
407+ "\n "
408+ " .. py:method:: m3\n "
409+ " .. py:method:: m4\n " )
410+ domain = app .env .get_domain ('py' )
411+ doctree = restructuredtext .parse (app , text )
412+ print (doctree )
413+ assert_node (
414+ doctree , (
415+ addnodes .index ,
416+ addnodes .index ,
417+ addnodes .index ,
418+ nodes .target ,
419+ nodes .target ,
420+ [desc , (
421+ [desc_signature , (
422+ [desc_annotation , ("class" , desc_sig_space )],
423+ [desc_addname , "Module." ],
424+ [desc_name , "A" ],
425+ )],
426+ [desc_content , (
427+ addnodes .index ,
428+ [desc , (
429+ [desc_signature , (
430+ [desc_name , "m1" ],
431+ [desc_parameterlist , ()],
432+ )],
433+ [desc_content , ()],
434+ )],
435+ addnodes .index ,
436+ [desc , (
437+ [desc_signature , (
438+ [desc_name , "m2" ],
439+ [desc_parameterlist , ()],
440+ )],
441+ [desc_content , ()],
442+ )],
443+ )],
444+ )],
445+ addnodes .index ,
446+ [desc , (
447+ [desc_signature , (
448+ [desc_annotation , ("class" , desc_sig_space )],
449+ [desc_addname , "Other." ],
450+ [desc_name , "B" ],
451+ )],
452+ [desc_content , (
453+ addnodes .index ,
454+ [desc , (
455+ [desc_signature , (
456+ [desc_name , "m3" ],
457+ [desc_parameterlist , ()],
458+ )],
459+ [desc_content , ()],
460+ )],
461+ addnodes .index ,
462+ [desc , (
463+ [desc_signature , (
464+ [desc_name , "m4" ],
465+ [desc_parameterlist , ()],
466+ )],
467+ [desc_content , ()],
468+ )],
469+ )],
470+ )],
471+ ))
472+ assert 'Module' in domain .objects
473+ assert domain .objects ['Module' ] == ('index' , 'module-Module' , 'module' , False )
474+ assert 'Other' in domain .objects
475+ assert domain .objects ['Other' ] == ('index' , 'module-Other' , 'module' , False )
476+ assert 'Module.A' in domain .objects
477+ assert domain .objects ['Module.A' ] == ('index' , 'Module.A' , 'class' , False )
478+ assert 'Other.B' in domain .objects
479+ assert domain .objects ['Other.B' ] == ('index' , 'Other.B' , 'class' , False )
480+ assert 'Module.A.m1' in domain .objects
481+ assert domain .objects ['Module.A.m1' ] == ('index' , 'Module.A.m1' , 'method' , False )
482+ assert 'Module.A.m2' in domain .objects
483+ assert domain .objects ['Module.A.m2' ] == ('index' , 'Module.A.m2' , 'method' , False )
484+ assert 'Other.B.m3' in domain .objects
485+ assert domain .objects ['Other.B.m3' ] == ('index' , 'Other.B.m3' , 'method' , False )
486+ assert 'Other.B.m4' in domain .objects
487+ assert domain .objects ['Other.B.m4' ] == ('index' , 'Other.B.m4' , 'method' , False )
0 commit comments