Ë
    1Ýjä  ã                   óx   — d Z ddlZddlmZ ddlmZmZmZmZ  G d„ de«      Z	e
dk(  r ej                  «        yy)uM  Ehemals TelegramDryRunRouter (zweiter Entscheidungspfad am Gateway vorbei).
Der Dry-Run ist jetzt Gateway.shadow(): derselbe Entscheidungsweg wie
handle(), aber ohne AusfÃ¼hrung. BegrÃ¼ndete VertragsÃ¤nderungen in
docs/AENDERUNGEN.md (UNKNOWN geht nach Status quo an Claude, unbekannte
Befehle laufen als Nachricht durch die Policy).é    N)ÚHandling)ÚGROUP_IDÚOTHER_IDÚGatewayTestCaseÚphotoc                   ór   ‡ — e Zd Zˆ fd„Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Z	d„ Z
d	„ Zd
„ Zd„ Zd„ Zd„ Zd„ Zd„ Zˆ xZS )ÚTelegramDryRunTestsc                 ó`   •— t         ‰| �  «        | j                  dddiddidœi«      | _        y )NÚbackendsÚqualityéK   ©ÚcodexÚclaude)ÚsuperÚsetUpÚgatewayÚrouter)ÚselfÚ	__class__s    €ú;/home/aria/aria-v3-dev/python/tests/test_telegram_dryrun.pyr   zTelegramDryRunTests.setUp   s1   ø€ Ü‰‰ŒØ—l‘l J¸9Àb¸/ÐV_ÐacÐUdÑ0eÐ#fÓgˆ�ó    c                 ó\   — | j                   j                   | j                  ||fi |¤Ž«      S )N)r   ÚshadowÚrequest)r   Ú
message_idÚtextÚkwargss       r   r   zTelegramDryRunTests.shadow   s)   € Ø�{‰{×!Ñ! , $§,¡,¨z¸4Ñ"JÀ6Ñ"JÓKÐKr   c                 óÔ   — | j                  ddt        ¬«      }| j                  |j                  t        j
                  j                  «       | j                  |j                  d«       y )Né   ú#public hello)Ú	sender_idÚNOT_AUTHORIZED)r   r   ÚassertEqualÚplanned_handlingr   ÚDROPÚvalueÚcode©r   Úresults     r   Ú!test_unapproved_user_never_routedz5TelegramDryRunTests.test_unapproved_user_never_routed   sK   € Ø—‘˜Q ¼8�ÓDˆØ×Ñ˜×0Ñ0´(·-±-×2EÑ2EÔFØ×Ñ˜Ÿ™Ð&6Õ7r   c                 óž   — | j                  ddt        d¬«      }| j                  |j                  t        j
                  j                  «       y )Né   r!   Úgroup)Úchat_idÚ	chat_type)r   r   r$   r%   r   r&   r'   r)   s     r   Útest_groups_not_routedz*TelegramDryRunTests.test_groups_not_routed   s8   € Ø—‘˜Q ¼ÈW�ÓUˆØ×Ñ˜×0Ñ0´(·-±-×2EÑ2EÕFr   c                 ó”  — | j                  dd«      }| j                  |j                  d«       | j                  |j                  d«       | j                  ddgdgdœdd	œi«      }|j                  | j                  d
d«      «      }| j                  |j                  |j                  ft        j                  j                  d f«       y )Né   ÚhiÚunknownr   ÚprivacyÚpublicr   F)ÚmatrixÚclaude_status_quo_confidentialé   )r   r$   r6   ÚassertNotEqualÚbackendr   r   r%   r   ÚBLOCKEDr'   )r   r*   ÚstrictÚblockeds       r   Ú test_default_privacy_fail_closedz4TelegramDryRunTests.test_default_privacy_fail_closed   s±   € Ø—‘˜Q Ó%ˆØ×Ñ˜Ÿ™¨Ô3Ø×Ñ˜FŸN™N¨GÔ4Ø—‘˜yÀ¸zÐV^ÐU_Ñ5`ØMRñ+Tð Uó Vˆà—-‘- §¡¨R°Ó 6Ó7ˆØ×Ñ˜'×2Ñ2°G·O±OÐDÄx×GWÑGW×G]ÑG]Ð_cÐFdÕer   c                 ó°   — | j                  dd«      }| j                  |j                  |j                  |j                  ft
        j                  ddf«       y )Né   ú#public analyzer   F)r   r$   Úhandlingr<   Ú	deliveredr   ÚSHADOW_DECISION©r   Úrs     r   Útest_codex_tiez"TelegramDryRunTests.test_codex_tie'   sE   € Ø�K‰K˜Ð,Ó-ˆØ×Ñ˜!Ÿ*™* a§i¡i°·±Ð=Ä×@XÑ@XÐZaÐchÐ?iÕjr   c                 óè   — | j                  | j                  dd«      j                  t        j                  j
                  «       | j                  dd«      }| j                  |j                  d«       y )Né   ú/claudeé   rC   r   )r$   r   r%   r   ÚREPLYr'   r<   rG   s     r   Útest_manual_claudez&TelegramDryRunTests.test_manual_claude+   sR   € Ø×Ñ˜Ÿ™ Q¨	Ó2×CÑCÄXÇ^Á^×EYÑEYÔZØ�K‰K˜Ð,Ó-ˆØ×Ñ˜Ÿ™ HÕ-r   c                 ó  — | j                  dddii«      }|j                  | j                  dd«      «       |j                  | j                  dd«      «      }| j                  |j                  t
        j                  j                  «       y )Nr6   r9   Fé   rL   é   zKundendaten BMW©r   r   r   r$   r%   r   r=   r'   ©r   r   r*   s      r   Ú#test_manual_never_overrides_privacyz7TelegramDryRunTests.test_manual_never_overrides_privacy0   sn   € Ø—‘˜yÐ+KÈUÐ*SÐTÓUˆØ�‰�d—l‘l 1 iÓ0Ô1Ø—‘˜tŸ|™|¨AÐ/@ÓAÓBˆØ×Ñ˜×0Ñ0´(×2BÑ2B×2HÑ2HÕIr   c                 ó¤   — | j                  dd«       | j                  dd«       | j                  | j                  dd«      j                  d«       y )Né	   rL   é
   z/autoé   r!   r   )r   r$   r<   ©r   s    r   Útest_auto_resetsz$TelegramDryRunTests.test_auto_resets6   s?   € Ø�‰�A�yÔ!Ø�‰�B˜Ô Ø×Ñ˜Ÿ™ R¨Ó9×AÑAÀ7ÕKr   c                 ó�   — | j                  dd«      }| j                  |j                  t        j                  j
                  «       y )Né   z/status)r   r$   r%   r   ÚNOT_INTERCEPTEDr'   rG   s     r   Ú%test_status_preserves_pairing_commandz9TelegramDryRunTests.test_status_preserves_pairing_command;   s4   € Ø�K‰K˜˜IÓ&ˆØ×Ñ˜×+Ñ+¬X×-EÑ-E×-KÑ-KÕLr   c                 óÈ   — | j                  dd«      }| j                  |j                  t        j                  j
                  «       | j                  |j                  d«       y )Né   z
