403Webshell
Server IP : 209.209.40.120  /  Your IP : 216.73.217.112
Web Server : Microsoft-IIS/10.0
System : Windows NT NEWWWW 10.0 build 17763 (Windows Server 2019) i586
User : NEWWWW$ ( 0)
PHP Version : 8.3.30
Disable Function : NONE
MySQL : OFF  |  cURL : ON  |  WGET : OFF  |  Perl : OFF  |  Python : OFF  |  Sudo : OFF  |  Pkexec : OFF
Directory :  C:/Python312/Lib/site-packages/_pytest/__pycache__/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Command :


[ Back ]     

Current File : C:/Python312/Lib/site-packages/_pytest/__pycache__/junitxml.cpython-312.pyc
�

��Hg�c���dZddlmZddlmZddlmZddlZddlZddlZddlZddl	m
Z
ddl	mZddlm
cmZddlmZdd	lmZdd
lmZddlmZddlmZdd
lmZddlmZddlmZddlmZddlm Z ddl!m"Z"ddl#Z#e d�Z$d,d�Z%d-d�Z&iZ'dddgie'd<dgd�ie'd<e'djQ�e'd<e&e'de'd�e'de'd<Gd�d�Z)						d.d �Z*e#jVd/d!��Z,e#jVd/d"��Z-d0d#�Z.e#jVd$�%�d/d&��Z/d1d'�Z0d2d(�Z1d2d)�Z2d3d*�Z3Gd+�d�Z4y)4aReport test results in JUnit-XML format, for use with Jenkins and build
integration servers.

Based on initial code from Ross Lawley.

Output conforms to
https://github.com/jenkinsci/xunit-plugin/blob/master/src/main/resources/org/jenkinsci/plugins/xunit/types/model/xsd/junit-10.xsd
�)�annotations)�datetime)�timezoneN)�Callable)�Match)�nodes)�timing)�
ExceptionRepr)�ReprFileLocation)�Config)�filename_arg)�Parser)�FixtureRequest)�
TestReport)�StashKey)�TerminalReporter�LogXMLc�N�dd�}d}tj||t|��S)a!Visually escape invalid XML characters.

    For example, transforms
        'hello\aworld\b'
    into
        'hello#x07world#x08'
    Note that the #xABs are *not* XML escapes - missing the ampersand &#xAB.
    The idea is to escape visually for the user rather than for XML itself.
    c�V�t|j��}|dkrd|d��Sd|d��S)N�z#x�02X�04X)�ord�group)�matchobj�is  �2C:\Python312\Lib\site-packages\_pytest/junitxml.py�replzbin_xml_escape.<locals>.repl3s6������ �!����9���#�w�<����#�w�<��u [^	

 -~€-퟿-�က0-ჿff])rz
Match[str]�return�str)�re�subr!)�argr�illegal_xml_res   r�bin_xml_escaper&(s+�� �	W���6�6�.�$��C��1�1rc���i}|j�D]I\}}|j�D]1\}}t|t�stt	|���||z||<�3�K|j|�y�N)�items�
isinstance�list�	TypeError�type�update)�left�right�result�kl�vl�kr�vrs       r�merge_familyr6Csm��
�F��*�*�,�!���B��k�k�m�	!�F�B���b�$�'���R��)�)��b��F�2�J�	!�!�
	�K�K��r�testcase�	classname�name�_base)�file�line�url�_base_legacy�xunit1�xunit2c��eZdZdd�Zdd�Zdd�Zdd�Zdd�Zdd�Zdd�Z	ddd	�Z
