
    Rtf                         d dl mZ d dlZd dlZd dlmZ d dlZd dlZd dl	m
Z
 d dlmZ d dlmZ  ej                   d      d        Zd	 Zd
 Zej(                  j+                  ddgdfddgdfddgdff      d        Zy)    N)version)Sphinx)docutils_namespace)__version__module)scopec                    | j                         dz  j                  }t        j                  t        j                  t
              d      }d }t        j                  |||       |}|}t        j                  |dd      }t        j                  |dd      }ddd	}t               5  t        ||||fd
di|}|j                  dg        d d d        |S # 1 sw Y   S xY w)Nroot	tinybuildc                      y)N)_build	generated )srcnamess     :/usr/lib/python3/dist-packages/numpydoc/tests/test_full.pyignorezsphinx_app.<locals>.ignore   s    &    )r   r   htmltoctreesT)warningiserror
keep_goingbuildernameF)getbasetempstrpathopjoindirname__file__shutilcopytreer   r   build)	tmpdir_factorytemp_dirsrc_dirr   conf_dirout_dirtoctrees_dirkwargsapps	            r   
sphinx_appr+      s    **,v5>>Hggbjj*K8G' OOGXf5 GHggh&1G778Xz:L $D9F 
	 Xw
BH
LR

 			% J Js   '$CCc                    | j                   | j                  }}t        j                  |dd      }t	        |      5 }|j                         }ddd       dv sJ t        j                  |dd      }t	        |      5 }|j                         }ddd       dvsJ d|vsJ d|v sJ d	|vsJ d
|vsJ d|v sJ y# 1 sw Y   oxY w# 1 sw Y   :xY w)z,Test that class documentation is reasonable.r   z numpydoc_test_module.MyClass.rstNznumpydoc\_test\_module!numpydoc_test_module.MyClass.htmlz$selfz/,__init__z\*zself,zstdtypes.html#dict)srcdiroutdirr   r   openread)r+   r%   r'   	class_rstfidrst
class_htmlr   s           r   test_MyClassr7   *   s    !((**;*;WG.PQI	i Chhj$++++/RSJ	j	 Sxxz $t $4'''!  s   B:<C:CCc                     | j                   }t        j                  |dd      }t        |      5 }|j	                         }ddd       dvsJ d|v sJ d|v sJ y# 1 sw Y   xY w)z/Test that function documentation is reasonable.r   %numpydoc_test_module.my_function.htmlNz\*argsz*argszglossary.html#term-iterable)r0   r   r   r1   r2   )r+   r'   function_htmlr4   r   s        r   test_my_functionr;   A   sw    GGGEM 
m	 xxzD   d??(D000 s   AA$)	html_fileexpected_lengthz
index.html   r   r9   r-   c                 x   | j                   }t        t        j                  |g|       5 }|j	                         }ddd       t        j                  t              t        j                  d      k\  rdnd}t        j                  d| d      }t        |      |k(  sJ |D ]  }d|vrJ  y# 1 sw Y   txY w)zTest for bad referencesNz0.18zrole="doc-backlink"zclass="fn-backref"z<a z href="\#id\d+">(.*)<\/a>-)r0   r1   r   r   r2   r   parsedocutils_versionrefindalllen)	r+   r<   r=   r'   r4   r   patternreference_listrefs	            r   test_referencerI   O   s     G	bggg*	*	+ sxxz ==)*gmmF.CC 	! 
 ZZ3wi/H I4PN~/111 #~~ s   B00B9)os.pathpathr   rC   r    	packagingr   pytestsphinxsphinx.applicationr   sphinx.util.docutilsr   docutilsr   rB   fixturer+   r7   r;   markparametrizerI   r   r   r   <module>rU      s     	     % 3 4 h  6(.1 $

>	?C
:	;Q?r   