/somethingr   )r   r$   r%   r   ÚFORWARD_TO_CLAUDE_CHANNELr'   r<   rG   s     r   Ú.test_unknown_command_passes_to_existing_pluginzBTelegramDryRunTests.test_unknown_command_passes_to_existing_plugin?   sH   € Ø�K‰K˜˜LÓ)ˆØ×Ñ˜×+Ñ+¬X×-OÑ-O×-UÑ-UÔVØ×Ñ˜Ÿ™ HÕ-r   c                 ó®   — | j                  ddt        «       g¬«      }| j                  |j                  d«       | j	                  |j
                  d«       y )Né   z#public photo)Úattachmentsr   r5   )r   r   r;   r<   r$   r6   rG   s     r   Útest_attachment_deniedz*TelegramDryRunTests.test_attachment_deniedD   sB   € Ø�K‰K˜˜O¼%»'¸ˆKÓCˆØ×Ñ˜AŸI™I wÔ/Ø×Ñ˜Ÿ™ IÕ.r   c                 ó€   — | j                  dd«       | j                  | j                  dd«      j                  d«       y )Né   ÚhelloÚDUPLICATE_MESSAGE)r   r$   r(   rZ   s    r   Ú*test_duplicate_inbound_not_processed_twicez>TelegramDryRunTests.test_duplicate_inbound_not_processed_twiceI   s2   € Ø�‰�B˜Ô Ø×Ñ˜Ÿ™ R¨Ó1×6Ñ6Ð8KÕLr   c                 óä   — | j                  ddddiiidd i¬«      }|j                  | j                  dd«      «      }| j                  |j                  t
        j                  j                  «       y )	Nr   r   ÚenabledFr   )Úadapter_factoriesé   r!   rS   rT   s      r   Útest_unavailable_model_deniedz1TelegramDryRunTests.test_unavailable_model_deniedM   se   € Ø—‘˜z¨H°yÀ%Ð6HÐ+IÐJÐ_fÐhlÐ^m�ÓnˆØ—‘˜tŸ|™|¨B°Ó@ÓAˆØ×Ñ˜×0Ñ0´(×2BÑ2B×2HÑ2HÕIr   c                 ó$  — | j                  dd«      }| j                  |j                  «       | j                  | j                  j
                  d   j                  j                  g «       | j                  | j                  j                  g «       y )Né   r!   r   )	r   ÚassertFalserE   r$   r   ÚadaptersÚrunnerÚcallsÚsinkr)   s     r   Ú%test_no_worker_called_or_network_usedz9TelegramDryRunTests.test_no_worker_called_or_network_usedR   sk   € Ø—‘˜R Ó1ˆØ×Ñ˜×)Ñ)Ô*Ø×Ñ˜Ÿ™×-Ñ-¨gÑ6×=Ñ=×CÑCÀRÔHØ×Ñ˜Ÿ™×,Ñ,¨bÕ1r   )Ú__name__Ú
__module__Ú__qualname__r   r   r+   r1   r@   rI   rO   rU   r[   r_   rc   rg   rl   rq   ry   Ú__classcell__)r   s   @r   r	   r	      sX   ø„ ôhòLò8ò
Gòfòkò.ò
JòLò
Mò.ò
/ò
MòJö
2r   r	   Ú__main__)Ú__doc__ÚunittestÚaria_router.gatewayr   Útests.helpersr   r   r   r   r	   rz   Úmain© r   r   ú<module>r…      sA   ðñ3ó
 å (ç DÓ DôI2˜/ô I2ðX ˆzÒØ€H‡M�M…Oð r   