Your IP : 216.73.216.213


Current Path : /opt/alt/python35/lib64/python3.5/site-packages/coverage/__pycache__/
Upload File :
Current File : //opt/alt/python35/lib64/python3.5/site-packages/coverage/__pycache__/xmlreport.cpython-35.pyc



E�W��@s�dZddlZddlZddlZddlZddlZddlmZddlm	Z	m
Z
mZddlm
Z
ddlmZddlmZee�ZdZd	d
�ZGdd�de�ZdS)
zXML reporting for coverage.py�N)�env)�__url__�__version__�files)�iitems)�isolate_module)�Reporterzshttps://raw.githubusercontent.com/cobertura/web/f0366e5e2cf18f111cbd61fc34ef720a6584ba02/htdocs/xml/coverage-03.dtdcCs&|dkrdSdt|�|SdS)z0Return the fraction of `hit`/`num`, as a string.r�1z%.4gN)�float)Zhit�num�r�E/opt/alt/python35/lib64/python3.5/site-packages/coverage/xmlreport.py�ratesrcsCeZdZdZ�fdd�Zddd�Zdd�Z�S)	�XmlReporterz<A reporter for writing Cobertura-style XML coverage results.cs�tt|�j||�t�|_|jrmx<|jD]1}tjj|�r8|jj	t
j|��q8Wi|_d|_
|jj�|_dS)N)�superr�__init__�set�source_paths�source�os�path�exists�addrZcanonical_filename�packages�xml_out�data�has_arcs)�self�coverage�config�src)�	__class__rr
r's			zXmlReporter.__init__NcCss|ptj}tjjj�}|jddd�|_|jj}|j	dt
�|j	dttt
j
�d���|j|jjdt��|j|jjdt��|j|j|�|jjd�}|j|�xUt|j�D]D}|jjd	�}|j|�|jj|�}|j|�q�Wd\}	}
d\}}|jjd�}
|j|
�xGtt|j��D]0\}}|\}}}}}|jjd�}|
j|�|jjd
�}|j|�x-tt|��D]\}}|j|�q�W|j	d|jtjd��|j	dt||��|jrnt||�}nd}|j	d|�|j	dd�|	|7}	|
|7}
||7}||7}q�W|j	dt|
|	��|jr�t||�}nd}|j	d|�|jj�}t j!r1|j"d�}|j#|�|	|}|d
kr]d}nd|
||}|S)z�Generate a Cobertura-compatible XML report for `morfs`.

        `morfs` is a list of modules or file names.

        `outfile` is a file object to write the XML to.

        Nr�version�	timestampi�z Generated by coverage.py: %s z
 Based on %s �sourcesrrr�package�classes�name�.z	line-rate�0zbranch-rate�
complexity�utf8ggY@)rr)rr)$�sys�stdout�xml�domZminidomZgetDOMImplementationZcreateDocumentrZdocumentElement�setAttributer�str�int�time�appendChildZ
createCommentr�DTD_URLZreport_files�xml_file�
createElement�sortedrZcreateTextNoderr�replacer�seprrZtoprettyxmlr�PY2�encode�write)rZmorfs�outfile�implZ	xcoverageZxsourcesrZxsourceZtxtZlnum_totZ	lhits_totZbnum_totZ	bhits_totZ	xpackages�pkg_nameZpkg_dataZ
class_eltsZlhits�lnumZbhitsZbnumZxpackageZxclasses�_Z	class_elt�branch_rate�outZdenomZpctrrr
�report3sl	&


"

	


		

	zXmlReporter.reportcCs�|jjdd�}xW|jD]@}|j|jdd�d�r|t|�dd�}PqW|j�}tjj|�p�d}dj	|j
d�d|jj��}|jdd�}||jkr�|jj
|jdt|��jd��|jj|iddddg�}|jjd�}	|	j|jjd	��|jjd
�}
|	j|
�|	jdtjj||��|	jd|j�jdd��|	jd
d�|j�}|j�}xt|j�D]�}
|jjd�}|jdt|
��|jdtt|
|jk���|jr�|
|kr�||
\}}|jdd�|jddd||||f�|
|kr�dd�||
D�}|jddj	|��|
j|�q�Wt|j�}|t|j�}|jrTtdd�|j�D��}tdd�|j�D��}||}nd}d}|	jdt ||��|jr�t ||�}nd}|	jd |�|	|d|<|d|7<|d!|7<|d"|7<|d#|7<dS)$z(Add to the XML report for a single file.�\�/�Nr(z\/r�class�methods�linesr'�filenamer*r)�line�number�hits�branch�truezcondition-coveragez%d%% (%d/%d)�dcSs.g|]$}|dkrdn	t|��qS)r�exit)r1)�.0�brrr
�
<listcomp>�s	z(XmlReporter.xml_file.<locals>.<listcomp>zmissing-branches�,css|]\}}|VqdS)Nr)rT�t�krrr
�	<genexpr>�sz'XmlReporter.xml_file.<locals>.<genexpr>css|]\}}||VqdS)Nr)rTrXrYrrr
rZ�sgz	line-ratezbranch-rate���)!rLr9r�
startswith�lenZrelative_filenamerr�dirname�join�splitrZxml_package_depthr�rstripr�
setdefaultrr7r4r0�relpath�branch_stats�missing_branch_arcsr8Z
statementsr1r2�missingr�sum�valuesr)r�frZanalysisrL�source_pathZrel_namer`�package_namer%ZxclassZxlinesrfrgrMZxline�totalZtakenZannlinesZclass_linesZ
class_hitsZclass_branchesZmissing_branchesZ
class_br_hitsrCrrr
r6�sl(-$
"%		
	zXmlReporter.xml_file)�__name__�
__module__�__qualname__�__doc__rrEr6rr)r!r
r$sWr)rrr�os.pathr,r3Zxml.dom.minidomr.rrrrrZcoverage.backwardrZ
coverage.miscrZcoverage.reportrr5rrrrrr
�<module>s