....................................../////.===Shadow-Here===./////................................................ > < > < > < > < > < > < > < > < > < > < > < > < > < > < > < > < > < > < > < > < > < > < > < > < > < > < > < > < > < ------------------------------------------------------------------------------------------------------------------- /////////////////////////////////////////////////////////////////////////////////////////////////////////////////// RIFF¤ WEBPVP8 ˜ ðÑ *ôô>‘HŸK¥¤"§£±¨àð enü¹%½_F‘åè¿2ºQú³íªú`N¿­3ÿƒügµJžaÿ¯ÿ°~¼ÎùnúîÞÖô•òíôÁÉß®Sm¥Ü/ ‡ó˜f£Ùà<˜„xëJ¢Ù€SO3x<ªÔ©4¿+ç¶A`q@Ì“Úñè™ÍÿJÌ´ª-˜ÆtÊÛL]Ïq*‘Ý”ì#ŸÌÏãY]@ê`¿ /ªfkØB4·®£ó z—Üw¥Pxù–ÞLШKÇN¾AkÙTf½è'‰g gÆv›Øuh~ a˜Z— ïj*á¥t d£“uÒ ¨`K˜¹ßþ]b>˜]_ÏÔ6W—è2r4x•íÖ…"ƒÖNîä!¦å Ú}ýxGøÌ —@ ;ÆÚŠ=ɾ1ý8lªË¥ô ^yf®Œ¢u&2©nÙÇ›ñÂñŒ³ aPo['½»øFùà­+4ê“$!lövlüÞ=;N®3ð‚õ›DÉKòÞ>ÄÍ ¥ˆuߤ#ˆ$6ù™¥îЇy’ÍB¼ çxÛ;X"WL£R÷͝*ó-¶Zu}º.s¸sšXqù–DþÿvªhüïwyŸ ¯é³lÀ:KCûÄ£Ëá\…­ ~—ýóî ¼ûûÜTÓüÇy…ŽÆvc»¾×U ñ¸žþоP÷¦ó:Ò¨¨5;Ð#&#ÖúñläÿÁœ GxÉ­/ñ‡áQðìYÉtÒw޼GÔ´zàÒò ð*ëzƒ•4~H]Ø‹f ñÓÈñ`NåWçs'ÆÏW^ø¹!XžµmQ5ÃËoLœÎ: ÞËÍ¥J ù…î èo£ßPÎñ¶ž8.Œ]ʵ~5›ÙË-ù*8ÙÖß±~ ©¹rÓê‚j¶d¸{^Q'˜±Crß ÚH—#¥¥QlÀ×ëã‡DÜ«èî þ&Çæžî;ŽÏºò6ÒLÃXy&ZŒ'j‚¢Ù€IßÚù+–MGi‰*jE€‘JcÜ ÓÌ EÏÚj]o˜ Þr <¾U ûŪæÍ/šÝH¥˜b”¼ ÁñßX GP›ï2›4WŠÏà×£…íÓk†¦H·ÅíMh–*nó÷à]ÁjCº€b7<ب‹¨5車bp2:Á[UªM„QŒçiNMa#<5›áËó¸HýÊ"…×Éw¹¦ì2º–x<›»a±¸3Weü®FÝ⑱ö–î–³|LPÈ~çð~Çå‡|º kD¢µÏàÆAI %1À% ¹Ò – ”ϝS¦‰4&¶£°à Öý”û_Ò Áw°A«Å€?mÇÛgHÉ/8)á¾ÛìáöŽP í¨PŸNÙµº¦‡§Ùš"ÿ«>+ªÕ`Ê÷‡‚ß Õû˜þãÇ-PÍ.¾XV‘€ dÜ"þ4¹ ±Oú‘©t¥¦FªÄÃÄ•b‚znýu½—#cDs˜ÃiÑOˆñ×QO=*IAÊ,¶ŽZƒ;‡wøXè%EÐk:F±Ú” .Ѽ+Áu&Ç`."pÈÉw o&¿dE6‘’EqTuK@Ì¥ã™À(Êk(h‰,H}RÀIXÛš3µ1©_OqÚÒJAñ$ÊÙÜ;D3çŒ[þùœh¬Ã³™ö6ç†NY".Ú‰ï[ªŸŒ '²Ð öø_¨ÂÉ9ué¶³ÒŠõTàîMØ#û¯gN‡bÙ놚X„ö …ÉeüÌ^J ‹€.œ$Æ)βÄeæW#óüßĺŸ€ ÀzwV 9oä»f4V*uB «Ë†¹ì¯žR霓æHXa=&“I4K;¯ç‹h×·"UŠ~<•╪Vêª&ÍSÃÆÅ?ÔqÎ*mTM ˜›µwêd#[C¡©§‘D<©àb†–ÁœøvH/,í:¯( ²£|4-„Æövv„Yͼ™^Á$ˆ„¢Û[6yB.åH*V¨æ?$=˜Ñ€•ñ·­(VlŸ‘ nÀt8W÷´Bûba?q9ú¶Xƒl«ÿ\ù¶’þòUÐj/õ¢Ìµ³g$ƒÎR!¸»|Oߍë’BhîÚÑ¢ñåŒJ„®„£2Ð3•ô02Nt…!£Í]Ïc½Qÿ?ˆ<&ÃA¾Ú,JˆijÌ#5yz„‰Î|ÊŽ5QÏ:‹ÐaóVÔxW—CpeÏzÐïíçôÿÅ_[hãsÐ_/ŽTÝ?BîˆííV$<¿i>²F¬_Eß¿ †bÊŒº­ÿ®Z H“C}”¬,Mp ý/Bá£w>˜YV°aƒúh+cŠ- r/[%|üUMHäQ°X»|û/@|°¥Ð !BÔ Ç¢Ä©š+Õì D«7ìN¶ŽðÔ " ƶ’ÖçtA‰Û×}{tþz­¾GÍ›k¹OEJR$ Â׃ «ëÁ"oÉôž$oUK(Ä)Ãz³Ê-‹êN[Ò3Œñbï8P 4ƒ×q¢bo|?<ÛX¬òÄͰL–±›(™ûG?ýË©ÚÄ–ÂDØÐ_Ç¡ô ¾–ÄÏø ×e8Ë©$ÄF¹Å‹ì[©óìl:F¾f´‹‹Xì²ï®\¬ôùƒ ÿat¥óèÒùHß0äe‚;ü×h:ÆWðHž=Ã8骣"kœ'Y?³}Tûè€>?0l›e1Lòñ„aæKÆw…hÖŠùW…ÈÆÄ0ši·›[pcwËþñiêíY/~-Á5˜!¿†A›™Mÿþ(±“t@â“ö2­´TG5yé]çå僳 .·ÍïçÝ7UÚ±Ð/Nè»,_Ï ùdj7\ï Wì4›„»c¸àešg#ÒÊ⥭áØo5‘?ÌdÝô¯ ¹kzsƒ=´#ëÉK›Ø´±-¥eW?‡çßtòTã…$Ý+qÿ±ƒ÷_3Ô¥í÷:æ–ž<·Ö‡‰Å¢ š‡%Ô—utÌÈìðžgÖÀz²À—ï÷Óîäõ{K'´È÷³yaÏÁjƒô}ž§®æÊydÕÈë5¯èˆõvÕ©ã*çD„ “z„Ó‡^^xÂ3M§A´JG‚öï 3W'ˆ.OvXè¡ÊÕª?5º7†˜(˜Ç¶#çê’¶!ÌdZK§æ 0fãaN]òY³RV ™î$®K2R¨`W!1Ôó\;Ý ýB%qæK•&ÓÈe9È0êI±žeŸß -ú@žQr¦ ö4»M¼Áè¹µmw 9 EÆE_°2ó„ŸXKWÁ×Hóì^´²GѝF©óäR†¦‰ç"V»eØ<3ùd3ÿÚ¤Žú“Gi" —‘_ÙËÎ~Üö¯¥½Î»üŸEÚŽåmÞþí ;ÞólËΦMzA"Âf(´òá;Éï(/7½ûñÌ­cïÕçлþÝz¾-ÍvÑ“pH­–ðÓj$¸Äû¤‚‘ãUBË-n“2åPkS5&‹Â|+g^œ®Ì͆d!OïäîU«c;{Û!ÅŽ«ëZ9Ókóˆ]¯ƒ›né `ÇÒ+tÆš (ØKá¾—=3œ®•vuMñg²\ï Ec€ 05±d™‡×iÇ×›UúvÌ¢£Èþ¡ÕØô¶ßÎA"ß±#Ö²ˆÊŸ¦*Ä~ij|àø.-¼'»Ú¥£h ofº¦‡VsR=N½„Î v˜Z*SÌ{=jÑB‹tê…;’HžH¯8–îDù8ñ¢|Q•bÛçš–‹m³“ê¨ åÏ^m¬Žãþ©ïêO‡½6] µÆ„Ooòü ²x}N¦Ë3ïé¿»€›HA˜m%çÞ/¿í7Fø“‹léUk)É°Œµ8Q8›:ÀŠeT*šõ~ôڝG6 ¢}`ùH­–”¡k ‰P1>š†®9z11!X wKfmÁ¦xÑ,N1Q”–æB¶M…ÒÃv6SMˆhU¬ÊPŽï‘öj=·CŒ¯u¹ƒVIЃsx4’ömÛýcå¡¶7ßŠß 57^\wÒÐÆ k§h,Œý î«q^R½3]J¸ÇðN ‚çU¬ôº^Áì} ³f©Õœ§ˆã:FÄÈ‚é(€™?àýÓüè1Gô£¼éj‚OÅñ  #>×—ßtà 0G¥Åa뀐kßhc™À_ÉñÞ#±)GD" YîäË-ÿÙ̪ ¹™a¯´¢E\ÝÒö‚;™„ë]_ p8‰o¡ñ+^÷ 3‘'dT4œŽ ðVë½° :¬víÑ«£tßÚS-3¶“þ2 †üüʨòrš¹M{É_¤`Û¨0ìjœøJ‡:÷ÃáZ˜†@GP&œÑDGÏs¡þ¦þDGú‘1Yá9Ôþ¼ ûø…§÷8&–ÜÑnÄ_m®^üÆ`;ÉVÁJ£?â€-ßê}suÍ2sõA NÌúA磸‘îÿÚ»ƒìö·á¿±tÑÐ"Tÿü˜[@/äj¬€uüªìù¥Ý˜á8Ý´sõj 8@rˆð äþZÇD®ÿUÏ2ùôõrBzÆÏÞž>Ì™xœ“ wiÎ×7_… ¸ \#€MɁV¶¥üÕÿPÔ9Z‡ø§É8#H:ƒ5ÀÝå9ÍIŒ5åKÙŠ÷qÄ>1AÈøžj"µÂд/ªnÀ qªã}"iŸBå˜ÓÛŽ¦…&ݧ;G@—³b¯“•"´4í¨ôM¨åñC‹ïùÉó¯ÓsSH2Ý@ßáM‡ˆKÀªÛUeø/4\gnm¥‹ŸŒ qÄ b9ÞwÒNÏ_4Ég³ú=܆‚´ •â¥õeíþkjz>éÚyU«Íӝ݃6"8/ø{=Ô¢»G¥ äUw°W«,ô—¿ãㆅү¢³xŠUû™yŒ (øSópÐ 9\åTâ»—*oG$/×ÍT†Y¿1¤Þ¢_‡ ¼ „±ÍçèSaÓ 3ÛMÁBkxs‰’R/¡¤ˆÙçª(*õ„üXÌ´ƒ E§´¬EF"Ù”R/ÐNyÆÂ^°?™6¡œïJ·±$§?º>ÖüœcNÌù¯G ‹ñ2ЁBB„^·úìaz¨k:#¨Æ¨8LÎõލ£^§S&cŒÐU€ü(‡F±Š¼&P>8ÙÁ ‰ p5?0ÊÆƒZl¸aô š¼¡}gÿ¶zÆC²¹¬ÎÖG*HB¡O<º2#ñŒAƒ–¡B˜´É$¥›É:FÀÔx¾u?XÜÏÓvN©RS{2ʈãk9rmP¼Qq̳ è¼ÐFׄ^¡Öì fE“F4A…!ì/…¦Lƒ… … $%´¾yã@CI¬ á—3PþBÏNÿ<ý°4Ü ËÃ#ØÍ~âW«rEñw‹eùMMHß²`¬Öó½íf³:‹k˜¯÷}Z!ã¿<¥,\#öµÀ¯aÒNÆIé,Ћ–lŽ#Àæ9ÀÒS·I’½-Ïp Äz¤Š Â* ­íÄ9­< h>׍3ZkËU¹§˜ŒŠ±f­’¤º³Q ÏB?‹#µíÃ¥®@(Gs«†vI¥Mµ‹Á©e~2ú³ÁP4ìÕi‚²Ê^ö@-DþÓàlÜOÍ]n"µã:žpsŽ¢:! Aõ.ç~ÓBûH÷JCÌ]õVƒd «ú´QÙEA–¯¯Œ!.ˆˆëQ±ù œ·Ì!Õâ )ùL„ÅÀlÚè5@B…o´Æ¸XÓ&Û…O«˜”_#‡ƒ„ûÈt!¤ÁÏ›ÎÝŠ?c9 â\>lÓÁVÄÑ™£eØY]:fÝ–—ù+p{™ðè û³”g±OƒÚSù£áÁÊ„ä,ï7š²G ÕÌBk)~ÑiCµ|h#u¤¶îK¨² #²vݯGãeÖ϶ú…¾múÀ¶þÔñ‚Š9'^($¤§ò “š½{éúp÷J›ušS¹áªCÂubÃH9™D™/ZöØÁ‡¦ÝÙŸ·kð*_”.C‹{áXó€‡c¡c€§/šò/&éš÷,àéJþ‰X›fµ“C¨œ®r¬"kL‰Â_q…Z–.ÉL~O µ›zn‚¹À¦Öª7\àHµšÖ %»ÇníV[¥*Õ;ƒ#½¾HK-ÖIÊdÏEÚ#=o÷Óò³´Š: Ç?{¾+9›–‘OEáU·S€˜j"ÄaÜ ŒÛWt› á–c#a»pÔZÞdŽtWê=9éöÊ¢µ~ ë ;Öe‡Œ®:bî3±ýê¢wà¼îpêñ¹¾4 zc¾ðÖÿzdêŒÑÒŝÀ‰s6¤í³ÎÙB¿OZ”+F¤á‡3@Ñëäg©·Ž ˆèª<ù@É{&S„œÕúÀA)‰h:YÀ5^ÂÓŒ°õäU\ ùËÍû#²?Xe¬tu‰^zÒÔãë¼ÛWtEtû …‚g¶Úüâî*moGè¨7%u!]PhÏd™Ý%Îx: VÒ¦ôÊD3ÀŽKÛËãvÆî…N¯ä>Eró–ð`5 Œ%u5XkñÌ*NU%¶áœÊ:Qÿú»“úzyÏ6å-၇¾ ´ ÒÊ]y žO‘w2Äøæ…H’²f±ÎÇ.ª|¥'gîV•Ü .̘¯€šòü¤U~Ù†*¢!?ò wý,}´°ÔÞnïoKq5µb!áÓ3"vAßH¡³¡·G(ÐÎ0Îò¼MG!/ài®@—¬04*`…«é8ªøøló“ˆÊ”èù¤…ßÊoÿé'ËuÌÖ5×È¡§ˆˆfŽë9}hìâ_!!¯  B&Ëö¶‰ÀAÙNVŸ Wh›¸®XÑJì¨ú“¿÷3uj²˜¨ÍÎìë±aúŠÝå¯ð*Ó¨ôJ“yºØ)m°WýOè68†ŸÏ2—‰Ïüꪫٚ¥‹l1 ø ÏÄFjêµvÌbü¦èÝx:X±¢H=MÐß—,ˆÉÇ´(9ú¾^ÅÚ4¿m‡$âX‘å%(AlZo@½¨UOÌÕ”1ø¸jÎÀÃÃ_ µ‘Ü.œº¦Ut: Æï’!=¯uwû#,“pþÇúŒø(é@?³ü¥‘Mo §—s@Œ#)§ŒùkL}NOÆêA›¸~r½¼ÙA—HJ«eˆÖ´*¡ÓpÌŸö.m<-"³ûÈ$¬_6­åf£ïÚâj1y§ÕJ½@dÞÁr&Í\Z%D£Íñ·AZ Û³øüd/ªAi†/Й~  ‡âĮҮÏh§°b—›Û«mJžòG'[ÈYýŒ¦9psl ýÁ ®±f¦x,‰½tN ‚Xª9 ÙÖH.«Lo0×?͹m¡å†Ѽ+›2ƒF ±Ê8 7Hցϓ²Æ–m9…òŸï]Â1äN†VLâCˆU .ÿ‰Ts +ÅÎx(%¦u]6AF Š ØF鈄‘ |¢¶c±soŒ/t[a¾–û:s·`i햍ê›ËchÈ…8ßÀUÜewŒðNOƒõD%q#éû\9¤x¹&UE×G¥ Í—™$ð E6-‡¼!ýpãÔM˜ Âsìe¯ñµK¢Ç¡ùôléœ4Ö£”À Š®Ðc ^¨À}ÙËŸ§›ºê{ÊuÉC ×Sr€¤’fÉ*j!úÓ’Gsùìoîßîn%ò· àc Wp÷$¨˜)û»H ×8ŽÒ€Zj¤3ÀÙºY'Ql¦py{-6íÔCeiØp‘‡XÊîÆUߢ܂ž£Xé¼Y8þ©ëgñß}é.ÎógÒ„ÃØËø¯»™§Xýy M%@NŠ À(~áÐvu7&•,Ù˜ó€uP‡^^®=_E„jt’ 403WebShell
403Webshell
Server IP : 198.54.126.4  /  Your IP : 216.73.216.178
Web Server : Apache
System : Linux host55.registrar-servers.com 4.18.0-513.18.1.lve.2.el8.x86_64 #1 SMP Sat Mar 30 15:36:11 UTC 2024 x86_64
User : aeaw ( 7508)
PHP Version : 8.1.33
Disable Function : NONE
MySQL : OFF  |  cURL : ON  |  WGET : ON  |  Perl : ON  |  Python : ON  |  Sudo : OFF  |  Pkexec : OFF
Directory :  /opt/hc_python/lib64/python3.12/site-packages/nose/plugins/__pycache__/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Command :