dd
�Zdd�Zdd�Z
dd
�Zdd�Zdd�Zdd�Zdd�Zdd�Zdd�Zy) �
_NodeReporterc���||_||_|jj|_|jj|_d|_g|_g|_i|_y)N�)�id�xml�	add_stats�family�duration�
propertiesr�attrs)�self�nodeidrFs   r�__init__z_NodeReporter.__init__ZsL�����������+�+����h�h�o�o�����
�13���')��
�%'��
rc��|jj|j�|jj	|�yr()rFrG�tagr�append)rL�nodes  rrQz_NodeReporter.appendds*�������4�8�8�$��
�
���$�rc�b�|jjt|�t|�f�yr()rJrQr!r&�rLr9�values   r�add_propertyz_NodeReporter.add_propertyhs"��������D�	�>�%�+@�A�Brc�F�t|�|jt|�<yr()r&rKr!rTs   r�
add_attributez_NodeReporter.add_attributeks�� .�u� 5��
�
�3�t�9�rc��|jrRtjd�}|jD],\}}|jtjd||����.|Sy�z9Return a Junit node containing custom properties, if any.rJ�property�r9rUN)rJ�ET�ElementrQ�rLrJr9rUs    r�make_properties_nodez"_NodeReporter.make_properties_nodensT���?�?����L�1�J�#���
R���e��!�!�"�*�*�Z�d�%�"P�Q�
R���rc��t|j�}|j}|dd}|jjr&|jd|jj�dj
|�t|d�|jdd�}|jd�t|jd�|d<t|d�r|j|d<||_|jj|�|jdk(ryi}|jD]-}|t|jd	vs�|j|||<�/||_y)
N���r�.)r8r9r;�r<r=r?r7)�mangle_test_addressrMrKrF�prefix�insert�joinr&�locationr!�hasattrr=r.rH�families)rL�
testreport�names�existing_attrs�
classnamesrK�
temp_attrs�keys        r�record_testreportz_NodeReporter.record_testreportws-��#�J�$5�$5�6�������3�B�Z�
��8�8�?�?����a������1����*�-�"�5��9�-��'�'��*�!
��
���q�!�-��
� 3� 3�A� 6�7�E�&�M��:�u�%�%�>�>�E�%�L���
��
�
���.�)��;�;�(�"���
��:�:�	2�C��h�t�{�{�+�J�7�7�"&�*�*�S�/�
�3��	2� ��
rc���tjd|j|jd���}|j	�}|�|j|�|j
|j�|S)Nr7�.3f)�time)r]r^rKrIr`rQ�extendr)rLr7rJs   r�to_xmlz_NodeReporter.to_xml�sV���:�:�j�$�*�*�d�m�m�C�=P�R���.�.�0�
��!��O�O�J�'�����
�
�#��rNc�t�tj||��}t|�|_|j	|�y)N)�message�r]r^r&�textrQ)rLrPry�datarRs     r�_add_simplez_NodeReporter._add_simple�s*���z�z�#�w�/��"�4�(��	����D�rc�R�|jjs
|jry|j}|j}|j
}|jjdk(ryd}|jjdvr|j|d�}|jjdvr*||j|d�z
}|j||d�d}|jjdvr*||j|d	�z
}|j||d
�d}|r|j||d�yy)N�no�)�log�allz Captured Log )�
system-out�out-errr�z Captured Out r�)�
system-errr�r�z Captured Err r�)	rF�log_passing_tests�passed�	capstdout�caplog�	capstderr�logging�_prepare_content�_write_content)rL�report�content_out�content_log�content_err�content_alls      r�write_captured_outputz#_NodeReporter.write_captured_output�s���x�x�)�)�f�m�m���&�&���m�m���&�&���8�8���t�#�����8�8���~�-��/�/��=M�N�K��8�8���?�?��4�0�0��>N�O�O�K������\�B��K��8�8���?�?��4�0�0��>N�O�O�K������\�B��K�������\�B�rc�J�dj|jdd�|dg�S)N�
�P�-r�)rh�center)rL�content�headers   rr�z_NodeReporter._prepare_content�s#���y�y�&�-�-��C�0�'�2�>�?�?rc�p�tj|�}t|�|_|j	|�yr(rz)rLr�r��jheaderrPs     rr�z_NodeReporter._write_content�s(���j�j��!��!�'�*������C�rc�&�|jd�y)Nr�)rG�rLr�s  r�append_passz_NodeReporter.append_pass�s�����x� rc�6�t|d�r|jdd�y|j�J�t|jdd�}|�
|j}nt|j�}t
|�}|jd|t|j��y)N�wasxfail�skippedz%xfail-marked test passes unexpectedly�	reprcrash�failure)rjr}�longrepr�getattrryr!r&)rLr�r�rys    r�append_failurez_NodeReporter.append_failure�s����6�:�&����Y�(O�P��?�?�.�.�.�18�����d�2�I��$�#�+�+���f�o�o�.��$�W�-�G����Y���V�_�_�1E�Frc�l�|j�J�|jddt|j��y)N�errorzcollection failure)r�r}r!r�s  r�append_collect_errorz"_NodeReporter.append_collect_error�s.�����*�*�*�����"6��F�O�O�8L�Mrc�P�|jddt|j��y)Nr�zcollection skipped)r}r!r�r�s  r�append_collect_skippedz$_NodeReporter.append_collect_skipped�s������$8�#�f�o�o�:N�Orc�,�|j�J�t|jdd�}|�
|j}nt|j�}|jdk(rd|�d�}nd|�d�}|jdt
|�t|j��y)Nr��teardownzfailed on teardown with "�"zfailed on setup with "r�)r�r�ryr!�whenr}r&)rLr�r��reason�msgs     r�append_errorz_NodeReporter.append_error�s������*�*�*�-4�V�_�_�k�SW�-X�	�� ��&�&�F�����)�F��;�;�*�$�-�f�X�Q�7�C�*�6�(�!�4�C�����.��"5�s�6�?�?�7K�Lrc��t|d�rW|j}|jd�r|dd}t|�}t	j
dd|��}|j
|�yt|jt�sJ�|j\}}}|jd�r|dd}|�d	|�d
|��}t	j
ddt|���}t|�|_
|j
|�|j|�y)Nr�zreason: �r�zpytest.xfail)r-ryz	Skipped: �	�:z: zpytest.skip)rjr��
startswithr&r]r^rQr*r��tupler{r�)rLr��xfailreasonr��filename�lineno�
skipreason�detailss        r�append_skippedz_NodeReporter.append_skipped�s����6�:�&� �/�/�K��%�%�j�1�)�!�"�o��(��5�K��j�j����U�G��K�K�� ��f�o�o�u�5�5�5�+1�?�?�(�H�f�j��$�$�[�1�'���^�
�!�
�!�F�8�2�j�\�:�G��j�j��
�~�j�7Q��G�*�'�2�G�L��K�K�� ��&�&�v�.rc�n��|j��|jj��fd�|_y)Nc����Sr(�)r|s�r�<lambda>z(_NodeReporter.finalize.<locals>.<lambda>s���d�r)rw�__dict__�clear)rLr|s @r�finalizez_NodeReporter.finalizes'����{�{�}���
�
����#��r)rMzstr | TestReportrFrr �None)rR�
ET.Elementr r��r9r!rU�objectr r��r zET.Element | None)rlrr r�)r r�r()rPr!ryr!r|�
str | Noner r��r�rr r�)r�r!r�r!r r!)r�rr�r!r�r!r r��r r�)�__name__�
__module__�__qualname__rNrQrVrXr`rrrwr}r�r�r�r�r�r�r�r�r�r�r�rrrBrBYsc��(� �C�6�� �<��
C�.@��
!�G� N�
P�M�/�,#rrBc���ddlm}|jjj	t
d�}|�A|jdvr2|jj||�d|j�d���yyy)z[Emit a PytestWarning about the given fixture being incompatible with newer xunit revisions.r)�
PytestWarningN)r?�legacyz$ is incompatible with junit_family 'z' (use 'legacy' or 'xunit1'))	�_pytest.warning_typesr��config�stash�get�xml_keyrHrR�warn)�request�fixture_namer�rFs    r�!_warn_incompatibility_with_xunit2r�sl��4�
�.�.�
�
�
"�
"�7�D�
1�C�
��3�:�:�-A�A��������.� D�S�Z�Z�L�Pl�m�
�	
�B�rc�,��t�d�d�fd�}|S)anAdd extra properties to the calling test.

    User properties become part of the test report and are available to the
    configured reporters, like JUnit XML.

    The fixture is callable with ``name, value``. The value is automatically
    XML-encoded.

    Example::

        def test_function(record_property):
            record_property("example_key", 1)
    �record_propertyc�T���jjj||f�yr()rR�user_propertiesrQ)r9rUr�s  �r�append_propertyz(record_property.<locals>.append_property(s������$�$�+�+�T�5�M�:rr�)r�)r�r�s` rr�r�s���&�g�/@�A�;��rc�2�ddlm}|jj|d��t	|d�dd�}|}|j
jjtd�}|�1|j|jj�}|j}|S)z�Add extra xml attributes to the tag for the calling test.

    The fixture is callable with ``name, value``. The value is
    automatically XML-encoded.
    r)�PytestExperimentalApiWarningz/record_xml_attribute is an experimental feature�record_xml_attributec��yr(r�r\s  r�
add_attr_noopz+record_xml_attribute.<locals>.add_attr_noop>s��rNr�)r�r�rRr�r�r�r�r�r��
node_reporterrMrX)r�r�r��	attr_funcrFr�s      rr�r�.s���C��L�L���$�%V�W��&�g�/E�F�
��I�
�.�.�
�
�
"�
"�7�D�
1�C�
���)�)�'�,�,�*=�*=�>�
�!�/�/�	��rc��d}t|t�s1d}t|j|t	|�j
����y)zcUsed by record_testsuite_property to check that the given parameter name is of the proper
    type.Tz5{param} parameter needs to be a string, but {g} given)�param�gN)r*r!r,�formatr-r�)r��v�__tracebackhide__r�s    r�_check_record_param_typer�Ks@�����a���E����
�
��$�q�'�2B�2B�
�C�D�D�r�session)�scopec��d}dd�}|jjjtd�}|�|j}|S)a+Record a new ``<property>`` tag as child of the root ``<testsuite>``.

    This is suitable to writing global information regarding the entire test
    suite, and is compatible with ``xunit2`` JUnit family.

    This is a ``session``-scoped fixture which is called with ``(name, value)``. Example:

    .. code-block:: python

        def test_foo(record_testsuite_property):
            record_testsuite_property("ARCH", "PPC")
            record_testsuite_property("STORAGE_TYPE", "CEPH")

    :param name:
        The property name.
    :param value:
        The property value. Will be converted to a string.

    .. warning::

        Currently this fixture **does not work** with the
        `pytest-xdist <https://github.com/pytest-dev/pytest-xdist>`__ plugin. See
        :issue:`7767` for details.
    Tc� �d}td|�y)zFNo-op function in case --junit-xml was not passed in the command-line.Tr9N)r�)r9rUr�s   r�record_funcz.record_testsuite_property.<locals>.record_funcps�� �� ���.rNr�)r�r�r�r��add_global_property)r�r�r�rFs    r�record_testsuite_propertyr�TsC��4��/�
�.�.�
�
�
"�
"�7�D�
1�C�
���-�-���rc��|jd�}|jdddddtjtd��dd�	�|jd
ddddd
��|jddd��|jddd��|jdddd��|jddd��|jddd ��y)!Nzterminal reportingz
--junitxmlz--junit-xml�store�xmlpath�path)�optnamez0Create junit-xml style report file at given path)�action�dest�metavarr-�default�helpz
--junitprefixz--junit-prefixr!z0Prepend prefix to classnames in junit-xml output)r�r�rr�junit_suite_namez Test suite name for JUnit report�pytest)r�
junit_loggingz\Write captured log messages to JUnit report: one of no|log|system-out|system-err|out-err|allr�junit_log_passing_testsz;Capture log information for passing tests to JUnit report: �boolT)r-r�junit_duration_reportz*Duration time to report: one of total|call�total�junit_familyz0Emit XML for schema: one of legacy|xunit1|xunit2r@)�getgroup�	addoption�	functools�partialr
�addini)�parserrs  r�pytest_addoptionr{s����O�O�0�1�E�	�O�O����
��
�
�
�|�\�
B��
?��	�
�O�O������
?�
���M�M��>�����M�M��	:��	���M�M�!�E�
��	���M�M��4����
�M�M��:���rc��|jj}|r�t|d�s�|jd�}t	||jj
|jd�|jd�|jd�||jd��|jt<|jj|jt�yyy)N�workerinputr	rrrr)
�optionr�rj�getinir�junitprefixr�r��
pluginmanager�register)r�r�r	s   r�pytest_configurer�s����m�m�#�#�G��w�v�}�5��}�}�^�4�� &���M�M�%�%��M�M�,�-��M�M�/�*��M�M�1�2���M�M�3�4�!
����W��	���%�%�f�l�l�7�&;�<�6�wrc��|jjtd�}|r-|jt=|jj	|�yyr()r�r�r�r�
unregister)r�rFs  r�pytest_unconfigurer�s@��
�,�,�
�
�7�D�
)�C�
��L�L��!����'�'��,�rc��|jd�\}}}|jd�}|djtjd�|d<tjdd|d�|d<|dxx||zz
cc<|S)N�[z::rrcz\.py$r�rb)�	partition�split�replacer�SEPr"r#)�addressr��possible_open_bracket�paramsrms     rrere�sy��*1�*;�*;�C�*@�'�D�
���J�J�t��E��Q�x����	�	�3�/�E�!�H��v�v�h��E�!�H�-�E�!�H�	�"�I�&��/�/�I��Lrc��eZdZ					d											dd�Zdd�Zdd�Zdd�Zdd�Zdd�Zdd�Z	dd�Z
dd	�Zdd
�Zdd�Z
dd�Zdd
�Zdd�Zy)rc��tjjtjj|��}tjj	tjj|��|_||_||_||_	||_
||_||_tjgd�d�|_i|_g|_g|_g|_d|_|jdk(rd|_yy)N)r�r�r�r�rr�r?)�osr��
expanduser�
expandvars�normpath�abspath�logfilerf�
suite_namer�r��report_durationrH�dict�fromkeys�stats�node_reporters�node_reporters_ordered�global_properties�open_reports�cnt_double_fail_tests)rLr,rfr-r�r.rHr�s        rrNzLogXML.__init__�s����'�'�$�$�R�W�W�%7�%7��%@�A���w�w�'�'�������(@�A������$������!2���.������%)�]�]�5�q�&
��
�UW���;=��#�8:���/1���%&��"��;�;�(�"�"�D�K�#rc��t|d|�}t|dd�}|jj||f�}|jD] \}}|j	|t|���"|�|j
�yy�NrMrR)r�r2�popr�rVr!r�)rLr�rM�
workernode�reporter�propname�	propvalues       rr�zLogXML.finalize�s������6�2���V�V�T�2�
��&�&�*�*�F�J�+?�@��#)�#9�#9�	<��H�i��!�!�(�C�	�N�;�	<������� rc���t|d|�}t|dd�}||f}||jvr|j|St||�}||j|<|jj	|�|Sr8)r�r2rBr3rQ)rLr�rMr:rqr;s      rr�zLogXML.node_reporter�s|��#*�6�8�V�#D���V�V�T�2�
��j� ���$�%�%�%��&�&�s�+�+� ���.��#+����C� ��#�#�*�*�8�4��rc�P�||jvr|j|xxdz
cc<yy)Nrd)r1)rLrqs  rrGzLogXML.add_stats
s%���$�*�*���J�J�s�O�q� �O�rc�J�|j|�}|j|�|Sr()r�rr�rLr�r;s   r�
_opentestcasezLogXML._opentestcases%���%�%�f�-���"�"�6�*��rc�8����d}�jr4�jdk(�rL|j��}|j���n(�jr�jdk(rct�dd��t�dd��t
���fd�|jD�d�}|r&|j|�|xjdz
c_	|j��}�jdk(rJ|j��|jj��|jsR|j��n@|j��n.�jr"|j��}|j!��|j#���jdk(r�|j��}|j��|j��t�dd��t�dd��t
���fd�|jD�d�}|r|jj%|�yyy)	aHandle a setup/call/teardown report, generating the appropriate
        XML tags as necessary.

        Note: due to plugins like xdist, this hook may be called in interlaced
        order with reports from other nodes. For example:

        Usual call order:
            -> setup node1
            -> call node1
            -> teardown node1
            -> setup node2
            -> call node2
            -> teardown node2

        Possible call order in xdist:
            -> setup node1
            -> call node1
            -> setup node2
            -> call node2
            -> teardown node2
            -> teardown node1
        N�callr��	worker_id�
item_indexc3��K�|]?}|j�jk(r$t|dd��k(rt|dd��k(r|���Ay�w�rFNrE�rMr���.0�repr��	report_ii�
report_wids  ���r�	<genexpr>z2LogXML.pytest_runtest_logreport.<locals>.<genexpr>8sK��������J�J�&�-�-�7� '��\�4� @�I� M� '��[�$� ?�:� M�����AArdc3��K�|]?}|j�jk(r$t|dd��k(rt|dd��k(r|���Ay�wrHrIrJs  ���rrOz2LogXML.pytest_runtest_logreport.<locals>.<genexpr>]sK��������
�
�f�m�m�3�#�C��t�<�	�I�#�C��d�;�z�I���rP)r�r�rBr��failedr��nextr5r�r6r�rQr�r�r�r�r��update_testcase_duration�remove)rLr��close_reportr;rMrNs `  @@r�pytest_runtest_logreportzLogXML.pytest_runtest_logreports����.���=�=��{�{�f�$��-�-�f�5���$�$�V�,�
�]�]��{�{�j�(�$�V�[�$�?�
�#�F�L�$�?�	�#��#'�#4�#4��� �� ��M�M�,�/��.�.�!�3�.��)�)�&�1�H��{�{�f�$��'�'��/��!�!�(�(��0��-�-��2�2�6�:��%�%�f�-�
�^�^��)�)�&�1�H��#�#�F�+��%�%�f�-��;�;�*�$��)�)�&�1�H��*�*�6�2��M�M�&�!� ���d�;�J����d�;�I���#�0�0����L���!�!�(�(��6��'%rc��|jd|jhvr2|j|�}|xjt	|dd�z
c_yy)z�Accumulate total duration for nodeid from given report and update
        the Junit.testcase with the new total if already created.rrIrDN)r.r�r�rIr�rAs   rrTzLogXML.update_testcase_durationksJ�����G�V�[�[�#9�9��)�)�&�1�H�������S�!A�A��:rc��|jsA|j|�}|jr|j|�y|j	|�yyr()r�rBrRr�r�rAs   r�pytest_collectreportzLogXML.pytest_collectreportrsA���}�}��)�)�&�1�H��}�}��-�-�f�5��/�/��7�rc��|jd�}|jjdd��|jddt	|��y)N�internalr)r8r9r�zinternal error)r�rKr.r}r!)rL�excreprr;s   r�pytest_internalerrorzLogXML.pytest_internalerrorzs@���%�%�j�1��������z��B����W�&6��G��Erc�6�tj�|_yr()r	ru�suite_start_time)rLs r�pytest_sessionstartzLogXML.pytest_sessionstarts�� &���
��rc���tjjtjj|j��}tj
|d��t
|jdd��5}tj�}||jz
}|jd|jdz|jdz|jd	z|jz
}|jd
�tjd|jt!|jd	�t!|jd�t!|jd�t!|�|d�t#j$|jt&j(�j+�j-�t/j0��
�	}|j3�}|�|j5|�|j6D]!}|j5|j9���#tjd�}	|	j5|�|jtj:|	d���ddd�y#1swYyxYw)NT)�exist_ok�wzutf-8)�encodingr�r�r�r�z&<?xml version="1.0" encoding="utf-8"?>�	testsuitert)r9�errors�failuresr��testsru�	timestamp�hostname�
testsuites�unicode)r'r��dirnamer+r,�makedirs�openr	rur`r1r6�writer]r^r-r!r�
fromtimestampr�utc�
astimezone�	isoformat�platformrR�_get_global_properties_noderQr3rw�tostring)
rLrnr,�suite_stop_time�suite_time_delta�numtests�
suite_noder4r�rls
          r�pytest_sessionfinishzLogXML.pytest_sessionfinish�s����'�'�/�/�"�'�'�/�/�$�,�,�"?�@��
