Ë
    |¾�j£  ã                   ój  — d Z ddlZddlmZ ddlZddlZddlZddlmZm	Z	 ej                  j                  dd«       ddlmZ ddlmZ ddlmZ d	d
lmZ d	dlmZmZmZmZ dZedd dz   edd z   ZdZ G d„ dej8                  «      Z G d„ dej8                  «      Zedk(  r ej@                  «        yy)z)Unit tests for the `DeviceAsync` class.

é    N)Úasynccontextmanager)Ú	mock_openÚpatchz..)ÚClientAsync)ÚProtocol)Ú	SyncAsyncé   )Úawaiter)ÚFakeStreamReaderÚFakeStreamWriterÚasync_mock_openÚasync_patchsl   ‰PNG

   IHDR   
   
   �2Ï½   sBIT|dˆ   	pHYs  a  a¨?§i   IDAT•c`ƒ  š ÊÓi    IEND®B`‚é   ó   ó!   Ohayou sekai.
Good morning world!c                   óœ   — e Zd Zed„ «       Zed„ «       Zed„ «       Zed„ «       Zed„ «       Zed„ «       Z	ed„ «       Z
ed„ «       Zed	„ «       Zy
)Ú
TestDevicec              ƒ   óT  K  — t        «       | _        t        dt        «       t	        «       f¬«      5  t        dj                  t        «      g d¢¬«      5  | j                  j                  d«      ƒ d {  –—† | _        d d d «       d d d «       y 7 Œ# 1 sw Y   ŒxY w# 1 sw Y   y xY w­w)Núasyncio.open_connection©Úreturn_valueú{}.FakeStreamReader.read)ó   OKAYs   000bs   serial test©Úside_effectÚserial)r   Úclientr   r   r   ÚformatÚ__name__Údevice©Úselfs    ú]/var/www/api.ozpay.ru/ozpay/venv/lib/python3.12/site-packages/test_async/test_device_async.pyÚsetUpzTestDevice.setUp   s’   è ø€ ä!“mˆŒäÐ2ÔBRÓBTÔVfÓVhÐAiÔjñ 	AÜÐ7×>Ñ>¼xÓHÒVxÔyñ AØ$(§K¡K×$6Ñ$6°xÓ$@×@�”÷A÷	Að 	Aà@ø÷Að Aú÷	Að 	AüsF   ‚/B(±#BÁBÁ3BÁ4	BÁ=BÂ	B(ÂBÂB	ÂBÂB%Â!B(c              ƒ   óL  K  — t        dt        «       t        «       f¬«      5  t        dj                  t        «      g d¢¬«      5  | j                  | j                  j                  d«      ƒ d {  –—† d«       d d d «       d d d «       y 7 Œ# 1 sw Y   ŒxY w# 1 sw Y   y xY w­w)Nr   r   r   )r   r   s   testó    r   r   ÚTESTÚtest)r   r   r   r   r   ÚassertEqualr    Úshellr!   s    r#   Ú
test_shellzTestDevice.test_shell'   s•   è ø€ äÐ2ÔBRÓBTÔVfÓVhÐAiÔjñ 	JÜÐ7×>Ñ>¼xÓHÒVô  Añ JØ× Ñ  t§{¡{×'8Ñ'8¸Ó'@×!@À&ÔI÷J÷	Jð 	Jà!@ø÷Jð Jú÷	Jð 	JüsF   ‚ B$¢#BÁ*BÁ/B
Á0	BÁ9BÂ	B$Â
BÂB	ÂBÂB!ÂB$c              ƒ   óœ  K  — t        dt        «       t        «       f¬«      5  t        dj                  t        «      d¬«      5  | j                  t        «      5  | j                  | j                  j                  d«      ƒ d {  –—† d«       d d d «       d d d «       d d d «       y 7 Œ"# 1 sw Y   ŒxY w# 1 sw Y   Œ xY w# 1 sw Y   y xY w­w)Nr   r   r   ó   FAILr'   r(   )
r   r   r   r   r   ÚassertRaisesÚRuntimeErrorr)   r    r*   r!   s    r#   Útest_shell_errorzTestDevice.test_shell_error-   s¼   è ø€ äÐ2ÔBRÓBTÔVfÓVhÐAiÔjñ 	NÜÐ7×>Ñ>¼xÓHÐW^Ô_ñ NØ×&Ñ&¤|Ó4ñ NØ×$Ñ$¨4¯;©;×+<Ñ+<¸VÓ+D×%DÀfÔM÷N÷N÷	Nð 	Nð &Eø÷Nð Nú÷Nð Nú÷	Nð 	Nüs^   ‚ C¢!C ÁB4Á*B(ÂB&Â	B(ÂB4ÂC Â	CÂ&B(Â(B1Â-B4Â4B=	Â9C Ã C	ÃCc           	   ƒ   ó´  K  — t        dt        «       t        «       f¬«      5  t        dj                  t        «      ddt
        ddg¬«      5  | j                  | j                  j                  «       ƒ d {  –—† t
        «       d d d «       d d d «       t        dt        «       t        «       f¬«      5  t        dj                  t        «      ddt        ddg¬«      5  | j                  | j                  j                  «       ƒ d {  –—† t
        «       d d d «       d d d «       y 7 Œ®# 1 sw Y   Œ¤xY w# 1 sw Y   Œ¨xY w7 Œ8# 1 sw Y   Œ.xY w# 1 sw Y   y xY w­w)Nr   r   r   r   r&   r   )
r   r   r   r   r   Ú	PNG_IMAGEr)   r    Ú	screencapÚPNG_IMAGE_NEEDS_REPLACINGr!   s    r#   Útest_screencapzTestDevice.test_screencap4   sW  è ø€ äÐ2ÔBRÓBTÔVfÓVhÐAiÔjñ 	KÜÐ7×>Ñ>¼xÓHÐW^Ð`gÔirÐtwð  zAð  WBô  Cñ KØ× Ñ  t§{¡{×'<Ñ'<Ó'>×!>Ä	ÔJ÷K÷	Kô Ð2ÔBRÓBTÔVfÓVhÐAiÔjñ 	KÜÐ7×>Ñ>¼xÓHÐW^Ð`gô  jCð  EHð  JQð  WRô  Sñ KØ× Ñ  t§{¡{×'<Ñ'<Ó'>×!>Ä	ÔJ÷K÷	Kð 	Kð "?ø÷Kð Kú÷	Kð 	Kúð "?ø÷Kð Kú÷	Kð 	Küsˆ   ‚ E¢*D2Á)D&Á5D$Á6D&ÂD2Â'EÂ2*EÃ)E ÄD>ÄE ÄEÄ	EÄ$D&Ä&D/	Ä+D2Ä2D;Ä7EÄ>E Å E		ÅEÅEÅEc              ƒ   ó”  K  — t        dd¬«      5  | j                  t        «      5  | j                  j	                  dd«      ƒ d {  –—†  d d d «       | j                  t        «      5  t        d«      }|j	                  ddd«      ƒ d {  –—†  d d d «       d d d «       y 7 ŒY# 1 sw Y   ŒXxY w7 Œ## 1 sw Y   Œ"xY w# 1 sw Y   y xY w­w)Núos.path.existsFr   ÚsrcÚdestÚUnusedÚmode)r   r.   ÚFileNotFoundErrorr    Úpushr   )r"   Úsyncs     r#   Útest_push_file_not_foundz#TestDevice.test_push_file_not_found>   s¸   è ø€ äÐ#°%Ô8ñ 	7Ø×"Ñ"Ô#4Ó5ñ 6Ø—k‘k×&Ñ& u¨fÓ5×5Ð5÷6ð ×"Ñ"Ô#4Ó5ñ 7Ü  Ó*�Ø—i‘i  v¨vÓ6×6Ð6÷7÷		7ð 	7à5ø÷6ð 6úð
 7ø÷7ð 7ú÷		7ð 	7üso   ‚C�B<¦ B"ÁB ÁB"ÁB<Á("B0Â
B.ÂB0ÂB<Â	CÂ B"Â"B+	Â'B<Â.B0Â0B9	Â5B<Â<CÃCc              ƒ   óš  K  — d„ }d}t        dd¬«      5  t        dd¬«      5  t        dt        j                  d«      ¬«      5  t        d	t        t        «      «      5  t        d
t        «       t        «       f¬«      5  t        dj                  t        «      dddt        ddg¬«      5  | j                  j                  dd|¬«      ƒ d {  –—†  d d d «       d d d «       d d d «       d d d «       d d d «       d d d «       y 7 Œ5# 1 sw Y   Œ4xY w# 1 sw Y   Œ8xY w# 1 sw Y   Œ<xY w# 1 sw Y   Œ@xY w# 1 sw Y   ŒDxY w# 1 sw Y   y xY w­w)Nc                   ó   — y )N© )ÚargsÚkwargss     r#   Úprogressz&TestDevice.test_push.<locals>.progressJ   s   € Ør&   r   r7   Tr   úos.path.isfilezos.stat)
é{   rG   rG   rG   rG   rG   rG   rG   rG   rG   úppadb.sync_async.aiofiles.openr   r   r   r&   r   r8   r9   )rE   )r   ÚosÚstat_resultr   ÚFILEDATAr   r   r   r   r   r4   r    r=   )r"   rE   Úfiledatas      r#   Ú	test_pushzTestDevice.test_pushH   s—  è ø€ ò	ð 9ˆÜÐ#°$Ô7ñ 	M¼Ð?OÐ^bÔ9cñ 	MÔejÐktô  DF÷  DRñ  DRð  S^ó  D_ô  f`ñ 	Mô  bgð  hHô  JYô  Zbó  Jcó  bdñ 	MÜÐ6ÔFVÓFXÔZjÓZlÐEmÔnñ MÜ Ð!;×!BÑ!BÄ8Ó!LÐ[bÐdkÐmtô  wPð  RUð  W^ð  [_ô  `ñ MØŸ+™+×*Ñ*¨5°&À8Ð*ÓL×LÐL÷M÷M÷	M÷ 	M÷ 	M÷ 	Mð 	Mð Mø÷Mð Mú÷Mð Mú÷	Mð 	Mú÷ 	Mð 	Mú÷ 	Mð 	Mú÷ 	Mð 	Müs¥   ‚E•D?£!D3ÁD'Á D	Á>+DÂ)"DÃDÃDÃDÃD	Ã D'Ã(D3Ã0D?Ã8	EÄDÄDÄDÄDÄD	ÄD$Ä D'Ä'D0Ä,D3Ä3D<	Ä8D?Ä?EÅEc              ƒ   óì  K  — t        dd¬«      5  t        dd¬«      5  t        dd¬«      5  t        ddd	g¬«      5  t        d
«      5  t        d«      5  | j                  j                  dd«      ƒ d {  –—†  d d d «       d d d «       d d d «       d d d «       d d d «       d d d «       y 7 Œ5# 1 sw Y   Œ4xY w# 1 sw Y   Œ8xY w# 1 sw Y   Œ<xY w# 1 sw Y   Œ@xY w# 1 sw Y   ŒDxY w# 1 sw Y   y xY w­w)Nr7   Tr   rF   Fzos.path.isdirzos.walk)Úroot1Údirs1Úfiles1)Úroot2Údirs2Úfiles2z$ppadb.device_async.DeviceAsync.shellz$ppadb.device_async.DeviceAsync._pushr8   r9   )r   r   r    r=   r!   s    r#   Útest_push_dirzTestDevice.test_push_dirS   s  è ø€ äÐ#°$Ô7ñ 	6¼Ð?OÐ^cÔ9dñ 	6ÔfkÐl{ð  KOô  gPñ 	6ô  RWð  Xað  qMð  Okð  plô  Rmñ 	6ÜÐCÓDñ 6ÄkÐRxÓFyñ 6Ø—k‘k×&Ñ& u¨fÓ5×5Ð5÷6÷ 6÷	6÷ 	6÷ 	6÷ 	6ð 	6à5ø÷6ð 6ú÷ 6ð 6ú÷	6ð 	6ú÷ 	6ð 	6ú÷ 	6ð 	6ú÷ 	6ð 	6üs£   ‚C4�C(žC¬C¼C	ÁB8Á B,Á4B*Á5B,Á9B8ÂC	Â	CÂCÂC(Â!	C4Â*B,Â,B5Â1B8Â8CÂ=C	ÃCÃ	CÃCÃCÃC%	Ã!C(Ã(C1Ã-C4c              ƒ   óº  K  — t        dt        «       t        «       f¬«      5  t        dj                  t        «      dddt        j                  d«      dddg¬	«      5  t        d
t        t        «      «      5  | j                  j                  dd«      ƒ d {  –—†  d d d «       d d d «       d d d «       y 7 Œ# 1 sw Y   ŒxY w# 1 sw Y   Œ xY w# 1 sw Y   y xY w­w)Nr   r   r   r   s   DATAé   ó   TESTó   DONEr   rH   r8   r9   ©r   r   r   r   r   r   Ú_little_endianr   r   rK   r    Úpullr!   s    r#   Ú	test_pullzTestDevice.test_pullY   óì   è ø€ äÐ2ÔBRÓBTÔVfÓVhÐAiÔjñ 	:ÜÐ7×>Ñ>¼xÓHÐW^Ð`gÐipÔr{÷  sKñ  sKð  LMó  sNð  PWð  Y`ð  bið  Wjô  kñ :ÜÐ;¼_ÌXÓ=VÓWñ :ØŸ+™+×*Ñ*¨5°&Ó9×9Ð9÷:÷:÷	:ð 	:ð :ø÷:ð :ú÷:ð :ú÷	:ð 	:üó^   ‚ C¢;CÁCÁ7 B7ÂB5
ÂB7ÂCÂ$CÂ,	CÂ5B7Â7C Â<CÃC	ÃCÃCÃCc              ƒ   óº  K  — t        dt        «       t        «       f¬«      5  t        dj                  t        «      dddt        j                  d«      dddg¬	«      5  t        d
t        t        «      «      5  | j                  j                  dd«      ƒ d {  –—†  d d d «       d d d «       d d d «       y 7 Œ# 1 sw Y   ŒxY w# 1 sw Y   Œ xY w# 1 sw Y   y xY w­w)Nr   r   r   r   r-   rW   rX   rY   r   rH   r8   r9   rZ   r!   s    r#   Útest_pull_failzTestDevice.test_pull_fail`   r^   r_   N)r   Ú
__module__Ú__qualname__r
   r$   r+   r0   r5   r?   rM   rU   r]   ra   rB   r&   r#   r   r      s¾   „ ØñAó ðAð ñJó ðJð
 ñNó ðNð ñKó ðKð ñ7ó ð7ð ñMó ðMð ñ6ó ð6ð
 ñ:ó ð:ð ñ:ó ñ:r&   r   c                   ó   — e Zd Zd„ Zy)ÚTestProtocolc           	      ó”   — t        d«      D ]:  }| j                  |t        j                  t        j                  |«      «      «       Œ< y )Né   )Úranger)   r   Údecode_lengthÚencode_length)r"   Úis     r#   Útest_encode_decode_lengthz&TestProtocol.test_encode_decode_lengthi   s=   € Ü�w“ò 	SˆAØ×Ñ˜Q¤× 6Ñ 6´x×7MÑ7MÈaÓ7PÓ QÕRñ	Sr&   N)r   rb   rc   rl   rB   r&   r#   re   re   h   s   „ óSr&   re   Ú__main__)!Ú__doc__ÚasyncioÚ
contextlibr   rI   ÚsysÚunittestÚunittest.mockr   r   ÚpathÚinsertÚppadb.client_asyncr   Úppadb.protocolr   Úppadb.sync_asyncr   Úasync_wrapperr
   Úpatchersr   r   r   r   r2   r4   rK   ÚTestCaser   re   r   ÚmainrB   r&   r#   ú<module>r}      s®   ðñó
 Ý *Û 	Û 
Û ß *à ‡�‡���4Ô å *Ý #Ý &å "ß VÓ Vð I€	à% b q˜M¨EÑ1°I¸a¸b°MÑAÐ à0€ôG:�×"Ñ"ô G:ôTS�8×$Ñ$ô Sð ˆzÒØ€H‡M�M…Oð r&   