§
    nÈj«	  ã                   ó°   — d Z ddlZddlmc mZ ddlZddlm	Z	 ddl
Z
ddlmZ ddlmZmZmZmZ e
j                             dg d¢¦  «        d„ ¦   «         ZdS )	u@   END å°¾åŒ…å�‘é€�å¼‚å¸¸å’Œä¸Šä¼ ç¡¬è¿‡æœŸçš„èµ„æº�é‡Šæ”¾å›žå½’ã€‚é    N)ÚSimpleNamespace)ÚVoiceManager)Ú	FakeAgentÚFakeSTTÚstartÚchunkÚaction)ÚexpiryÚcancelÚend_transport_failurec                 óJ   ‡ — ˆ fd„}t          j         |¦   «         ¦  «         d S )Nc               “   óø  •‡!‡"‡#K  — t          dd¬¦  «        } t          dd¦  «        Š!g Š# G d„ dt          ¦  «        } |¦   «         }dgŠ"ˆ"ˆ#fd	„}t          |d
„ ˆ!fd„|d„ d„ ¦  «        }	 |                     | t          ¦   «         ¦  «        ƒ d {V —† |                     | t          ¦   «         ¦  «        ƒ d {V —† |                     | ¦  «        }|j        }|sxddt          j
        ¦   «         v st          j        |¦  «        rt          j        |¦  «        ndt          j        |¦  «        dœz  }t          t          j        |¦  «        ¦  «        ‚d }‰$dk    r2|                     | ¦  «         |                     | |¦  «        ƒ d {V —† nc‰$dk    r,|                     | t%          dd¬¦  «        ¦  «        ƒ d {V —† n1d‰"d<   |                     | t%          ddd¬¦  «        ¦  «        ƒ d {V —† t'          j        t+          |j        ¦  «        Ž ƒ d {V —† g }|j        }| }	|	}
|	r‰!j        }| }|}
|
�sddt          j
        ¦   «         v st          j        |¦  «        rt          j        |¦  «        ndt          j        |¦  «        dœz  }|                     |¦  «         |	rlddt          j
        ¦   «         v st          j        ‰!¦  «        rt          j        ‰!¦  «        ndt          j        |¦  «        dœz  }|                     |¦  «         t          j        |d¦  «        i z  }d d!|iz  }t          t          j        |¦  «        ¦  «        ‚d x}
x}x}x}	x}}d‰"d<   |                     | t%          d"d¬¦  «        ¦  «        ƒ d {V —† |                     | t%          dd¬¦  «        ¦  «        ƒ d {V —† ‰$d#k    �rÍg }|j        }d$}||k    }	|	}
|	r|j        }d%}||k    }|}
|
�s~t          j        d&|	fd'||f¦  «        d(t          j
        ¦   «         v st          j        |¦  «        rt          j        |¦  «        nd(t          j        |¦  «        t          j        |¦  «        d)œz  }d*d+|iz  }|                     |¦  «         |	ržt          j        d&|fd,||f¦  «        dt          j
        ¦   «         v st          j        |¦  «        rt          j        |¦  «        ndt          j        |¦  «        t          j        |¦  «        d-œz  }d.d/|iz  }|                     |¦  «         t          j        |d¦  «        i z  }d0d1|iz  }t          t          j        |¦  «        ¦  «        ‚d x}
x}x}x}	x}x}x}}‰#d2         d3         }
d4}|
|k    }|slt          j        d&|fd5|
|f¦  «        t          j        |
¦  «        t          j        |¦  «        d6œz  }d7d8|iz  }t          t          j        |¦  «        ¦  «        ‚d x}
x}}‰#d9         d3         }
d:}|
|k    }|slt          j        d&|fd5|
|f¦  «        t          j        |
¦  «        t          j        |¦  «        d6œz  }d7d8|iz  }t          t          j        |¦  «        ¦  «        ‚d x}
x}}�n9g }|j        }d}||k    }	|	}
|	r|j        }| }|}
|
�sLt          j        d&|	fd'||f¦  «        d(t          j
        ¦   «         v st          j        |¦  «        rt          j        |¦  «        nd(t          j        |¦  «        t          j        |¦  «        d)œz  }d*d+|iz  }|                     |¦  «         |	rld;d<t          j
        ¦   «         v st          j        |¦  «        rt          j        |¦  «        nd<t          j        |¦  «        d=œz  }|                     |¦  «         t          j        |d¦  «        i z  }d>d?|iz  } t          t          j        | ¦  «        ¦  «        ‚d x}