���G�d�+�
�$�,�,��g�
6�!	G�'�$�k�k�m�O�.��1F�1F�F���
�
�8�$��*�*�Y�'�(��*�*�Y�'�(��*�*�W�%�&��,�,�	-�
�
�M�M�B�C������_�_��4�:�:�g�.�/��T�Z�Z�	�2�3��D�J�J�y�1�2��(�m�(��-�"�0�0��1F�1F����U�������!�����J�!%� @� @� B�� �,��!�!�"3�4�!%�!<�!<�
:�
��!�!�-�"6�"6�"8�9�
:����L�1�J����j�)��M�M�"�+�+�j�9�E�F�C!	G�!	G�!	G�s
�6G/I.�.I7c�B�|jdd|j���y)Nr�zgenerated xml file: )�	write_sepr,)rL�terminalreporters  r�pytest_terminal_summaryzLogXML.pytest_terminal_summary�s���"�"�3�*>�t�|�|�n�(M�Nrc�l�d}td|�|jj|t|�f�y)NTr9)r�r4rQr&)rLr9rUr�s    rr�zLogXML.add_global_property�s0�� �� ���.����%�%�t�^�E�-B�&C�Drc��|jrRtjd�}|jD],\}}|jtjd||����.|SyrZ)r4r]r^rQr_s    rrwz"LogXML._get_global_properties_node�sX���!�!����L�1�J�#�5�5�
R���e��!�!�"�*�*�Z�d�%�"P�Q�
R���rN)rrrr?T)rfr�r-r!r�r!r.r!r�rr r�r�)r�zTestReport | strr rB)rqr!r r�)r�rr rB)r]r
r r�r�)r�rr r�r�r�)r�r�r�rNr�r�rGrBrWrTrZr^rar}r�r�rwr�rrrr�s���
#��&��"&�#��#��	#�
�#��
#� �#�
�#�B
 ��$!��
S7�jB�8�F�
.�&G�PO�E�
r)r$r�r r!r�)r�rr�r!r r�)r�rr zCallable[[str, object], None])r�r!r�r!r r�)rrr r�)r�rr r�)r"r!r z	list[str])5�__doc__�
__future__rrrrr'rvr"�typingrr�xml.etree.ElementTree�etree�ElementTreer]�_pytestrr	�_pytest._code.coder
r�_pytest.configrr
�_pytest.config.argparsingr�_pytest.fixturesr�_pytest.reportsr�
_pytest.stashr�_pytest.terminalrrr�r&r6rk�copyrBr��fixturer�r�r�r�rrrrerr�rr�<module>r�sw���#����	��	���"�"���,�/�!�'�,�+�&�"�-�
��(�8�
�
��2�6����+�v�!6�7����&�(?�@�����g�&�+�+�-�����X�h�
��.�!9�:��g�&����l#�l#�^
�
�
�+.�
�	�
�������,������8E�����i� �#�!�#�L,�^=�"-��l�lr

Youez - 2016 - github.com/yon3zu
LinuXploit