[ Back ]     

Current File : /opt/hc_python/lib64/python3.12/site-packages/nose/plugins/__pycache__/xunit.cpython-312.pyc
�

���g}-���dZddlZddlZddlZddlZddlZddlZddlZddlm	Z	ddl
m
Z
ddlmZddl
mZddlmZddlmZmZej(d	�Zej(d
�Zd�Zd�Zd
�Zd�Zd�ZGd�de�ZGd�de�Zy)aUThis plugin provides test results in the standard XUnit XML format.

It's designed for the `Jenkins`_ (previously Hudson) continuous build
system, but will probably work for anything else that understands an
XUnit-formatted XML representation of test results.

Add this shell command to your builder ::

    nosetests --with-xunit

And by default a file named nosetests.xml will be written to the
working directory.

In a Jenkins builder, tick the box named "Publish JUnit test result report"
under the Post-build Actions and enter this value for Test report XMLs::

    **/nosetests.xml

If you need to change the name or location of the file, you can set the
``--xunit-file`` option.

If you need to change the name of the test suite, you can set the
``--xunit-testsuite-name`` option.

Here is an abbreviated version of what an XML test report might look like::

    <?xml version="1.0" encoding="UTF-8"?>
    <testsuite name="nosetests" tests="1" errors="1" failures="0" skip="0">
        <testcase classname="path_to_test_suite.TestSomething"
                  name="test_it" time="0">
            <error type="exceptions.TypeError" message="oops, wrong type">
            Traceback (most recent call last):
            ...
            TypeError: oops, wrong type
            </error>
        </testcase>
    </testsuite>

.. _Jenkins: http://jenkins-ci.org/

�N)�StringIO)�time)�saxutils)�Plugin)�SkipTest)�
force_unicode�format_exceptionz[\000-\010\013\014\016-\037]z^(.*?)(\(.*\))$c�.�tjd|�S)z)Replaces invalid XML characters with '?'.�?)�CONTROL_CHARACTERS�sub)�values �A/opt/hc_python/lib/python3.12/site-packages/nose/plugins/xunit.py�xml_safer>s���!�!�#�u�-�-�c�8�t|�jdd�S)z)Escape a string for an XML CDATA section.z]]>z]]>]]&gt;<![CDATA[)r�replace)�cdatas r�escape_cdatarBs���E�?�"�"�5�*>�?�?rc��tj|�}|r/|j�\}}|jdd�\}}|||zgS|jdd�S)N�.�)�TEST_ID�match�groups�rsplit)�idval�m�name�fargs�head�tails      r�id_splitr#FsV���
�
�e��A���h�h�j���e��[�[��a�(�
��d��d�5�j�!�!��|�|�C��#�#rc��tj|�r
|j}n|jj}tj|�}|r2|j}|jd�r|t
d�d}|�d|��S|S)z�Returns a nice name for class object or class instance.

        >>> nice_classname(Exception()) # doctest: +ELLIPSIS
        '...Exception'
        >>> nice_classname(Exception) # doctest: +ELLIPSIS
        '...Exception'

    zorg.python.core.Nr)�inspect�isclass�__name__�	__class__�	getmodule�
startswith�len)�obj�cls_name�modrs    r�nice_classnamer/Ost�����s���<�<���=�=�)�)��
�
�
�C�
 �C�
��|�|���?�?�-�.���.�/�0�1�D���)�)��rc���|d}|�|d}n	t|�}t	|d�}t|�S#t$r.	t|�}n#t$r|jd}YnwxYwY�MwxYw)zReturn the exception's message.rr�UTF-8)�str�UnicodeEncodeError�UnicodeError�argsrr)�exc_info�exc�results   r�exc_messager9fs}��
�1�+�C�
�{��!���	%���X�F��6�7�
+�F��F����"�	%�
%��S�����
%����!���
%��	%�s2�1�	A(�A�A(�A"�A(�!A"�"A(�'A(c�*�eZdZd�Zd�Zd�Zd�Zd�Zy)�Teec� �||_||_y�N)�	_encoding�_streams)�self�encodingr5s   r�__init__zTee.__init__zs��!�����
rc�t�t||j�}|jD]}|j|��yr=)rr>r?�write)r@�data�ss   rrDz	Tee.write~s+���T�4�>�>�2�����A�
�G�G�D�M�rc�4�|D]}|j|��yr=)rD)r@�lines�lines   r�
writelineszTee.writelines�s���D��J�J�t��rc�F�|jD]}|j��yr=)r?�flush)r@rFs  rrLz	Tee.flush�s�����A�
�G�G�I�rc��y)NF��r@s r�isattyz
Tee.isatty�s��rN)r'�
__module__�__qualname__rBrDrJrLrPrNrrr;r;ys����
��rr;c���eZdZdZdZdZdZdZ�fd�Zd�Z	d�Z
d	�Zd
�Zd�Z
d�Zd
�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zdd�Zdd�Zdd�Z�xZS)�XunitzCThis plugin provides test results in the standard XUnit XML format.�xuniti�r1Nc�T��tt|��g|_d|_d|_yr=)�superrTrB�_capture_stack�_currentStdout�_currentStderr)r@r(s �rrBzXunit.__init__�s(���
�e�T�#�%� ���"���"��rc�T�t|d�rt�|jz
}|Sd}|S)N�_timerg)�hasattrrr\)r@�takens  r�
_timeTakenzXunit._timeTaken�s/���4��"��F�T�[�[�(�E����E��rc�B�t|�}tj|�S)z.Escape an XML attribute. Value can be unicode.)rr�	quoteattr)r@�attrs  r�
_quoteattrzXunit._quoteattr�s����~���!�!�$�'�'rc
���tj|||�|jdddd|jdd�d��|jd	dd
d|jdd
�d��y)z%Sets additional command line options.z--xunit-file�store�
xunit_file�FILE�NOSE_XUNIT_FILEz
nosetests.xmlzrPath to xml file to store the xunit report in. Default is nosetests.xml in the working directory [NOSE_XUNIT_FILE])�action�dest�metavar�default�helpz--xunit-testsuite-name�xunit_testsuite_name�PACKAGE�NOSE_XUNIT_TESTSUITE_NAME�	nosetestszbName of the testsuite in the xunit xml, generated by plugin. Default test suite name is nosetests.N)r�options�
add_option�get)r@�parser�envs   rrrz
Xunit.options�sv�����t�V�S�)�����7��v��G�G�-��?�&�		�	(�	���$�W�'���G�G�7��E�:�		�	<rc��tj|||�||_|jrSddddd�|_g|_tjj|j�|_
|j|_yy)zConfigures the xunit plugin.r)�errors�failures�passes�skippedN)r�	configure�config�enabled�stats�	errorlist�os�path�realpathrf�error_report_file_namern)r@rrr}s   rr|zXunit.configure�sp������w��/�����<�<�$%�&'�$%�%&��D�J�
 �D�N�*,�'�'�*:�*:�7�;M�;M�*N�D�'�(/�(D�(D�D�%�rc�x�tj|jd|jd�|_|j|j
