§ |<ˆj¿gãó˜—ddlZddlZddlmZddlmZddlmZddlmZddlm Z ddlm Z ddlm Z dd lm Z dd lm Z dd lmZdd lmZdd lmZddlmZddlmZddlmZddlmZddlmZddlZddlmZddlmZddlmZddlmZddlmZddlmZddl m!Z!ddl m"Z"ddl#m$Z$ddl#m%Z%ddl&m'Z'ddl&m(Z(ddl&m)Z)dd l*m+Z+dd!l,m-Z-dd"l,m.Z.dd#l/m0Z0dd$l1m2Z2er dd%l3m4Z4dd&lm5Z5d'Z6eej7¦«j8Z9d(e:d)e e:fd*„Z;d+ed,ed)dfd-„ZGd3„d4e?¦«Z@Gd5„d/e@¬6¦«ZAd7d/d)eee:efeeBffd8„ZCGd9„d:eA¦«ZDd;d„d?eD¦«ZFGd@„dAeF¦«ZGGdB„dCeA¦«ZHdS)DéN)Ú signature)ÚPath)ÚAny)ÚCallable)Úcast)ÚIterable)ÚIterator)ÚList)ÚMutableMapping)ÚOptional)Úoverload)ÚSet)ÚTuple)ÚType)Ú TYPE_CHECKING)ÚTypeVar)ÚUnion)Ú getfslineno)Ú ExceptionInfo)Ú TerminalRepr)Ú Traceback)Úcached_property)Ú LEGACY_PATH)ÚConfig)ÚConftestImportFailure)Ú#FSCOLLECTOR_GETHOOKPROXY_ISINITPATH)ÚNODE_CTOR_FSPATH_ARG)ÚMark)Ú MarkDecorator)Ú NodeKeywords)Úfail)Ú absolutepath)Ú commonpath)ÚStash)Ú PytestWarning)ÚSession)Ú_TracebackStyleú/ÚnodeidÚreturnc#ó‚K—d}| d¦«}|dkrd}dV— | t||¦«}|dkrn*|dkr |d|…V—|tt¦«z}ŒM | d|¦«}|dkrn%|dkr |d|…V—|td¦«z}ŒB|r|V—dSdS)aèReturn the parent node IDs of a given node ID, inclusive. For the node ID "testing/code/test_excinfo.py::TestFormattedExcinfo::test_repr_source" the result would be "" "testing" "testing/code" "testing/code/test_excinfo.py" "testing/code/test_excinfo.py::TestFormattedExcinfo" "testing/code/test_excinfo.py::TestFormattedExcinfo::test_repr_source" Note that / components are only considered until the first ::. rú::éÿÿÿÿNÚ)ÚfindÚSEPÚlen)r)ÚposÚ first_colonsÚats ú_/builddir/build/BUILD/cloudlinux-venv-1.0.12/venv/lib/python3.11/site-packages/_pytest/nodes.pyÚiterparentnodeidsr64sèè€ð$ €CØ"(§+¢+¨dÑ"3Ô"3€LØ�rÒÐØˆ à €H€H€HðØ �[Š[�˜c <Ñ 0Ô 0ˆØ �Š8ˆ8Ø Ø �Š6ˆ6ؘ˜"˜”+Ð Ð Ð Ø•3•s‘8”8‰mˆð ðØ �[Š[˜˜sÑ #Ô #ˆØ �Š8ˆ8Ø Ø �Š6ˆ6ؘ˜"˜”+Ð Ð Ð Ø•3�t‘9”9‰nˆð ððØˆ ˆ ˆ ˆ ˆ ððóÚpathÚfspathcóX—t|¦«|krtd|›d|›d�¦«‚dS)NzPath(z) != z8 if both path and fspath are given they need to be equal)rÚ ValueError)r8r9s r5Ú _check_pathr<asU€Ý ˆF�|„|�tÒÐÝð F�Fð Fð F 4ð Fð Fð Fñ ô ð ðÐr7Ú node_typeÚNodecó´—|�.tjtj|j¬¦«d¬¦«|�|�t ||¦«|S|€J‚t |¦«S)N)Únode_type_nameé©Ú stacklevel)ÚwarningsÚwarnrÚformatÚ__name__r<r)r=r8r9s r5Ú _imply_pathrHis~€ð ÐÝŒ Ý Ô 'Ø(Ô1ð ñ ô ðð  ñ ô ð ð  ÐØ Ð Ý ˜˜fÑ %Ô %Ð %؈ àÐ!Ð!Ð!Ý�F‰|Œ|Ðr7Ú _NodeType)Úboundcó$‡—eZdZd„Zˆfd„ZˆxZS)ÚNodeMetacór—d |j›d|j›�¬¦«}t|d¬¦«dS)NzÉDirect construction of {name} has been deprecated, please use {name}.from_parent. See https://docs.pytest.org/en/stable/deprecations.html#node-construction-changed-to-node-from-parent for more details.ú.©ÚnameF)Úpytrace)rFÚ __module__rGr!)ÚselfÚkÚkwÚmsgs r5Ú__call__zNodeMeta.__call__‚sJ€ð !÷ Š&˜œÐ:Ð:¨4¬=Ð:Ð:ˆ&Ñ ;Ô ;ð õ ˆS˜%Ð Ñ Ô Ð Ð Ð r7c ór•‡— t¦«j|i|¤ŽS#t$r�tt |d¦«¦«Šˆfd„| ¦«D¦«}ddlm}tj ||›dt|¦«›d�¦«¦«t¦«j|i|¤ŽcYSwxYw)NÚ__init__có.•—i|]\}}|‰jv¯||“ŒS©)Ú parameters)Ú.0rTÚvÚsigs €r5ú z$NodeMeta._create..�s+ø€ÐKÐKÐK¡  A°q¸C¼NÐ7JÐ7J˜˜1Ð7JÐ7JÐ7Jr7é)ÚPytestDeprecationWarningz7 is not using a cooperative constructor and only takes zŒ. See https://docs.pytest.org/en/stable/deprecations.html#constructors-of-custom-pytest-node-subclasses-should-take-kwargs for more details.) ÚsuperrWÚ TypeErrorrÚgetattrÚitemsÚ warning_typesrbrDrEÚset)rSrTrUÚknown_kwrbr_Ú __class__s @€r5Ú_createzNodeMeta._create‹súøø€ð 4Ø#•5‘7”7Ô# QÐ-¨"Ð-Ð-Ð -øÝð 4ð 4ð 4Ý�G D¨*Ñ5Ô5Ñ6Ô6ˆCØKÐKÐKÐK¨¯ª©¬ÐKÑKÔKˆHØ ?Ð ?Ð ?Ð ?Ð ?Ð ?å ŒMØ(Ð(Øð(ð(ÕTWÐX`ÑTaÔTað(ð(ð(ñôñ ô ð ð$•5‘7”7Ô# QÐ3¨(Ð3Ð3Ð 3Ð 3Ð 3ð 4øøøs„�BB6Â5B6)rGrRÚ __qualname__rWrkÚ __classcell__©rjs@r5rLrL�sGø€€€€€ð!ð!ð!ð4ð4ð4ð4ð4ð4ð4ð4ð4r7rLcó—eZdZUdZeed<dZ d/dedddee d d deed ee d eed dfd„Z e d0d„¦«Z ed„¦«Zd efd„Zded dfd„Zed efd„¦«Zd efd„Zd1d„Zd1d„Zd edfd„Z d2deeefded dfd„Zd3deed eefd„Z d3deed ee!deffd„Z"e#ded eefd„¦«Z$e#ded ed efd!„¦«Z$ d3ded eed eefd"„Z$d e%efd#„Z&d eefd$„Z'd%e(ge)fd dfd&„Z*d'e+e,d ee,fd(„Z-d)e.e/d e0fd*„Z1 d3d)e.e/d+d,d e2fd-„Z3 d3d)e.e/d+d,d eee2ffd.„Z4dS)4r>z–Base class for Collector and Item, the components of the test collection tree. Collector subclasses have children; Items are leaf nodes. r9)rPÚparentÚconfigÚsessionr8Ú_nodeidÚ_storeÚ__dict__NrPrpzOptional[Node]rqrrzOptional[Session]r8r)r*cóN—||_||_|r||_n|std¦«‚|j|_|r||_n|std¦«‚|j|_|€|€t |dd¦«}t t|¦«||¬¦«|_t|¦«|_ g|_ t¦«|_ |�d|vsJ‚||_n2|jstd¦«‚|jjdz|jz|_t!¦«|_|j|_dS)Nz!config or parent must be providedz"session or parent must be providedr8©r9z::()z!nodeid or parent must be providedr,)rPrprqrdrrrerHÚtyper8r ÚkeywordsÚ own_markersrhÚextra_keyword_matchesrsr)r$Ústashrt)rSrPrprqrrr9r8r)s r5rYz Node.__init__ºsC€ðˆŒ ðˆŒ à ð (à"(ˆDŒKˆKàð EÝÐ CÑDÔDÐDØ œ-ˆDŒKà ð *à$+ˆDŒLˆLàð FÝÐ DÑEÔEÐEØ!œ>ˆDŒLà ˆ<˜F˜Nݘ6 6¨4Ñ0Ô0ˆDå%¥d¨4¡j¤j°$¸vÐFÑFÔFˆŒ õ3?¸tÑ2DÔ2DˆŒ ð(*ˆÔõ03©u¬uˆÔ"à Ð Ø Ð'Ð'Ð'Ð'Ø!ˆDŒLˆLà”;ð EÝÐ CÑDÔDÐDØœ;Ô-°Ñ4°t´yÑ@ˆDŒLõ"™GœGˆŒ à”jˆŒ ˆ ˆ r7c ól—d|vrtd¦«‚d|vrtd¦«‚|jdd|i|¤ŽS)a:Public constructor for Nodes. This indirection got introduced in order to enable removing the fragile logic from the node constructors. Subclasses can use ``super().from_parent(...)`` when overriding the construction. :param parent: The parent node of this Node. rqz.config is not a valid argument for from_parentrrz/session is not a valid argument for from_parentrpr[)rdrk)ÚclsrprUs r5Ú from_parentzNode.from_parent÷sQ€ð �rˆ>ˆ>ÝÐLÑMÔMÐ MØ ˜ˆ?ˆ?ÝÐMÑNÔNÐ N؈sŒ{Ð/Ð/ &Ð/¨BÐ/Ð/Ð/r7có@—|j |j¦«S)z6fspath-sensitive hook proxy used to call pytest hooks.)rrÚ gethookproxyr8©rSs r5Úihookz Node.ihook s€ðŒ|×(Ò(¨¬Ñ3Ô3Ð3r7có`—d |jjt|dd¦«¦«S)Nz<{} {}>rP)rFrjrGrer‚s r5Ú__repr__z Node.__repr__s)€Ø×Ò ¤Ô 7½ÀÀvÈtÑ9TÔ9TÑUÔUÐUr7Úwarningcóð—t|t¦«s"td |¦«¦«‚t |¦«\}}|€J‚t j|dt|¦«|dz¬¦«dS)awIssue a warning for this Node. Warnings will be displayed after the test session, unless explicitly suppressed. :param Warning warning: The warning instance to issue. :raises ValueError: If ``warning`` instance is not a subclass of Warning. Example usage: .. code-block:: python node.warn(PytestWarning("some message")) node.warn(UserWarning("some message")) .. versionchanged:: 6.2 Any subclass of :class:`Warning` is now accepted, rather than only :class:`PytestWarning ` subclasses. zz$Node.iter_markers..rs&èè€ÐEÐE˜��!”ÐEÐEÐEÐEÐEÐEr7rO)Úiter_markers_with_node©rSrPs r5Ú iter_markerszNode.iter_markersls*€ð FÐE˜d×9Ò9¸tÐ9ÑDÔDÐEÑEÔEÐEr7c#ó K—t| ¦«¦«D])}|jD]}|�t|dd¦«|kr||fV—Œ Œ*dS)z®Iterate over all markers of the node. :param name: If given, filter the results by the name attribute. :returns: An iterator of (node, mark) tuples. NrP)ÚreversedrŸrzre)rSrPÚnoder¤s r5r­zNode.iter_markers_with_nodetsvèè€õ˜TŸ^š^Ñ-Ô-Ñ.Ô.ð %ð %ˆDØÔ(ð %ð %�Ø�<¥7¨4°¸Ñ#>Ô#>À$Ò#FÐ#FØ ˜*Ð$Ð$Ð$øð %ð %ð %r7có—dSr’r[r®s r5Úget_closest_markerzNode.get_closest_marker�ó€à ˆr7Údefaultcó—dSr’r[©rSrPr¶s r5r´zNode.get_closest_marker…rµr7cóJ—t| |¬¦«|¦«S)zûReturn the first marker matching the name, from closest (for example function) to farther level (for example module level). :param default: Fallback return value if no marker was found. :param name: Name to filter by. rO)Únextr¯r¸s r5r´zNode.get_closest_marker‰s%€õ�D×%Ò%¨4Ð%Ñ0Ô0°'Ñ:Ô:Ð:r7có„—t¦«}| ¦«D]}| |j¦«Œ|S)z;Return a set of all extra keywords in self and any parents.)rhrŸÚupdater{)rSÚextra_keywordsržs r5ÚlistextrakeywordszNode.listextrakeywords”sD€å#&¡5¤5ˆØ—N’NÑ$Ô$ð >ð >ˆDØ × !Ò ! $Ô"<Ñ =Ô =Ð =Ð =ØÐr7có>—d„| ¦«D¦«S)Ncó—g|] }|j‘Œ Sr[rOrªs r5ú z"Node.listnames..œs€Ð1Ð1Ð1˜1�”Ð1Ð1Ð1r7)rŸr‚s r5Ú listnameszNode.listnames›s €Ø1Ð1 §¢Ñ 0Ô 0Ð1Ñ1Ô1Ð1r7ÚfincóF—|jj ||¦«dS)zÜRegister a function to be called without arguments when this node is finalized. This method can only be called when this node is active in a setup chain, for example during self.setup(). N)rrÚ _setupstateÚ addfinalizer)rSrÃs r5rÆzNode.addfinalizeržs%€ð Œ Ô ×-Ò-¨c°4Ñ8Ô8Ð8Ð8Ð8r7r~cóˆ—|}|r)t||¦«s|j}|rt||¦«¯|�t||¦«sJ‚|S)z¼Get the next parent node (including self) which is an instance of the given class. :param cls: The node class to search for. :returns: The node, if found. )r‹rp)rSr~Úcurrents r5Ú getparentzNode.getparent§sa€ð#'ˆØð %�j¨°#Ñ6Ô6ð %Ø”nˆGðð %�j¨°#Ñ6Ô6ð %àˆ¥*¨W°cÑ":Ô":ˆˆÐ:؈r7Úexcinfocó—|jSr’)Ú traceback)rSrÊs r5Ú_traceback_filterzNode._traceback_filter´s €ØÔ Ð r7ÚstylezOptional[_TracebackStyle]có—ddlm}t|jt¦«rt j|jj¦«}t|jtj ¦«r|jj sd}t|j|¦«r|j  ¦«S|j   dd¦«rd}d}n|j}|dkrd}|€$|j   dd¦«d krd }nd}|j   d d¦«d krd}nd } tt!j¦«¦«|j jjk}n#t($rd }YnwxYw| d ||j   d d¦«|||¬¦«S)Nr)ÚFixtureLookupErrorÚvalueÚ fulltraceFÚlongÚautoÚtbstyleÚshortÚverboseraTÚ showlocals)ÚfuncargsÚabspathrØrÎÚtbfilterÚtruncate_locals)Ú_pytest.fixturesrÐr‹rÑrrÚ from_exc_inforÊr!Ú ExceptionrQÚ formatreprrqÚ getoptionrÍrÚosÚgetcwdÚinvocation_paramsÚdirÚOSErrorÚgetrepr)rSrÊrÎrÐrÛrÜrÚs r5Ú_repr_failure_pyzNode._repr_failure_py·s³€ð 8Ð7Ð7Ð7Ð7Ð7å �g”mÕ%:Ñ ;Ô ;ð IÝ#Ô1°'´-Ô2GÑHÔHˆGÝ �g”m¥T¤^Ñ 4Ô 4ð Ø”=Ô(ð Ø�Ý �g”mÐ%7Ñ 8Ô 8ð .Ø”=×+Ò+Ñ-Ô-Ð -ð Œ;× Ò  ¨eÑ 4Ô 4ð ØˆE؈HˆHàÔ-ˆHØ˜ŠˆØ�à ˆ=ØŒ{×$Ò$ Y°Ñ7Ô7¸7ÒBÐBØ��à�à Œ;× Ò  ¨AÑ .Ô .°Ò 2Ð 2Ø#ˆOˆOà"ˆOð Ý�2œ9™;œ;Ñ'Ô'¨4¬;Ô+HÔ+LÒLˆGˆGøÝð ð ð ØˆGˆGˆGð øøøð�ŠØØØ”{×,Ò,¨\¸5ÑAÔAØØØ+ð ñ ô ð sÄ3EÅ EÅEcó.—| ||¦«S)z¯Return a representation of a collection or test failure. .. seealso:: :ref:`non-python tests` :param excinfo: Exception information for the failure. )rè)rSrÊrÎs r5Ú repr_failurezNode.repr_failureîs€ð×$Ò$ W¨eÑ4Ô4Ð4r7)NNNNNN)rpr>©r*N)Tr’)5rGrRrlÚ__doc__rÚ__annotations__Ú __slots__r�r rrrYÚ classmethodrÚpropertyrƒr…rŒrEr)Úintr”r–r™r rŸrrÚboolr§r rr¯rr­r r´rr¾rÂrÚobjectrÆrrIrÉrÚ BaseExceptionrrÍrrèrêr[r7r5r>r>Ÿsk€€€€€€ððð ÐÐÑð €Ið$(Ø#'Ø'+Ø(,Ø#Ø $ð;!ð;!àð;!ð!ð;!ð˜Ô ð ;!ð %ð ;!ð ˜Ô%ð ;!ð�tŒnð;!𘔠ð;!ð ð;!ð;!ð;!ð;!ðzð0ð0ð0ñ„[ð0ð"ð4ð4ñ„Xð4ðV˜#ðVðVðVðVð# ˜Gð# ¨ð# ð# ð# ð# ðNð˜ðððñ„Xðð"˜#ð"ð"ð"ð"ð ð ð ð ð ð ð ð ð ˜4 œ<ð ð ð ð ðAEð5ð5ؘC Ð.Ô/ð5Ø9=ð5à ð5ð5ð5ð5ð0FðF ¨#¤ðF¸(À4¼.ðFðFðFðFð%)ð %ð %ؘS”Mð %à �%˜ ˜ Ô%Ô &ð %ð %ð %ð %ðð  sð ¨x¸¬~ð ð ð ñ„Xð ðð  sð °Tð ¸dð ð ð ñ„Xð ð48ð ;ð ;Øð ;Ø"*¨4¤.ð ;à �$Œð ;ð ;ð ;ð ;ð 3 s¤8ððððð2˜4 œ9ð2ð2ð2ð2ð9 ¨¨V¨Ô 4ð9¸ð9ð9ð9ð9ð ˜T )œ_ð °¸)Ô1Dð ð ð ð ð!¨°}Ô)Eð!È)ð!ð!ð!ð!ð .2ð5 ð5 à˜}Ô-ð5 ð+ð5 ð ð 5 ð5 ð5 ð5 ðt.2ð 5ð 5à˜}Ô-ð 5ð+ð 5ð ˆs�LÐ Ô !ð 5ð 5ð 5ð 5ð 5ð 5r7)Ú metaclassr²có¦—t|dd¦«}|� |dd…St|dd¦«}|�t|¦«St|dd¦«dfS)aTry to extract the actual location from a node, depending on available attributes: * "location": a pair (path, lineno) * "obj": a Python object that the node wraps. * "fspath": just a path :rtype: A tuple of (str|Path, int) with filename and 0-based line number. ÚlocationNéÚobjr9zunknown locationr-)rer)r²r÷rùs r5r�r�üsg€õ:AÀÀzÐSWÑ9XÔ9X€HØÐؘ˜˜Œ|ÐÝ �$˜˜tÑ $Ô $€CØ €Ý˜3ÑÔÐÝ �4˜Ð#5Ñ 6Ô 6¸Ð :Ð:r7cóš—eZdZdZGd„de¦«Zdeedfd„Zde e dee e ffd„Z de e defd „Zd S) Ú Collectorz\Collector instances create children through collect() and thus iteratively build a tree.có—eZdZdZdS)úCollector.CollectErrorz6An error during collection, contains a custom message.N©rGrRrlrìr[r7r5Ú CollectErrorrýs€€€€€ØDÐDÐDÐDr7rÿr*)ÚItemrûcó —td¦«‚)zRReturn a list of children (items and collectors) for this collection node.Úabstract©ÚNotImplementedErrorr‚s r5ÚcollectzCollector.collects€õ" *Ñ-Ô-Ð-r7rÊcó"—t|j|j¦«r<|j dd¦«s!|j}t |jd¦«S|j dd¦«}|dkrd}| ||¬¦«S)zyReturn a representation of a collection failure. :param excinfo: Exception information for the failure. rÒFrrÕrÔrÖ)rÎ)r‹rÑrÿrqrár�Úargsrè)rSrÊÚexcrÕs r5rêzCollector.repr_failuresš€õ �g”m TÔ%6Ñ 7Ô 7ð $ÀÄ ×@UÒ@UØ ˜ñA ôA ð $ð”-ˆCÝ�s”x ”{Ñ#Ô#Ð #ð”+×'Ò'¨ °6Ñ:Ô:ˆØ �fÒ Ð ØˆGà×$Ò$ W°GÐ$Ñ<Ô<ÐrrrrHrxrPr8rr�r;ÚreplacerâÚsepr0rrrqÚrootpathrrcrY) rSr9rr8rPrprqrrr)rrjs €r5rYzFSCollector.__init__DsÙø€ð ð &ݘ.­$Ñ/Ô/ð &Ø�~�~�~Ý�k¨>Ñ:Ô:��ݘN­DÑ1Ô1ð &Ø�|�|�|Ø%�å�4 ™:œ: t°FÐ;Ñ;Ô;ˆØ ˆ<Ø”9ˆDØÐ! f¤k°TÒ&9Ð&9ð$Ø×*Ò*¨6¬;Ñ7Ô7�Cõ˜s™8œ8�D�Døõ"ðððØ�Dðøøøð—|’|¥B¤F­CÑ0Ô0�؈Œ à ˆ?ØÐ%Ð%Ð%Ø”nˆGà ˆ>ð HݘTœY×2Ò2°7´>Ô3JÑKÔKÑLÔL��øÝð Hð Hð HÝ8¸À$ÑGÔG���ð Høøøðð 5�"œ&¥Cš-˜-ØŸš­¬µÑ4Ô4�å ‰Œ×ÒØØØØØØð ñ ô ð ð ð s$ÂB.Â. B;Â:B;Ã:1D,Ä,E ÅE )r9r8c ó>•—t¦«jd|||dœ|¤ŽS)zThe public constructor.)rpr9r8r[)rcr)r~rpr9r8rUrjs €r5rzFSCollector.from_parentzs+ø€ð#�u‰wŒwÔ"ÐQ¨&¸ÀdÐQÐQÈbÐQÐQÐQr7úos.PathLike[str]cól—tjtd¬¦«|j |¦«S©NrørB)rDrErrrr�)rSr9s r5r�zFSCollector.gethookproxy†s.€ÝŒ Õ9ÀaÐHÑHÔHÐHØŒ|×(Ò(¨Ñ0Ô0Ð0r7cól—tjtd¬¦«|j |¦«Sr!)rDrErrrÚ isinitpath)rSr8s r5r#zFSCollector.isinitpathŠs.€ÝŒ Õ9ÀaÐHÑHÔHÐHØŒ|×&Ò& tÑ,Ô,Ð,r7)NNNNNNNN)r9r)rGrRrlr rrrr>r�rrYrïrr�ròr#rmrns@r5rrCs†ø€€€€€ð)-Ø6:Ø#Ø"Ø!%Ø#'Ø'+Ø $ð4 ð4 à˜Ô%ð4 ð!  t¨T zÔ!2Ô3ð4 ð�tŒnð 4 ð �sŒmð 4 𠘔ð 4 ð˜Ô ð4 ð˜)Ô$ð4 𘔠ð4 ð ð4 ð4 ð4 ð4 ð4 ð4 ðlð )-Ø#ð Rð Rð Rð˜Ô%ð Rð �tŒnð Rð Rð Rð Rð Rñ„[ð Rð1ð1ð1ð1ð-˜u SÐ*<Ð%<Ô=ð-À$ð-ð-ð-ð-ð-ð-ð-ð-r7rcó—eZdZdZdS)ÚFilezOBase class for collecting tests from a file. :ref:`non-python tests`. Nrþr[r7r5r%r%�s€€€€€ððððr7r%c ó‡—eZdZdZdZ ddeededdeeddfˆfd„ Zdd „Z dd „Z d ed ed eddfd„Z de e defeeeffd„Zede eeeeffd„¦«ZˆxZS)rzvA basic test invocation item. Note that for a single function there might be multiple test invocation items. Nrqrrr&r)r*c óŠ•—t¦«j||f|||dœ|¤Žg|_g|_| ¦«dS)N)rqrrr))rcrYÚ_report_sectionsÚuser_propertiesÚ-_check_item_and_collector_diamond_inheritance)rSrPrprqrrr)rUrjs €r5rYz Item.__init__žsqø€ð �‰ŒÔØ Ø ð ðØØð  ð ð ð  ð ð ð=?ˆÔð:<ˆÔà ×:Ò:Ñ<Ô<Ð<Ð<Ð.ËsGèè€ð ð Ø"µzÀ$Í Ñ7RÔ7Rð Ø ŒMð ð ð ð ð ð r7zF is an Item subclass and should not be a collector, however its bases zõ are collectors. Please split the Collectors and the Item into separate node types. Pytest Doc example: https://docs.pytest.org/en/latest/example/nonpython.html example pull request on a plugin: https://github.com/asmeurer/pytest-flakes/pull/40/) rxreÚsetattrÚjoinÚ __bases__rDrErGr%)rSr~Ú attr_nameÚproblemss r5r*z2Item._check_item_and_collector_diamond_inheritance»sЀõ �4‰jŒjˆð @ˆ Ý �3˜  5Ñ )Ô )ð Ø ˆFÝ��Y Ñ%Ô%Ð%à—9’9ð ð Ø&)¤mð ñ ô ñ ô ˆð ð Ý ŒMØ”<ðgðgØ%-ðgðgðgõ ñ  ô ð ð ð ð ð r7có —td¦«‚)zƒRun the test case for this item. Must be implemented by subclasses. .. seealso:: :ref:`non-python tests` z,runtest must be implemented by Item subclassrr‚s r5Úruntestz Item.runtestØs€õ"Ð"PÑQÔQÐQr7ÚwhenÚkeyÚcontentcóH—|r|j |||f¦«dSdS)aAdd a new report section, similar to what's done internally to add stdout and stderr captured output:: item.add_report_section("call", "stdout", "report section contents") :param str when: One of the possible capture states, ``"setup"``, ``"call"``, ``"teardown"``. :param str key: Name of the section, can be customized at will. Pytest uses ``"stdout"`` and ``"stderr"`` internally. :param str content: The full contents as a string. N)r(r›)rSr7r8r9s r5Úadd_report_sectionzItem.add_report_sectionás:€ð ð ?Ø Ô !× (Ò (¨$°°WÐ)=Ñ >Ô >Ð >Ð >Ð >ð ?ð ?r7rcó—|jddfS)aPGet location information for this item for test reports. Returns a tuple with three elements: - The path of the test (default ``self.path``) - The 0-based line number of the test (default ``None``) - A name of the test to be shown (default ``""``) .. seealso:: :ref:`non-python tests` Nr.r r‚s r5Ú reportinfozItem.reportinfoòs€ðŒy˜$ Ð"Ð"r7có —| ¦«}ttj|d¦«¦«}|j |¦«}t |d¦«tusJ‚||d|dfS)zÊ Returns a tuple of ``(relfspath, lineno, testname)`` for this item where ``relfspath`` is file path relative to ``config.rootpath`` and lineno is a 0-based line number. rrøra)r=r"râr9rrÚ_node_location_to_relpathrxr�)rSr÷r8Ú relfspaths r5r÷z Item.locationÿsu€ð—?’?Ñ$Ô$ˆÝ�BœI h¨q¤kÑ2Ô2Ñ3Ô3ˆØ”L×:Ò:¸4Ñ@Ô@ˆ Ý�H˜Q”KÑ Ô ¥CÐ'Ð'Ð'Ð'ؘ8 Aœ;¨°¬ Ð4Ð4r7)NNNNrë)rGrRrlrìÚnextitemr rr�rYr*r6r;rrrñr=rr÷rmrns@r5rr–saø€€€€€ððð €Hð Ø#'Ø'+Ø $ð =ð=ð˜Ô ð =ð ˜)Ô$ð =𠘔 ð =ð ð=ð=ð=ð=ð=ð=ð:ðððð:RðRðRðRð? sð?°ð?¸sð?Àtð?ð?ð?ð?ð" #˜E %Ð(:¸CÐ(?Ô"@À(È3Ä-ÐQTÐ"TÔUð #ð #ð #ð #ðð 5˜%  X¨c¤]°CÐ 7Ô8ð 5ð 5ð 5ñ„_ð 5ð 5ð 5ð 5ð 5r7r)IrârDÚinspectrÚpathlibrÚtypingrrrrr r r r r rrrrrrÚ _pytest._codeÚ_pytestrÚ_pytest._code.coderrrÚ_pytest.compatrrÚ_pytest.configrrÚ_pytest.deprecatedrrÚ_pytest.mark.structuresrrr Ú_pytest.outcomesr!Ú_pytest.pathlibr"r#Ú _pytest.stashr$Ú_pytest.warning_typesr%Ú _pytest.mainr&r'r0Ú__file__rprr�r6r<rHrIrxrLr>rñr�rûrrr%rr[r7r5úrRsðØ € € € Ø€€€ØÐÐÐÐÐØÐÐÐÐÐØÐÐÐÐÐØÐÐÐÐÐØÐÐÐÐÐØÐÐÐÐÐØÐÐÐÐÐØÐÐÐÐÐØ!Ð!Ð!Ð!Ð!Ð!ØÐÐÐÐÐØÐÐÐÐÐØÐÐÐÐÐØÐÐÐÐÐØÐÐÐÐÐØ Ð Ð Ð Ð Ð ØÐÐÐÐÐØÐÐÐÐÐàÐÐÐØ%Ð%Ð%Ð%Ð%Ð%Ø,Ð,Ð,Ð,Ð,Ð,Ø+Ð+Ð+Ð+Ð+Ð+Ø(Ð(Ð(Ð(Ð(Ð(Ø*Ð*Ð*Ð*Ð*Ð*Ø&Ð&Ð&Ð&Ð&Ð&Ø!Ð!Ð!Ð!Ð!Ð!Ø0Ð0Ð0Ð0Ð0Ð0ØBÐBÐBÐBÐBÐBØ3Ð3Ð3Ð3Ð3Ð3Ø(Ð(Ð(Ð(Ð(Ð(Ø1Ð1Ð1Ð1Ð1Ð1Ø0Ð0Ð0Ð0Ð0Ð0Ø!Ð!Ð!Ð!Ð!Ð!Ø(Ð(Ð(Ð(Ð(Ð(Ø&Ð&Ð&Ð&Ð&Ð&ØÐÐÐÐÐØ/Ð/Ð/Ð/Ð/Ð/àð3à$Ð$Ð$Ð$Ð$Ð$Ø2Ð2Ð2Ð2Ð2Ð2ð €à�$�wÔ'Ñ(Ô(Ô/€ð*˜cð* h¨s¤mð*ð*ð*ð*ðZ �dð  Kð °Dð ð ð ð ðØ�FŒ|ðà �4Œ.ðð �[Ô !ðð ð ðððð* ˆG�K vÐ .Ñ .Ô .€ ð4ð4ð4ð4ð4ˆtñ4ô4ð4ð