x}x}x}	x}x}}d@„ ‰#D ¦   «         }t=          |¦  «        }| }	|	s•dAdBt          j
        ¦   «         v st          j        t<          ¦  «        rt          j        t<          ¦  «        ndBt          j        |¦  «        t          j        |¦  «        dCœz  }t          t          j        |¦  «        ¦  «        ‚d x}x}}	|                     ¦   «         ƒ d {V —† d S # |                     ¦   «         ƒ d {V —† w xY w)DNÚdÚc)Ú	device_idÚconnection_idÚpiz/tmpc                   ó"   ‡ — e Zd ZdZˆ fd„Zˆ xZS )úNtest_pcm_cleanup_and_terminal_transport_failure.<locals>.run.<locals>.Providerr   c              “   óv   •K  — | xj         dz  c_         t          ¦   «                              |¦  «        ƒ d {V —†S )Né   )ÚcallsÚsuperÚ
transcribe)ÚselfÚaudioÚ	__class__s     €úa/home/lighthouse/esp32-dev/.cache/main-promotion-test-20261009/server/tests/test_voice_cleanup.pyr   zYtest_pcm_cleanup_and_terminal_transport_failure.<locals>.run.<locals>.Provider.transcribe   s@   øè è € Ø�
”
˜a‘�
”
Ý"™WœW×/Ò/°Ñ6Ô6Ð6Ð6Ð6Ð6Ð6Ð6Ð6ó    )Ú__name__Ú
__module__Ú__qualname__r   r   Ú__classcell__)r   s   @r   ÚProviderr      s=   ø€ € € € € ØˆEð7ð 7ð 7ð 7ð 7ð 7ð 7ð 7ð 7r   r$   Fc              “   ód   •K  — ‰d         rt          d¦  «        ‚‰                     |¦  «         d S )Nr   ztail packet lost)ÚConnectionErrorÚappend)r   ÚeventÚbrokenÚeventss     €€r   ÚsendzJtest_pcm_cleanup_and_terminal_transport_failure.<locals>.run.<locals>.send   s:   øè è € Ø�aŒyð :Ý%Ð&8Ñ9Ô9Ð9Ø�MŠM˜%Ñ Ô Ð Ð Ð r   c                 ó   — dS )Nz
agent:pi:s© ©Ú_s    r   ú<lambda>zNtest_pcm_cleanup_and_terminal_transport_failure.<locals>.run.<locals>.<lambda>    s   € °<€ r   c                 ó   •— ‰S )Nr-   )r/   Úadapters    €r   r0   zNtest_pcm_cleanup_and_terminal_transport_failure.<locals>.run.<locals>.<lambda>    s   ø€ È7€ r   c                 ó   — dS )NTr-   r.   s    r   r0   zNtest_pcm_cleanup_and_terminal_transport_failure.<locals>.run.<locals>.<lambda>!   s   € ¨t€ r   c                  ó   — dS )NFr-   r-   r   r   r0   zNtest_pcm_cleanup_and_terminal_transport_failure.<locals>.run.<locals>.<lambda>!   s   € ¸U€ r   z'assert %(py2)s
{%(py2)s = %(py0)s.pcm
}Úreq)Úpy0Úpy2r
   r   Úvoice_cancelÚv)ÚtypeÚvoice_idTr   Ú	voice_endiÈ  )r:   r;   Útotal_bytesz$not %(py4)s
{%(py4)s = %(py2)s.pcm
})r7   Úpy4z'not %(py9)s
{%(py9)s = %(py7)s.inputs
}r2   )Úpy7Úpy9zassert %(py13)sÚpy13Úvoice_statusr   r   ÚAWAITING_CONFIRMATION)ú==)z-%(py4)s
{%(py4)s = %(py2)s.calls
} == %(py7)sÚprovider)r7   r>   r?   z%(py9)sr@   )z1%(py13)s
{%(py13)s = %(py11)s.state
} == %(py16)s)Úpy11rA   Úpy16z%(py18)sÚpy18zassert %(py21)sÚpy21éþÿÿÿr:   Úvoice_end_ack)z%(py1)s == %(py4)s)Úpy1r>   zassert %(py6)sÚpy6éÿÿÿÿÚvoice_transcriptz,not %(py13)s
{%(py13)s = %(py11)s.requests
}Úmanager)rF   rA   zassert %(py17)sÚpy17c              3   ó.   K  — | ]}|d          dk    V — ŒdS )r:   rK   Nr-   )Ú.0Úes     r   ú	<genexpr>zOtest_pcm_cleanup_and_terminal_transport_failure.<locals>.run.<locals>.<genexpr>:   s+   è è € ÐLÐLÀ˜q œy¨OÒ;ÐLÐLÐLÐLÐLÐLr   z0assert not %(py4)s
{%(py4)s = %(py0)s(%(py2)s)
}Úany)r6   r7   r>   ) r   r   r   r   Úhandler   r   Úcurrent_forÚpcmÚ@py_builtinsÚlocalsÚ
@pytest_arÚ_should_repr_global_nameÚ	_safereprÚAssertionErrorÚ_format_explanationÚsuspendÚexpireÚdictÚasyncioÚgatherÚlistÚtasksÚinputsr'   Ú_format_boolopr   ÚstateÚ_call_reprcompareÚrequestsrV   Úclose)%Údevicer$   rE   r+   rP   r5   Ú@py_assert1Ú@py_format3Ú@py_assert3Ú@py_assert5Ú@py_assert0Ú@py_assert8Ú@py_assert10Ú@py_format6Ú@py_format11Ú@py_format12Ú@py_format14Ú@py_assert6Ú@py_assert12Ú@py_assert15Ú@py_assert14Ú@py_format8Ú@py_format10Ú@py_format17Ú@py_format19Ú@py_format20Ú@py_format22Ú@py_assert2Ú@py_format5Ú@py_format7Ú@py_format15Ú@py_format16Ú@py_format18r2   r)   r*   r	   s%                                    @@@€r   Úrunz<test_pcm_cleanup_and_terminal_transport_failure.<locals>.run   sÔ
  øøøøè è € Ý ¨3¸cÐBÑBÔBˆÝ˜D &Ñ)Ô)ˆØˆð	7ð 	7ð 	7ð 	7ð 	7•wñ 	7ô 	7ð 	7ð �8‘:”:ˆØ�ˆð	!ð 	!ð 	!ð 	!ð 	!ð 	!õ
 ˜xÐ)?Ð)?ÐARÐARÐARÐARØ# ^ ^°]°]ñDô Dˆð	"Ø—.’. ­©¬Ñ1Ô1Ð1Ð1Ð1Ð1Ð1Ð1Ð1Ø—.’. ­©¬Ñ1Ô1Ð1Ð1Ð1Ð1Ð1Ð1Ð1Ø×%Ò% fÑ-Ô-ˆCØ”7ˆN�7ˆNˆNˆN�NŒN‰NŒNˆNˆN�NŒN�3‰NŒNˆN�NŒN�3‰NŒNˆNˆN�NŒN�7‰NŒNˆNˆN‰NˆN�N�NŒNˆN‰NŒN‰NŒNˆNˆNˆNØ˜Ò!Ð!Ø—’ Ñ'Ô'Ð'Ø—n’n V¨SÑ1Ô1Ð1Ð1Ð1Ð1Ð1Ð1Ð1Ð1Ø˜8Ò#Ð#Ø—n’n V­T°~ÐPSÐ-TÑ-TÔ-TÑUÔUÐUÐUÐUÐUÐUÐUÐUÐUà ��q‘	Ø—n’n V­T°{ÈSÐ^bÐ-cÑ-cÔ-cÑdÔdÐdÐdÐdÐdÐdÐdÐdÝ”.¥$ w¤}Ñ"5Ô"5Ð6Ð6Ð6Ð6Ð6Ð6Ð6Ð6Ø5Ð5�s”wÐ5�w�;Ð5�;Ð5�;Ð5 w¤~Ð5 ~Ð#5Ð5Ð#5Ð5Ð5Ñ5Ð5Ð5Õ5Ô5Ñ5Ô5Ð5Ð5Õ5Ô5�sÑ5Ô5Ð5Õ5Ô5�sÑ5Ô5Ð5Ð5Õ5Ô5�wÑ5Ô5Ð5Ð5Ñ5Ð5Ð5×5Ò5Ð5Ñ5Ô5Ð5�;Ð5Ð5Ð5Õ5Ô5Ñ5Ô5Ð5Ð5Õ5Ô5 wÑ5Ô5Ð5Õ5Ô5 wÑ5Ô5Ð5Ð5Õ5Ô5 ~Ñ5Ô5Ð5Ð5Ñ5Ð5Ð5×5Ò5Ð5Ñ5Ô5Ð5Õ5Ô5Ð5Ð5Ñ5Ô5Ð5Ñ5Ð5Ð5Ð5Ð5Ð5Ñ5Ð5Õ5Õ5Ô5Ð5Ñ5Ô5Ñ5Ô5Ð5Ð5Ð5Ð5Ð5Ð5Ð5Ð5Ð5Ð5Ð5Ð5Ð5ØˆF�1‰IØ—.’. ­°>ÈCÐ)PÑ)PÔ)PÑQÔQÐQÐQÐQÐQÐQÐQÐQØ—.’. ­°;ÈÐ)MÑ)MÔ)MÑNÔNÐNÐNÐNÐNÐNÐNÐNØÐ0Ò0Ñ0ØSÐS�x”~ÐS¨ÐS�~¨Ò*ÐSÐSÐSÐSÐS¨s¬yÐSÐ<SÐS¨yÐ<SÒ/SÐSÐSÐSÐSÑSÕSÔSÐSÐSÐSÐS�~¨ÐSÑSÔSÐSÕSÔSÑSÔSÐSÐSÕSÔS�xÑSÔSÐSÕSÔS�xÑSÔSÐSÐSÕSÔS�~ÑSÔSÕSÔS¨ÑSÔSÐSÐSÑSÐSÐSÐSÐSÐSÑSÐSÐS×SÒSÐSÑSÔSÐSÐSÐSÕSÔSÐSÐSÐSÐS¨yÐ<SÐSÑSÔSÐSÕSÔSÑSÔSÐSÐSÕSÔS¨sÑSÔSÐSÕSÔS¨sÑSÔSÐSÐSÕSÔS¨yÑSÔSÕSÔSÐ<SÑSÔSÐSÐSÑSÐSÐSÐSÐSÐSÑSÐSÐS×SÒSÐSÑSÔSÐSÕSÔSÐSÐSÑSÔSÐSÑSÐSÐSÐSÐSÐSÑSÐSÕSÕSÔSÐSÑSÔSÑSÔSÐSÐSÐSÐSÐSÐSÐSÐSÐSÐSÐSÐSÐSÐSÐSÐSÐSØ˜b”z &Ô)Ð<¨_Ð<Ð)¨_Ò<Ð<Ð<Ð<Õ<Ô<Ð<Ð<Ð<Ð<Ð)¨_Ð<Ñ<Ô<Õ<Ô<Ð)Ñ<Ô<Õ<Ô<¨_Ñ<Ô<Ð<Ð<Ñ<Ð<Ð<Ð<Ð<Ð<Ñ<Ð<Õ<Õ<Ô<Ð<Ñ<Ô<Ñ<Ô<Ð<Ð<Ð<Ð<Ð<Ð<Ð<Ø˜b”z &Ô)Ð?Ð-?Ð?Ð)Ð-?Ò?Ð?Ð?Ð?Õ?Ô?Ð?Ð?Ð?Ð?Ð)Ð-?Ð?Ñ?Ô?Õ?Ô?Ð)Ñ?Ô?Õ?Ô?Ð-?Ñ?Ô?Ð?Ð?Ñ?Ð?Ð?Ð?Ð?Ð?Ñ?Ð?Õ?Õ?Ô?Ð?Ñ?Ô?Ñ?Ô?Ð?Ð?Ð?Ð?Ð?Ð?Ð?Ñ?àCÐC�x”~ÐC¨ÐC�~¨Ò*ÐCÐCÐCÐCÐC°7Ô3CÐCÐ3CÐ/CÐCÐ/CÐCÐCÑCÕCÔCÐCÐCÐCÐC�~¨ÐCÑCÔCÐCÕCÔCÑCÔCÐCÐCÕCÔC�xÑCÔCÐCÕCÔC�xÑCÔCÐCÐCÕCÔC�~ÑCÔCÕCÔC¨ÑCÔCÐCÐCÑCÐCÐCÐCÐCÐCÑCÐCÐC×CÒCÐCÑCÔCÐCÐCÐCÐCÐCÕCÔCÑCÔCÐCÐCÕCÔC°7ÑCÔCÐCÕCÔC°7ÑCÔCÐCÐCÕCÔCÐ3CÑCÔCÐCÐCÑCÐCÐC×CÒCÐCÑCÔCÐCÕCÔCÐCÐCÑCÔCÐCÑCÐCÐCÐCÐCÐCÑCÐCÕCÕCÔCÐCÑCÔCÑCÔCÐCÐCÐCÐCÐCÐCÐCÐCÐCÐCÐCÐCÐCÐCÐCØLÐLÀVÐLÑLÔLÐL�3ÐLÑLÔLÐLÐLÐLÐLÐLÐLÐLÐLÕLÔLÑLÔLÐLÐLÕLÔL�3ÑLÔLÐLÕLÔL�3ÑLÔLÐLÐLÕLÔLÐLÑLÔLÕLÔLÐLÑLÔLÐLÐLÑLÐLÕLÕLÔLÐLÑLÔLÑLÔLÐLÐLÐLÐLÐLÐLÐLà—-’-‘/”/Ð!Ð!Ð!Ð!Ð!Ð!Ð!Ð!Ð!ø�'—-’-‘/”/Ð!Ð!Ð!Ð!Ð!Ð!Ð!Ð!øøøs   Á+ac ãc9)rd   rŠ   )r	   rŠ   s   ` r   Ú/test_pcm_cleanup_and_terminal_transport_failurer‹   
   s;   ø€ ð0"ð 0"ð 0"ð 0"ð 0"õb „K��‘”ÑÔÐÐÐr   )Ú__doc__ÚbuiltinsrZ   Ú_pytest.assertion.rewriteÚ	assertionÚrewriter\   rd   Útypesr   ÚpytestÚdevice_gateway.voicer   Útest_voice_settingsr   r   r   r   ÚmarkÚparametrizer‹   r-   r   r   ú<module>r—      s¿   ðØ FÐ FØ  € € € € € € € € € € € € €€€€Ø !Ð !Ð !Ð !Ð !Ð !à €€€Ø -Ð -Ð -Ð -Ð -Ð -Ø @Ð @Ð @Ð @Ð @Ð @Ð @Ð @Ð @Ð @Ð @Ð @ð „×Ò˜Ð#PÐ#PÐ#PÑQÔQð2ð 2ñ RÔQð2ð 2ð 2r   