Ë
    Ýj”  ã                   óÎ   — d Z ddlZddlZddlZddlmZ ddlmZmZ ddl	m
Z
mZmZmZ defd„Z G d„ d	ej                   «      Z G d
„ de
«      Zedk(  r ej(                  «        yy)uV   ErgebnisprÃ¼fung: Secrets schwÃ¤rzen und markieren, Ausgabelimit, strukturierte Flags.é    N)ÚHandling)ÚTRUNCATION_MARKÚcheck_output)ÚGatewayTestCaseÚGuardedSubprocessRunnerÚ
deep_mergeÚfake_codex_templateÚreturnc                  óÖ   ‡ — t         j                  t         j                  z   Š dj                  d„ t	        d«      D «       «      dz   dj                  ˆ fd„t	        d«      D «       «      z   S )NÚ c              3   ób   K  — | ]'  }t        j                  t        j                  «      –— Œ) y ­w©N)ÚsecretsÚchoiceÚstringÚdigits)Ú.0Ú_s     ú8/home/aria/aria-v3-dev/python/tests/test_result_check.pyú	<genexpr>z!fake_bot_token.<locals>.<genexpr>   s   è ø€ ÒC°Q”7—>‘>¤&§-¡-×0ÑCùs   ‚-/é	   ú:c              3   óH   •K  — | ]  }t        j                  ‰«      –— Œ y ­wr   )r   r   )r   r   Úalphabets     €r   r   z!fake_bot_token.<locals>.<genexpr>   s!   øè ø€ ò T5Ø%&Œ�‰�x× ñT5ùs   ƒ"é#   )r   Úascii_lettersr   ÚjoinÚrange)r   s   @r   Úfake_bot_tokenr      s[   ø€ Ü×#Ñ#¤f§m¡mÑ3€HØ�7‰7ÑC¼%À»(ÔCÓCÀcÑIÈBÏGÉGó T5Ü*/°«)ôT5ó M5ñ 5ð 5ó    c                   ó0   — e Zd Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zy)ÚResultCheckTestsc                 ó  — t        «       }t        d|› d�d¬«      }| j                  ||j                  «       | j	                  d|j                  «       | j                  |j                  d«       | j	                  d|j                  «       y )NzDein Token: z fertigéè  ©Ú	max_charsõ'   [GESCHWÃ„RZT:secret.telegram_bot_token]©úsecret.telegram_bot_tokenÚREDACTED)r   r   ÚassertNotInÚtextÚassertInÚassertEqualÚ
redactionsÚflags©ÚselfÚtokenÚcheckeds      r   Útest_secret_redacted_and_markedz0ResultCheckTests.test_secret_redacted_and_marked   so   € ÜÓ ˆÜ ¨e¨W°GÐ<ÈÔMˆØ×Ñ˜ §¡Ô-Ø�‰Ð?ÀÇÁÔNØ×Ñ˜×+Ñ+Ð-KÔLØ�‰�j '§-¡-Õ0r    c                 óZ  — dt        j                  d«      z   }d}d|› d|› d�}t        |d¬«      }| j                  ||j                  «       | j                  d	|j                  «       | j                  d
|j                  «       | j                  t        |j                  «      h d£«       y )Nzsk-é   z9-----BEGIN PRIVATE KEY-----
abc
-----END PRIVATE KEY-----za z b z c password=hunter2hunter2r$   r%   zBEGIN PRIVATE KEYÚhunter2hunter2>   úsecret.assignmentúsecret.openai_keyúsecret.private_key_block)r   Ú	token_hexr   r+   r,   r.   Úsetr/   )r2   ÚkeyÚpemr,   r4   s        r   Útest_multiple_secret_typesz+ResultCheckTests.test_multiple_secret_types   sš   € Ø”g×'Ñ'¨Ó+Ñ+ˆØUˆØ�C�5˜˜C˜5Ð :Ð;ˆÜ˜t¨tÔ4ˆØ×Ñ˜˜gŸl™lÔ+Ø×ÑÐ,¨g¯l©lÔ;Ø×ÑÐ)¨7¯<©<Ô8Ø×Ñœ˜W×/Ñ/Ó0Ú_õ	ar    c                 óÒ   — d}t        d|› d�d¬«      }| j                  ||j                  «       | j                  d|j                  «       | j                  |j                  d«       y )Nz-123456789:BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB-z'Fehler bei https://api.telegram.org/botz/sendMessager$   r%   Ú"BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBr(   )r   r+   r,   r.   r/   r1   s      r   Útest_token_in_bot_url_redactedz/ResultCheckTests.test_token_in_bot_url_redacted&   s]   € Ø-ˆÜÐ!HÈÈÈ|Ð\ÐhlÔmˆØ×Ñ˜ §¡Ô-Ø×Ñ˜ 7§<¡<Ô0Ø×Ñ˜×+Ñ+Ð-KÕLr    c                 óØ   — t        ddz  d¬«      }| j                  |j                  «       | j                  |j                  dt
        z   «       | j                  d|j                  «       y )NÚxi N  éd   r%   ÚdxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxÚOUTPUT_TRUNCATED)r   Ú
