+
    ŽvjR*  ã                   óP  € R t ^ RIt^ RIt^ RIt^ RIt^ RIt^ RIt^ RIHt ]P                  ! R4      P                  ]P                  4       ]P                  ! R4      P                  ]P                  4       ]P                  ! RR7       R R ltR	 tR
 t]R8X  d
   ]! 4        R# R# )a  
Executable README & Smoke Test: A unified script to test and validate ALL examples
provided in the README.md, plus additional read-only health checks for core endpoints.
It dynamically creates required resources, runs the documented actions, and cleans up afterward.
N)ÚClientÚurllib3úmailjet_rest.clientz%(levelname)s - %(message)s)Úformatc                ó(   € V ^8„  d   QhR\         RR/# )é   ÚtitleÚreturnN)Ústr)r   s   "Ú_/var/www/html/daimler-pipeline/venv/lib/python3.14/site-packages/samples/smoke_readme_runner.pyÚ__annotate__r      s   € ÷ >ñ >”3ð >˜4ñ >ó    c                 ó.   € \        R R RV  R R 24       R# )Ú
u   
ðŸš€ RUNNING: Nú<============================================================)Úprint)r   s   &r   Úsectionr      s   € Ü	ˆBˆxˆjÐ(¨¨¨r°(°Ð
<Ö=r   c                ó  €  \         P                  ! R4      pVP                  pVP                  \         P                  4       V ! R/ VB pVP                  V4       VP
                  R9   d   \        RV R24       R# VP
                  R8X  d   \        RV R24       R# VP
                  R8X  d   \        RV R24       R# \        R	V R
VP
                   R24       R#   \         d   p\        R	T RT 24        Rp?R# Rp?ii ; i)zZExecutes a cleanup action without failing on permission (401) or consistency (404) errors.r   u   âœ… CLEANUP: z deleted successfully.i‘  u   âš ï¸� CLEANUP: z4 skipped (Permission denied: Operation not allowed).i”  z8 skipped (Not found: likely eventual consistency delay).u   â�Œ CLEANUP: z failed with status Ú.z raised unexpected exception: N© )éÈ   éÌ   )ÚloggingÚ	getLoggerÚlevelÚsetLevelÚCRITICALÚstatus_coder   Ú	Exception)ÚactionÚnameÚkwargsÚclient_loggerÚ	old_levelÚresÚes   &&,    r   Úsafe_cleanupr&      s÷   € ðGä×)Ò)Ð*?Ó@ˆØ!×'Ñ'ˆ	Ø×Ñœw×/Ñ/Ô0áÑ�vÑˆà×Ñ˜yÔ)à�?‰?˜jÔ(Ü�M $ Ð'=Ð>Ö?Ø�_‰_ Ô#ÜÐ$ T FÐ*^Ð_Ö`Ø�_‰_ Ô#ÜÐ$ T FÐ*bÐcÖdä�M $ Ð';¸C¿O¹OÐ;LÈAÐNÖOøÜô GÜ�˜d˜VÐ#AÀ!ÀÐE×FÒFûðGús*   ‚A:C  Á> C  Â  C  ÃC  Ã DÃ+DÄDc                  ó’  € \         P                  P                  R R4      p \         P                  P                  RR4      p\         P                  P                  RR4      pV '       d	   V'       g   \        R4       R# \	        W3RR7      ;_uu_ 4       p\	        W3RR7      ;_uu_ 4       p\	        T;'       g    W3R	R7      ;_uu_ 4       p\        R
4       RRRRRR/RRRRR/.RRRRRR/.RR/pVP                  P                  VR7      pVP                  ^È8X  g   Q RVP                   24       h\        R4       \        R4        VP                  P                  R R!/R"7       \        R#4       \        P                  ! RR&7      ;_uu_ 4       p	\        P                  ! R'4       VP                  P                  R(R)7       \        ;QJ d    R* V	 4       F  '       g   K   RM	  R(M! R* V	 4       4      '       d   \        R+4       RRR4       \        R,4       R-\         P"                  ! 4       P$                  R.,           R/2p
VP                  P                  RV
/R7      pVP                  ^É8X  g   Q hVP'                  4       R0,          ^ ,          R1,          p\        R2V 24       VP                  P                  R3^R4R5/R67      pVP                  ^È8X  g   Q h\        R74       VP                  P                  VR87      pVP                  ^È8X  g   Q h\        R94       R:\         P"                  ! 4       P$                  R;,           2pVP(                  P                  R<R=RVR>R?/R7      pVP                  ^É8X  dŽ   VP'                  4       R0,          ^ ,          R1,          pR0RVR@RA/./pVP*                  P-                  W¿RB7      pVP                  ^È8X  g   Q h\        RC4       \/        VP(                  P0                  RDV 2VR87       \/        VP                  P0                  REV 2VR87       \        RF4       RG\         P"                  ! 4       P$                  R;,           2pVP2                  P                  RHRIRJVRKRL/R7      pVP                  ^É8X  dV   VP'                  4       R0,          ^ ,          R1,          p\        RM4       \/        VP2                  P0                  RNV 2VR87       RO\         P"                  ! 4       P$                  R;,           2pVP4                  P                  RJV/R7      pVP                  ^É8X  dV   VP'                  4       R0,          ^ ,          R1,          p\        RP4       \/        VP4                  P0                  RQV 2VR87       VP6                  P                  RRRSRTRURRV\         P"                  ! 4       P$                  R;,           2/R7      pVP                  ^É8X  dV   VP'                  4       R0,          ^ ,          R1,          p\        RW4       \/        VP6                  P0                  RXV 2VR87       VP8                  P                  RYRZR[R\R]R^/R67      pVP                  ^È8X  g   Q h\        R_4       \        R`4       \:        P<                  ! Ra4      pVP>                  pVPA                  \:        PB                  4        VPD                  P                  RbRcRdRe/R7      pVP                  Rf8X  g   Q h\        Rg4       VPA                  V4       RhpRiR|RjRk\F        PH                  ! V4      Rl3/pVPD                  P                  RmR/VRn7      pVP                  ^É8X  dp   VP'                  4       R0,          ^ ,          R1,          p\        RoV 24       \J        PL                  ! ^4       \/        VPD                  P0                  RpV 2VR87       M\        RqVP                   24       \        Rr4       RsVPN                  3RtVPP                  3RVPR                  3RuVPT                  3RvVPV                  3.pV FD  w  ppVP                  R3^/R67      pVP                  ^È8X  g   Q RwV 24       h\        RxV Ry24       KF  	  RRR4       RRR4       RRR4       \        RzR} R{R} 24       R#   \         d   p\        R$T R%24        Rp?ELkRp?ii ; i  + '       g   i     ELå; i  TPA                  T4       i ; i  + '       g   i     L…; i  + '       g   i     L�; i  + '       g   i     L›; i)~ÚMJ_APIKEY_PUBLICÚ ÚMJ_APIKEY_PRIVATEÚMJ_CONTENT_TOKENu@   âš ï¸� Missing Mailjet API credentials in environment variables.Nzv3.1)ÚauthÚversionÚv3Úv1z)Send API (v3.1) - Basic Email & TelemetryÚMessagesÚFromÚEmailzpilot@mailjet.comÚNamezMailjet PilotÚTozpassenger1@mailjet.comzPassenger 1ÚSubjectz$README Test: Your email flight plan!ÚTextPartzWelcome to Mailjet!ÚCustomIDz(Readme_Test
[CRITICAL]_INJECTION_ATTEMPTÚSandboxModeT)ÚdatazFailed Send API: u8   âœ… Send API passed (Check logs for sanitized CustomID).z'Security Guardrails (Active Protection)z
X-InjectedzValue
Attack: Payload)Úheadersu5   â�Œ Security Failure: CRLF Injection was not blocked!u3   âœ… Guardrail Success: Blocked Header Injection - 'Ú')ÚrecordÚalwaysF)Úverifyc              3   óR   "  € T F  pR \        VP                  4      9   x € K  	  R# 5i)zverify=FalseN)r
   Úmessage)Ú.0Úmsgs   & r   Ú	<genexpr>Ú#run_readme_tests.<locals>.<genexpr>g   s   é € ÐCÁ¸#�>¤S¨¯©Ó%5Ö5Ãùs   ‚%'u4   âœ… Guardrail Success: Insecure TLS Warning emitted.z)Standard REST Actions (Contact Lifecycle)Úreadme_test_:Né   Nz@mailjet.comÚDataÚIDu.   âœ… POST (Create Contact) passed. Created ID: ÚlimitÚsortz
Email desc)Úfiltersu%   âœ… GET (Read all/Pagination) passed.)Úidu   âœ… GET (Read one) passed.Ú
test_prop_:Né   NÚDatatyper
   Ú	NameSpaceÚstaticÚvalueÚJohn)rL   r9   u%   âœ… PUT (Update Contact Data) passed.z	Metadata zContact zEmail API Ecosystemz https://www.example.com/webhook_Ú	EventTypeÚopenÚUrlÚStatusÚaliveu(   âœ… Webhooks (eventcallbackurl) created.zWebhook zhttps://www.example.com/parse_u#   âœ… Parse API (parseroute) created.zParseRoute ÚDescriptionzREADME Test FilterÚ
Expressionz(age<35)ÚREADME_Filter_u)   âœ… Segmentation (contactfilter) created.zContactFilter ÚCounterSourceÚAPIKeyÚCounterTimingÚMessageÚCounterResolutionÚLifetimeu   âœ… Statcounters passed.zContent API (v1)r   r    ztest.pngÚ
image_dataÚinvalidi�  u)   âœ… Content API (Negative Upload) passed.z\iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAQAAAC1HAwCAAAAC0lEQVR42mNkYAAAAAYAAjCB0C8AAAAASUVORK5CYII=ÚmetadataÚfilezreadme_logo.pngz	image/pngzContent-Type)r:   Úfilesu)   âœ… Content API Upload passed. Image ID: zImage u*   âš ï¸� Content API Upload skipped/failed: z$Additional Health Checks (Read-Only)ÚSendersÚ	CampaignszLegacy Templateszv1 TemplateszHealth Check failed for u   âœ… z passed.r   u:   
ðŸŽ‰ ALL TESTS AND HEALTH CHECKS COMPLETED SUCCESSFULLY!
)Nz-{"name": "readme_logo.png", "Status": "open"}zapplication/jsonr   ),ÚosÚenvironÚgetr   r   r   ÚsendÚcreater   ÚtextÚcontactÚ
ValueErrorÚwarningsÚcatch_warningsÚsimplefilterÚanyÚuuidÚuuid4ÚhexÚjsonÚcontactmetadataÚcontactdataÚupdater&   ÚdeleteÚeventcallbackurlÚ
parserouteÚcontactfilterÚstatcountersr   r   r   r   r   Údata_imagesÚbase64Ú	b64decodeÚtimeÚsleepÚsenderÚcampaignr@   ÚtemplateÚ	templates)Úapi_keyÚ
api_secretÚcontent_tokenÚmailjet_v31Ú
mailjet_v3Ú
mailjet_v1Ú	data_sendr$   r%   ÚwÚ
test_emailÚ
contact_idÚ	prop_nameÚres_metaÚprop_idÚupdate_dataÚwebhook_urlÚw_idÚ	parse_urlÚp_idÚf_idr"   Ú
prev_levelÚ
b64_stringÚfiles_payloadÚimage_idÚendpoints_to_testr    Úendpoints                                r   Úrun_readme_testsr£   3   sv  € Ü�j‰j�n‰nÐ/°Ó4€GÜ—‘—‘Ð 3°RÓ8€JÜ—J‘J—N‘NÐ#5°rÓ:€MçŸ*ÜÐPÔQÙô 	�WÐ)°6×:Õ:¸kÜ�WÐ)°4×8Õ8¸JÜ�M×:Ð: gÐ%:ÀD×IÕIÈZô
 	Ð;Ô<àà˜WÐ&9¸6À?ÐSØ˜GÐ%=¸vÀ}ÐUÐVØÐEØÐ 5àÐ Kðð	ð ˜4ð
ˆ	ð ×Ñ×%Ñ%¨9Ð%Ó5ˆØ�‰ #Ô%ÐEÐ):¸3¿8¹8¸*Ð'EÓEÐ%ÜÐHÔIô
 	Ð9Ô:ð	NØ×Ñ×"Ñ"¨LÐ:TÐ+UÐ"ÔVÜÐIÔJô
 ×$Ò$¨D×1Õ1°QÜ×!Ò! (Ô+Ø×Ñ×"Ñ"¨%Ð"Ô0ß‹sÑCÁÓC�s�sŠsÑCÁÓC×CÒCÜÐLÔM÷	 2ô 	Ð;Ô<à#¤D§J¢J£L×$4Ñ$4°RÕ$8Ð#9¸ÐFˆ
Ø× Ñ ×'Ñ'¨g°zÐ-BÐ'ÓCˆØ�‰ #Ô%Ð%Ð%Ø—X‘X“Z Õ'¨Õ*¨4Õ0ˆ
ÜÐ>¸z¸lÐKÔLð × Ñ ×$Ñ$¨g°q¸&À,Ð-OÐ$ÓPˆØ�‰ #Ô%Ð%Ð%ÜÐ5Ô6ð × Ñ ×$Ñ$¨
Ð$Ó3ˆØ�‰ #Ô%Ð%Ð%ÜÐ*Ô+ð !¤§¢£×!1Ñ!1°"Õ!5Ð 6Ð7ˆ	Ø×-Ñ-×4Ñ4¸:ÀuÈfÐV_ÐalÐnvÐ:wÐ4ÓxˆØ×Ñ 3Ô&Ø—m‘m“o fÕ-¨aÕ0°Õ6ˆGØ! V¨Y¸ÀÐ$HÐ#IÐJˆKØ×(Ñ(×/Ñ/°:Ð/ÓPˆCØ—?‘? cÔ)Ð)Ð)ÜÐ9Ô:ä˜×3Ñ3×:Ñ:¸iÈÀyÐ<QÐV]Õ^ô 	�Z×'Ñ'×.Ñ.°(¸:¸,Ð0GÈJÕWô
 	Ð%Ô&ð 9¼¿º»×9IÑ9IÈ"Õ9MÐ8NÐOˆØ×)Ñ)×0Ñ0°{ÀFÈEÐS^Ð`hÐjqÐ6rÐ0ÓsˆØ�?‰?˜cÔ!Ø—8‘8“:˜fÕ% aÕ(¨Õ.ˆDÜÐ<Ô=Ü˜×4Ñ4×;Ñ;¸xÈÀvÐ=NÐSWÕXð 5´T·Z²Z³\×5EÑ5EÀbÕ5IÐ4JÐKˆ	Ø×#Ñ#×*Ñ*°¸	Ð0BÐ*ÓCˆØ�?‰?˜cÔ!Ø—8‘8“:˜fÕ% aÕ(¨Õ.ˆDÜÐ7Ô8Ü˜×.Ñ.×5Ñ5¸ÀTÀFÐ7KÐPTÕUð ×&Ñ&×-Ñ-àÐ3Ø˜jØ˜.¬¯ª«×)9Ñ)9¸"Õ)=Ð(>Ð?ðð .ó 
ˆð �?‰?˜cÔ!Ø—8‘8“:˜fÕ% aÕ(¨Õ.ˆDÜÐ=Ô>Ü˜×1Ñ1×8Ñ8¸NÈ4È&Ð:QÐVZÕ[ð ×%Ñ%×)Ñ)Ø$ h°ÀÐL_ÐakÐlð *ó 
ˆð �‰ #Ô%Ð%Ð%ÜÐ(Ô)ô
 	Ð"Ô#ô  ×)Ò)Ð*?Ó@ˆØ"×(Ñ(ˆ
Ø×Ñœw×/Ñ/Ô0ð	/Ø×(Ñ(×/Ñ/°f¸jÈ,ÐXaÐ5bÐ/ÓcˆCØ—?‘? cÔ)Ð)Ð)ÜÐ=Ô>à×"Ñ" :Ô.ð tˆ
àÐcØÐ&¬×(8Ò(8¸Ó(DÀkÐRð
ˆð ×$Ñ$×+Ñ+°^ÀTÐ4JÐR_Ð+Ó`ˆà�?‰?˜cÔ!Ø—x‘x“z &Õ)¨!Õ,¨TÕ2ˆHÜÐ=¸h¸ZÐHÔIô �JŠJ�qŒMä˜×/Ñ/×6Ñ6¸&ÀÀ
Ð8KÐPXÖYäÐ>¸s¿¹Ð>OÐPÔQô
 	Ð6Ô7ð ˜
×)Ñ)Ð*Ø˜*×-Ñ-Ð.Ø˜×+Ñ+Ð,Ø ×!4Ñ!4Ð5Ø˜Z×1Ñ1Ð2ð
Ðó 0‰NˆD�(Ø—,‘,¨° |�,Ó4ˆCØ—?‘? cÔ)ÐLÐ-EÀdÀVÐ+LÓLÐ)Ü�D˜˜˜hÐ'Ö(ñ 0÷Q 	J÷ 	9÷ 	;ô^ 
ˆBˆxˆjÐTÐU]ÐT^Ð
_Ö`øô[ ô 	NÜÐGÈÀsÈ!ÐL×MÒMûð	Nú÷ 2×1Ð1ûðB ×"Ñ" :Õ.ú÷K 	J×Iú÷ 	9×8ú÷ 	;×:ús¦   Âd6Â+!d#	ÃA=dÅ
)b>Å3dÆAc&Ç$c&Ç?c&È
SdÛ>c:ÜE?dâd#	âd6â>c#ã	cãdãc#ã#dã&c7ã1	dã:dädäd äd#	ä#d3ä.d6ä6e	Ú__main__)Ú__doc__r‚   ri   ru   r   rq   r„   Úmailjet_restr   r   r   ÚWARNINGÚDEBUGÚbasicConfigr   r&   r£   Ú__name__r   r   r   Ú<module>r«      s•   ðñó Û 	Û Û Û Û å ð × Ò �)Ó × %Ñ % g§o¡oÔ 6Ø × Ò Ð'Ó (× 1Ñ 1°'·-±-Ô @Ø × Ò Ð8Õ 9õ>òGò0zaðz ˆzÔÙÖñ r   