Ë
    ®Ýjp
  ã                   ó    — d Z ddlZddlZddlmZ ddlmZ ddlmZ ddl	m
Z
  G d„ dej                  «      Zed	k(  r ej                  «        yy)
uÍ   Ehemals ExecutionClearance mit Aussteller-String (fÃ¤lschbar).

Neuer Vertrag: HMAC-SHA256-Clearance (aria_router.authorization). Die sechs
Testnamen bleiben, ihre Absicht auch; siehe docs/AENDERUNGEN.md.
é    N)ÚPath)ÚAuthorizationError)ÚPrivacyTier)ÚAdapterHarnessc                   óH   — e Zd Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Z	d„ Z
d	„ Zd
„ Zy)ÚAuthorizationTestsc                 ó.  — t        j                  «       | _        t        t	        | j                  j
                  «      «      | _        d| _        | j                  j                  j                  ddt        j                  | j                  dd¬«      | _        y )NÚ@aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaújob-1ÚcodexÚ1©Újob_idÚbackendÚprivacyÚcontext_digestÚ	sender_idÚchat_id)ÚtempfileÚTemporaryDirectoryÚ_tmpr   r   ÚnameÚharnessÚdigestÚissuerÚissuer   ÚPUBLICÚ	clearance©Úselfs    ú9/home/aria/aria-v3-dev/python/tests/test_authorization.pyÚsetUpzAuthorizationTests.setUp   sk   € Ü×/Ñ/Ó1ˆŒ	Ü%¤d¨4¯9©9¯>©>Ó&:Ó;ˆŒØˆŒØŸ™×,Ñ,×2Ñ2Ø G´[×5GÑ5GØŸ;™;°#¸sð 3ó 
ˆ�ó    c                 ó8   — | j                   j                  «        y ©N)r   Úcleanupr   s    r!   ÚtearDownzAuthorizationTests.tearDown   s   € Ø�	‰	×ÑÕr#   c                 óÄ   — t        dd| j                  t        j                  dd¬«      }|j	                  |«        | j
                  j                  j                  |fi |¤ŽS )Nr   r   r   )r   r   r   r   r   r   )Údictr   r   r   Úupdater   ÚverifierÚverify)r    r   Ú	overridesÚargss       r!   r,   zAuthorizationTests.verify   sR   € Ü˜G¨GÀDÇKÁKÜ'×.Ñ.¸#ÀsôLˆà�‰�IÔØ+ˆt�|‰|×$Ñ$×+Ñ+¨IÑ>¸Ñ>Ð>r#   c                 ó´   — | j                  t        «      5 } ||i |¤Ž d d d «       | j                  j                  j                  |«       y # 1 sw Y   Œ0xY wr%   )ÚassertRaisesr   ÚassertEqualÚ	exceptionÚcode)r    r3   Úfuncr.   ÚkwargsÚctxs         r!   Ú
assertCodezAuthorizationTests.assertCode$   sO   € Ø×ÑÔ1Ó2ð 	"°cÙ�$Ð!˜&Ò!÷	"à×Ñ˜Ÿ™×+Ñ+¨TÕ2÷	"ð 	"ús   –	AÁAc                 ó:   — | j                  | j                  «       y r%   )r,   r   r   s    r!   Útest_valid_clearancez'AuthorizationTests.test_valid_clearance)   s   € Ø�‰�D—N‘NÕ#r#   c                 ó>   — | j                  d| j                  d «       y )NÚMISSING_CLEARANCE)r7   r,   r   s    r!   Útest_missing_clearancez)AuthorizationTests.test_missing_clearance,   s   € Ø�‰Ð+¨T¯[©[¸$Õ?r#   c                 óV   — | j                  d| j                  | j                  d¬«       y )NÚJOB_MISMATCHzjob-2)r   ©r7   r,   r   r   s    r!   Útest_wrong_jobz!AuthorizationTests.test_wrong_job/   s   € Ø�‰˜¨¯©°T·^±^ÈGˆÕTr#   c                 óV   — | j                  d| j                  | j                  d¬«       y )NÚBACKEND_MISMATCHÚclaude)r   r?   r   s    r!   Útest_wrong_backendz%AuthorizationTests.test_wrong_backend2   s    € Ø�‰Ð*¨D¯K©K¸¿¹ÐQYˆÕZr#   c           
      ó¢   — | j                  d| j                  j                  j                  ddt        j
                  | j                  dd¬«       y )NÚPRIVACY_NOT_PERMITTEDr   r   r   r   )r7   r   r   r   r   ÚCONFIDENTIALr   r   s    r!   Útest_deniedzAuthorizationTests.test_denied5   sC   € à�‰Ð/°·±×1DÑ1D×1JÑ1JÐSZÐdkÜ +× 8Ñ 8ÈÏÉÐ`cØ #ð 	õ 	%r#   c           	      ó*  — t        j                  «       5 }t        t        |«      «      }|j                  j                  ddt        j                  | j                  dd¬«      }d d d «       | j                  d| j                  «       y # 1 sw Y   Œ'xY w)Nr   r   r   r   ÚINVALID_SIGNATURE)r   r   r   r   r   r   r   r   r   r7   r,   )r    ÚotherÚforgerÚforgeds       r!   Útest_untrusted_approverz*AuthorizationTests.test_untrusted_approver;   s�   € ä×(Ñ(Ó*ð 	a¨eÜ#¤D¨£KÓ0ˆFØ—]‘]×(Ñ(°ÀÔR]×RdÑRdØ8<¿¹ÈsÐ\_ð )ó aˆF÷	að 	�‰Ð+¨T¯[©[¸&ÕA÷		að 	aús   •AB	Â	BN)Ú__name__Ú
__module__Ú__qualname__r"   r'   r,   r7   r9   r<   r@   rD   rH   rN   © r#   r!   r   r      s8   „ ò
òò?ò3ò
$ò@òUò[ò%óBr#   r   Ú__main__)Ú__doc__r   ÚunittestÚpathlibr   Úaria_router.authorizationr   Úaria_router.corer   Útests.helpersr   ÚTestCaser   rO   ÚmainrR   r#   r!   ú<module>r\      sM   ðñó
 Û Ý å 8Ý (å (ô1B˜×*Ñ*ô 1Bðh ˆzÒØ€H‡M�M…Oð r#   