assertTrueÚ	truncatedr.   r,   r   r-   r0   ©r2   r4   s     r   Útest_truncation_markedz'ResultCheckTests.test_truncation_marked-   sP   € Ü˜s U™{°cÔ:ˆØ�‰˜×)Ñ)Ô*Ø×Ñ˜Ÿ™ y´?Ñ'BÔCØ�‰Ð(¨'¯-©-Õ8r    c                 óv   — t        «       }t        d|z   d¬«      }| j                  |d d |j                  «       y )NÚ_AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAArF   r%   é
   )r   r   r+   r,   r1   s      r   Útest_redact_before_truncatez,ResultCheckTests.test_redact_before_truncate3   s5   € ÜÓ ˆÜ˜x¨%Ñ/¸3Ô?ˆØ×Ñ˜˜s ˜ W§\¡\Õ2r    c                 ó„   — t        dd¬«      }| j                  |j                  |j                  |j                  fd«       y )Nú
Alles gut.rF   r%   )rR   © F)r   r.   r,   r/   rJ   rK   s     r   Útest_clean_output_unchangedz,ResultCheckTests.test_clean_output_unchanged8   s6   € Ü˜|°sÔ;ˆØ×Ñ˜'Ÿ,™,¨×(:Ñ(:¸G×<MÑ<MÐNÐPiÕjr    N)	Ú__name__Ú
__module__Ú__qualname__r5   r@   rC   rL   rP   rT   rS   r    r   r"   r"      s#   „ ò1ò	aòMò9ò3ó
kr    r"   c                   ó*   — e Zd Zddœd„Zd„ Zd„ Zd„ Zy)ÚGatewayResultCheckTestsN©Úconfigc                ó�   — t        ddt        |g|¢­Ž ii|xs i «      }| j                  |t        | j                  dz  «      ¬«      S )NÚcodexÚcommand_templateÚwork)Úcodex_runner)r   r	   Úgatewayr   Úroot)r2   Úmoder[   ÚextraÚ	overridess        r   Úgateway_with_fakez)GatewayResultCheckTests.gateway_with_fake>   sP   € Ü Ð*<Ô>QÐRVÐ>_ÐY^Ò>_Ð)`ÐaÐciÒcoÐmoÓpˆ	Ø�|‰|˜IÔ4KÈDÏIÉIÐX^ÑL^Ó4_ˆ|Ó`Ð`r    c                 ó¸  — | j                  d«      }|j                  | j                  dd«      «      }| j                  |j                  t
        j                  «       | j                  d|j                  «       | j                  d|j                  «       | j                  |«      D �cg c]  }|d   dk(  sŒ|‘Œ c}d   }| j                  |d	   d
g«       y c c}w )NÚsecreté   z#public zeig mir wasr'   r*   ÚphaseÚoutcomeéÿÿÿÿr/   r)   )rf   ÚhandleÚrequestr.   Úhandlingr   ÚREPLYr-   Ú
reply_textr0   Úlog_records)r2   ra   ÚresultÚrrk   s        r   Ú!test_gateway_redacts_codex_outputz9GatewayResultCheckTests.test_gateway_redacts_codex_outputB   s¶   € Ø×(Ñ(¨Ó2ˆØ—‘ §¡¨QÐ0FÓ GÓHˆØ×Ñ˜Ÿ™¬(¯.©.Ô9Ø�‰Ð?À×ARÑARÔSØ�‰�j &§,¡,Ô/Ø"×.Ñ.¨wÓ7ÖS˜¸1¸W¹:ÈÓ;R’1ÒSÐTVÑWˆØ×Ñ˜ Ñ.Ð1LÐ0MÕNùò Ts   Â(CÂ6Cc                 ó  — | j                  dddddii¬«      }|j                  | j                  dd«      «      }| j                  d	|j                  «       | j                  t        |j                  «      dt        t        «      z   «       y )
NÚ
big_answerÚ20000ÚlimitsÚmax_reply_charsr$   rZ   é   z#public langrH   )	rf   rm   rn   r-   r0   r.   Úlenrq   r   ©r2   ra   rs   s      r   Ú"test_gateway_truncates_long_outputz:GatewayResultCheckTests.test_gateway_truncates_long_outputK   sv   € Ø×(Ñ(¨°wÈÐSdÐfjÐRkÐGlÐ(ÓmˆØ—‘ §¡¨Q°Ó ?Ó@ˆØ�‰Ð(¨&¯,©,Ô7Ø×Ñœ˜V×.Ñ.Ó/°¼¼OÓ8LÑ1LÕMr    c                 óæ   — | j                  dddddii¬«      }|j                  | j                  dd«      «      }| j                  |j                  |j
                  ft        j                  d	f«       y )
NÚfloodÚ100000r]   Úmax_output_bytesr$   rZ   é   z#public vielÚOUTPUT_LIMIT)rf   rm   rn   r.   ro   Úcoder   ÚFAILEDr}   s      r   Ú+test_gateway_runner_output_limit_is_failurezCGatewayResultCheckTests.test_gateway_runner_output_limit_is_failureQ   sd   € Ø×(Ñ(¨°(ÀGÐN`ÐbfÐMgÐChÐ(ÓiˆØ—‘ §¡¨Q°Ó ?Ó@ˆØ×Ñ˜&Ÿ/™/¨6¯;©;Ð7¼(¿/¹/È>Ð9ZÕ[r    )rU   rV   rW   rf   ru   r~   r‡   rS   r    r   rY   rY   =   s   „ Ø59ô aòOòNó\r    rY   Ú__main__)Ú__doc__r   r   ÚunittestÚaria_router.gatewayr   Úaria_router.result_checkr   r   Útests.helpersr   r   r   r	   Ústrr   ÚTestCaser"   rY   rU   ÚmainrS   r    r   ú<module>r‘      sf   ðÙ \Û Û Û å (ß Bç cÓ cð5˜ó 5ô(k�x×(Ñ(ô (kôV\˜oô \ð4 ˆzÒØ€H‡M�M…Oð r    