§ |<ˆjØ'ã ó—dZddlZddlZddlZddlZddlZddlmZddlm Z ddlm Z ddlm Z ddlm Z ddl mZdd l mZdd lmZdd lmZdd lmZdd lmZddlmZddlmZddlmZddlmZddlmZdeddfd„Z deddfd„Z!dedede"de e#e$ffd„Z%ej&d¬¦«Gd„d¦«¦«Z'dede e'fd „Z(ej&d¬¦«Gd!„d"¦«¦«Z)dede e)fd#„Z*ee e)¦«Z+ed¬$¦«deddfd%„¦«Z,ed¬&¦«dede d'fd(„¦«Z-ed¬&¦«ded)edfd*„¦«Z.d+ede e e$e$e$ffd,„Z/dS)-z-Support for skip/xfail functions and markers.éN)ÚMapping)Ú Generator)ÚOptional)ÚTuple)ÚType)ÚConfig)Úhookimpl)ÚParser)ÚMark)ÚItem)Úfail)Úskip)Úxfail)Ú BaseReport)ÚCallInfo)ÚStashKeyÚparserÚreturncó–—| d¦«}| ddddd¬¦«| dd dd ¬ ¦«dS) NÚgeneralz --runxfailÚ store_trueÚrunxfailFzz"pytest_configure..3sø€¥7¨6°7¸CÑ#@Ô#@€r&có—dS)N©)ÚargsÚkwargss r$Únopzpytest_configure..nop5s€Ø ˆDr&rÚmarkersz‘skip(reason=None): skip the given test function with an optional reason. Example: skip(reason="no way of currently testing this") skips the test.askipif(condition, ..., *, reason=...): skip the given test function if any of the conditions evaluate to True. Example: skipif(sys.platform == 'win32') skips the test if we are on the win32 platform. See https://docs.pytest.org/en/stable/reference/reference.html#pytest-mark-skipifaxfail(condition, ..., *, reason=..., run=True, raises=None, strict=xfail_strict): mark the test function as an expected failure if any of the conditions evaluate to True. Optionally specify a reason for better reporting and run=False if you don't even want to execute the test function. If only specific exception(s) are expected, you can list them in raises, and if the test fails in other ways, it will be reported as a true failure. See https://docs.pytest.org/en/stable/reference/reference.html#pytest-mark-xfail)Úoptionrr,rÚ add_cleanupÚ Exceptionr*Úaddinivalue_line)r'r2r+r,s @@r$Úpytest_configurer8-sÞøø€Ø „}Ôð &àˆ ˆ ˆ àŒlˆØ×ÒÐ@Ð@Ð@Ð@Ð@ÑAÔAÐAð ð ð õœˆŒ Ý�˜ Ñ%Ô%Ð%à ×ÒØð ñôðð  ×ÒØð \ñôðð ×ÒØð kñ ô ð ð ð r&ÚitemÚmarkÚ conditioncóD—t|t¦«�r¸ttt|jdœ}t |j |j¬¦«¦«D]N}t|t¦«s"td  |¦«¦«‚|  |¦«ŒOt|d¦«r|  |jj¦« d|j›d�}t#||d¦«}t%||¦«}�n<#t&$rO}d|jzd |zd d |jpd zzd zd g} t+d | ¦«d¬¦«Yd}~nèd}~wt.$r_}d|jzd |zgt1jt5|¦«|¦«¢} t+d | ¦«d¬¦«Yd}~n�d}~wwxYw t7|¦«}nh#t.$r[}d|jzgt1jt5|¦«|¦«¢} t+d | ¦«d¬¦«Yd}~nd}~wwxYw|j dd¦«} | €9t|t¦«rd|z} nd|jzdz} t+| d¬¦«|| fS)a.Evaluate a single skipif/xfail condition. If an old-style string condition is given, it is eval()'d, otherwise the condition is bool()'d. If this fails, an appropriately formatted pytest.fail is raised. Returns (result, reason). The reason is only relevant if the result is True. )ÚosÚsysÚplatformr')r'zÚevalzError evaluating %r conditionz ú rú^zSyntaxError: invalid syntaxú F)ÚpytraceNz*Error evaluating %r condition as a booleanÚreasonz condition: zError evaluating %r: zDyou need to specify reason=STRING when using booleans as conditions.)Ú isinstanceÚstrr=r>r?r'ÚreversedÚihookÚpytest_markeval_namespacerÚ ValueErrorÚformatÚupdateÚhasattrr@Ú __globals__ÚnameÚcompilerBÚ SyntaxErrorÚoffsetr Újoinr6Ú tracebackÚformat_exception_onlyrrr1Úget) r9r:r;Úglobals_Ú dictionaryÚfilenameÚcondition_codeÚresultÚexcÚmsglinesrGÚmsgs r$Úevaluate_conditionrbTs€õ�)�SÑ!Ô!ñ05åÝÝ Ø”kð  ð ˆõ #Ø ŒJ× 0Ò 0¸¼ Ð 0Ñ DÔ Dñ ô ð (ð (ˆJõ˜j­'Ñ2Ô2ð Ý ØR×YÒYØ"ñôñôðð �OŠO˜JÑ 'Ô 'Ð 'Ð 'Ý �4˜Ñ Ô ð 2Ø �OŠO˜DœHÔ0Ñ 1Ô 1Ð 1ð 5Ø1˜4œ9Ð1Ð1Ð1ˆHÝ$ Y°¸&ÑAÔAˆNݘ.¨(Ñ3Ô3ˆF‰FøÝð 5ð 5ð 5à/°$´)Ñ;ؘÑ"ؘ ¤  ¨aÑ0Ñ0°3Ñ6Ø-ð ˆHõ �—’˜8Ñ$Ô$¨eÐ 4Ñ 4Ô 4Ð 4Ð 4Ð 4Ð 4Ð 4Ð 4øøøøÝð 5ð 5ð 5à/°$´)Ñ;ؘÑ"ðõÔ0µ°c±´¸CÑ@Ô@ðˆHõ �—’˜8Ñ$Ô$¨eÐ 4Ñ 4Ô 4Ð 4Ð 4Ð 4Ð 4Ð 4Ð 4øøøøð  5øøøð 5ݘ)‘_”_ˆFˆFøÝð 5ð 5ð 5à<¸t¼yÑHðåÔ0µ°c±´¸CÑ@Ô@ðˆHõ �—’˜8Ñ$Ô$¨eÐ 4Ñ 4Ô 4Ð 4Ð 4Ð 4Ð 4Ð 4Ð 4øøøøð  5øøøðŒ[�_Š_˜X tÑ ,Ô ,€FØ €~Ý �i¥Ñ %Ô %ð %Ø" YÑ.ˆFˆFð(¨$¬)Ñ3ØXñYð õ �˜eÐ $Ñ $Ô $Ð $à �6ˆ>Ðs?Ã,D Ä G ÄAE Å G Å-AGÇG ÇG Ç IÇ*AIÉIT)Úfrozencó"—eZdZUdZdZeed<dS)ÚSkipz$The result of evaluate_skip_marks().zunconditional skiprGN)Ú__name__Ú __module__Ú __qualname__Ú__doc__rGrIÚ__annotations__r/r&r$rereŸs(€€€€€€à.Ð.à&€FˆCÐ&Ð&Ñ&Ð&Ð&r&recóô—| d¬¦«D]}}d|jvr|j}n|jdf}|s,|j dd¦«}t |¦«cS|D]+}t |||¦«\}}|rt |¦«ccSŒ,Œ~| d¬¦«D]L} t |ji|j¤ŽcS#t $r%}t t|¦«dz¦«d‚d}~wwxYwdS) zDEvaluate skip and skipif marks on item, returning Skip if triggered.Úskipif©rRr;rGÚrz& - maybe you meant pytest.mark.skipif?N)Ú iter_markersr1r0rYrerbÚ TypeErrorrI)r9r:Ú conditionsrGr;r^Úes r$Úevaluate_skip_marksrs¦sV€à×!Ò! xÐ!Ñ0Ô0ð$ð$ˆØ ˜dœkÐ )Ð )ØœˆJˆJàœ+ kÔ2Ð4ˆJðð Ø”[—_’_ X¨rÑ2Ô2ˆFݘ‘<”<Ð Ð Ð ð$ð $ð $ˆIÝ/°°d¸IÑFÔF‰NˆF�FØð $ݘF‘|”|Ð#Ð#Ð#Ð#Ð#ð $ð $ð ×!Ò! vÐ!Ñ.Ô.ðYðYˆð YݘœÐ2 d¤kÐ2Ð2Ð 2Ð 2Ð 2øÝð Yð Yð YÝ�C ™FœFÐ%MÑMÑNÔNÐTXÐ Xøøøøð Yøøøð ˆ4sÂ.Cà C5à C0Ã0C5cóh—eZdZUdZdZeed<eed<eed<ee e e dfed<dS) ÚXfailz%The result of evaluate_xfail_marks().)rGÚrunÚstrictÚraisesrGrvrw.rxN) rfrgrhriÚ __slots__rIrjrrrrÚ BaseExceptionr/r&r$ruruÂsX€€€€€€à/Ð/à5€Ià €K€K�KØ €I€I�IØ €L€L�LØ �U˜4  Ô.°Ð3Ô4Ô 5Ð5Ð5Ñ5Ð5Ð5r&rucó —| d¬¦«D]ì}|j dd¦«}|j d|j d¦«¦«}|j dd¦«}d |jvr|j}n|jd f}|s/|j d d ¦«}t ||||¦«cS|D].}t|||¦«\}}|rt ||||¦«ccSŒ/ŒídS) z;Evaluate xfail marks on item, returning Xfail if triggered.rrmrvTrwrrxNr;rGrn)ror1rYr'Úgetinir0rurb) r9r:rvrwrxrqrGr;r^s r$Úevaluate_xfail_marksr}Îs.€à×!Ò! wÐ!Ñ/Ô/ð:ð:ˆØŒk�oŠo˜e TÑ*Ô*ˆØ”—’ ¨4¬;×+=Ò+=¸nÑ+MÔ+MÑNÔNˆØ”—’ ¨4Ñ0Ô0ˆØ ˜dœkÐ )Ð )ØœˆJˆJàœ+ kÔ2Ð4ˆJðð 6Ø”[—_’_ X¨rÑ2Ô2ˆFݘ  f¨fÑ5Ô5Ð 5Ð 5Ð 5ð$ð :ð :ˆIÝ/°°d¸IÑFÔF‰NˆF�FØð :ݘV S¨&°&Ñ9Ô9Ð9Ð9Ð9Ð9Ð9ð :ð :ð ˆ4r&)Útryfirstcó—t|¦«}|rtj|jd¬¦«‚t |¦«x|jt <}|r1|jjj s"|j std|jz¦«dSdSdSdS)NT)Ú_use_item_locationú [NOTRUN] ) rsrr6rGr}ÚstashÚ xfailed_keyr'r4rrvr)r9ÚskippedÚxfaileds r$Úpytest_runtest_setupr†ës¡€å! $Ñ'Ô'€GØðFÝŒn˜Wœ^ÀÐEÑEÔEÐEå(<¸TÑ(BÔ(BÐB€D„J�{јgØð,�t”{Ô)Ô2ð,¸7¼;ð,Ý ˆk˜GœNÑ*Ñ+Ô+Ð+Ð+Ð+ð,ð,ð,ð,ð,ð,r&)Ú hookwrapper)NNNc#óxK—|j td¦«}|€t|¦«x|jt<}|r/|jjjs|jstd|j z¦«dV—|j td¦«}|€ t|¦«x|jt<}dSdS)Nr�) r‚rYrƒr}r'r4rrvrrG)r9r…s r$Úpytest_runtest_callr‰ös·èè€àŒj�nŠn�[¨$Ñ/Ô/€GØ€Ý,@ÀÑ,FÔ,FÐFˆŒ •;Ñ 'àð,�t”{Ô)Ô2ð,¸7¼;ð,Ý ˆk˜GœNÑ*Ñ+Ô+Ð+à €E€E€EðŒj�nŠn�[¨$Ñ/Ô/€GØ€Ý,@ÀÑ,FÔ,FÐFˆŒ •;Ñ ' ' 'ð€r&Úcallc#óˆK—dV—}| ¦«}|j td¦«}|jjjrdS|jrYt|jj tj ¦«r5|jj j €J‚d|jj j z|_ d|_dS|js‰|r‰|jrA|j}|�#t|jj |¦«s d|_dSd|_|j|_ dS|jdkr8|jrd|_d|jz|_dSd|_|j|_ dSdSdSdS)Nzreason: r„ÚfailedrŠz[XPASS(strict)] Úpassed)Ú get_resultr‚rYrƒr'r4rÚexcinforHÚvaluerr6raÚwasxfailÚoutcomer„rxrGÚwhenrwÚlongrepr)r9rŠr’Úrepr…rxs r$Úpytest_runtest_makereportr–sZèè€àˆeˆe€GØ × Ò Ñ Ô €CØŒj�nŠn�[¨$Ñ/Ô/€GØ „{ÔÔ"ð.Ø ˆØ Œð.�* T¤\Ô%7½¼ÑIÔIð.ØŒ|Ô!Ô%Ð1Ð1Ð1Ø! D¤LÔ$6Ô$:Ñ:ˆŒ ؈Œ ˆ ˆ Ø Œ[ð.˜Wð.Ø Œ<ð .Ø”^ˆFØÐ!­*°T´\Ô5GÈÑ*PÔ*PÐ!Ø&�” � � à'�” Ø&œ~�” � � Ø ŒY˜&Ò Ð ØŒ~ð .Ø&�” Ø1°G´NÑB�” � � à&�” Ø&œ~�” � � ð.ð.ð.ð.ð!Ð r&ÚreportcóJ—t|d¦«r|jrdS|jrdSdS)Nr‘)r…ÚxÚXFAIL)ÚxpassedÚXÚXPASS)rPr„r�)r—s r$Úpytest_report_teststatusrž#s9€Ýˆv�zÑ"Ô"ð+Ø Œ>ð +Ø*Ð*Ø Œ]ð +Ø*Ð*Ø ˆ4r&)0riÚ dataclassesr=r?r>rWÚcollections.abcrÚtypingrrrrÚ_pytest.configrr Ú_pytest.config.argparsingr Ú_pytest.mark.structuresr Ú _pytest.nodesr Ú_pytest.outcomesr rrÚ_pytest.reportsrÚ_pytest.runnerrÚ _pytest.stashrr%r8ÚobjectrrIrbÚ dataclassrersrur}rƒr†r‰r–ržr/r&r$úr¬sÔðØ3Ð3ØÐÐÐØ € € € Ø€€€Ø € € € ØÐÐÐØ#Ð#Ð#Ð#Ð#Ð#ØÐÐÐÐÐØÐÐÐÐÐØÐÐÐÐÐØÐÐÐÐÐà!Ð!Ð!Ð!Ð!Ð!Ø#Ð#Ð#Ð#Ð#Ð#Ø,Ð,Ð,Ð,Ð,Ð,Ø(Ð(Ð(Ð(Ð(Ð(ØÐÐÐÐÐØ!Ð!Ð!Ð!Ð!Ð!Ø!Ð!Ð!Ð!Ð!Ð!Ø"Ð"Ð"Ð"Ð"Ð"Ø&Ð&Ð&Ð&Ð&Ð&Ø#Ð#Ð#Ð#Ð#Ð#Ø"Ð"Ð"Ð"Ð"Ð"ð˜Vð¨ððððð&$˜Vð$¨ð$ð$ð$ð$ðNH˜TðH¨ðH¸&ðHÀUÈ4ÐQTÈ9ÔEUðHðHðHðHðV€Ô˜dÐ#Ñ#Ô#ð'ð'ð'ð'ð'ñ'ô'ñ$Ô#ð'ð ˜dð x°¤~ððððð8€Ô˜dÐ#Ñ#Ô#ð6ð6ð6ð6ð6ñ6ô6ñ$Ô#ð6ð˜t𨰬ððððð4(ˆh�x ”Ô'Ñ)Ô)€ ð €�4ÐÑÔð,˜tð,¨ð,ð,ð,ñÔð,ð €�dÐÑÔð G˜dð G yÐ1AÔ'Bð Gð Gð GñÔð Gð  €�dÐÑÔð. Dð.°¸´ð.ð.ð.ñÔð.ð6 Zð°H¸UÀ3ÈÈSÀ=Ô=QÔ4Rððððððr&