d<|j|j
d<|j
d|j
dz|j
dz|j
dz|j
d	<|jjd
|j
z�|jjdj|jD�cgc]}t||j���c}��|jjd�|jj�|jjd
kDr:|jd�|jd|jjz�yycc}w)zmWrites an Xunit-formatted XML file

        The file includes a report of test errors and failures.

        �wrrA�testsuite_namerxryrzr{�totalz�<?xml version="1.0" encoding="%(encoding)s"?><testsuite name="%(testsuite_name)s" tests="%(total)d" errors="%(errors)d" failures="%(failures)d" skip="%(skipped)d">�z</testsuite>rzF----------------------------------------------------------------------zXML: %sN)�codecs�openr�rA�error_report_filerrnrD�joinr�r�closer}�	verbosity�writelnr)r@�stream�es   r�reportzXunit.report�sz��"(���T�-H�-H�#�-1�]�]�I�"G���!%����
�
�:��'+�'@�'@��
�
�#�$�#�z�z�(�3�d�j�j��6L�L�!%���H�!5� 6�8<�
�
�9�8M� N��
�
�7�����$�$�
"�%)�J�J�
/�	0�
	
���$�$�R�W�W�8<���.H�8F�1�/<�A�t�}�}�.M�8F�.H�&I�	J����$�$�^�4����$�$�&��;�;� � �1�$��N�N�8�$��N�N�9�t�'=�'=�'B�'B�B�C�%��	.Hs�F7c��|jjtjtjf�t�|_t�|_t|j|jtj�t_t|j|jtj�t_yr=)
rX�append�sys�stdout�stderrrrYrZr;rArOs r�
_startCapturezXunit._startCapture�ss�����"�"�C�J�J��
�
�#;�<�&�j���&�j��������(;�(;�S�Z�Z�H��
������(;�(;�S�Z�Z�H��
rc�$�|j�yr=)r��r@�contexts  r�startContextzXunit.startContext�s�����rc�$�|j�yr=)�_endCapturer�s  r�stopContextzXunit.stopContext�s�����rc�B�t�|_|j�y)z+Initializes a timer before starting a test.N)rr\r��r@�tests  r�
beforeTestzXunit.beforeTest�s���f������rc�|�|jr0|jj�\t_t_yyr=)rX�popr�r�r�rOs rr�zXunit._endCapture�s-�����%)�%8�%8�%<�%<�%>�"�C�J��
�rc�@�|j�d|_d|_yr=)r�rYrZr�s  r�	afterTestzXunit.afterTest�s������"���"��rc�X�|jr|j�|jr�yyr=)rXr�r�s  r�finalizezXunit.finalize�s"���!�!������!�!rc�p�|jr*|jj�}|rdt|�zSy)Nz'<system-out><![CDATA[%s]]></system-out>r�)rY�getvaluer�r@rs  r�_getCapturedStdoutzXunit._getCapturedStdout�=������'�'�0�0�2�E��@�<��D���rc�p�|jr*|jj�}|rdt|�zSy)Nz'<system-err><![CDATA[%s]]></system-err>r�)rZr�rr�s  r�_getCapturedStderrzXunit._getCapturedStderrr�rc
�h�|j�}t|dt�rd}|jdxxdz
cc<nd}|jdxxdz
cc<t	||j
�}|j
�}|jjd|jt|�d�|jt|�d�|||jt|d��|jt|��t|�|j�|j�d�	z�y	)
z*Add error output to Xunit report.
        rr{r�errorrxz�<testcase classname=%(cls)s name=%(name)s time="%(taken).3f"><%(type)s type=%(errtype)s message=%(message)s><![CDATA[%(tb)s]]></%(type)s>%(systemout)s%(systemerr)s</testcase>���)	�clsrr^�type�errtype�message�tb�	systemout�	systemerrN)r_�
issubclassrrr	rA�idr�r�rcr#r/r9rr�r�)r@r��err�captr^r�r�r�s        r�addErrorzXunit.addErrors�����!���c�!�f�h�'��D��J�J�y�!�Q�&�!��D��J�J�x� �A�%� �
�c�4�=�=�
1��
�W�W�Y�������
?��O�O�H�R�L��O�4��_�_�X�b�\�"�%5�6�������s�1�v�(>�?�����C�(8�9���#��1�1�3��1�1�3�	
�
�
	rc��|j�}t||j�}|jdxxdz
cc<|j	�}|j
j
d|jt|�d�|jt|�d�||jt|d��|jt|��t|�|j�|j�d�z�y)z,Add failure output to Xunit report.
        ryrz�<testcase classname=%(cls)s name=%(name)s time="%(taken).3f"><failure type=%(errtype)s message=%(message)s><![CDATA[%(tb)s]]></failure>%(systemout)s%(systemerr)s</testcase>rr�)r�rr^r�r�r�r�r�N)r_r	rArr�r�r�rcr#r/r9rr�r�)r@r�r�r��tb_infor^r�r�s        r�
addFailurezXunit.addFailure1s������!��
�c�4�=�=�
1���
�
�:��!�#��
�W�W�Y�������
>��O�O�H�R�L��O�4��_�_�X�b�\�"�%5�6������s�1�v�(>�?�����C�(8�9���#��1�1�3��1�1�3�
�
�	rc	�^�|j�}|jdxxdz
cc<|j�}|jj	d|jt
|�d�|jt
|�d�||j�|j�d�z�y)z,Add success output to Xunit report.
        rzrzb<testcase classname=%(cls)s name=%(name)s time="%(taken).3f">%(systemout)s%(systemerr)s</testcase>rr�)r�rr^r�r�N)	r_rr�r�r�rcr#r�r�)r@r�r�r^r�s     r�
addSuccesszXunit.addSuccessGs������!���
�
�8���!��
�W�W�Y�������
G��O�O�H�R�L��O�4��_�_�X�b�\�"�%5�6���1�1�3��1�1�3�	
�
�	rr=)NN)r'rQrR�__doc__r�scorerAr�rBr_rcrrr|r�r�r�r�r�r�r�r�r�r�r�r�r��
__classcell__)r(s@rrTrT�sx���M��D��E��H���#��(�
<�$E�D�2I����
?�#�
����<�,rrT)r�r��doctestr�r��	traceback�rer%�iorr�xml.saxr�nose.plugins.baser�nose.excr�nose.pyversionrr	�compilerrrrr#r/r9�objectr;rTrNrr�<module>r�s���(�R��	�
��	�����$��:� �R�Z�Z� ?�@��
�"�*�*�'�
(��.�@�$��.�&�&��,F�F�Fr

Youez - 2016 - github.com/yon3zu
LinuXploit