§
     ’jÑ!  ã                   ó  — d Z ddlZddlmc mZ ddlZddlZddl	m
Z
 ddlmZ ddlmZmZmZ ddlmZ ej        de
fd„¦   «         Zej        defd	„¦   «         Zd
efd„Zd
efd„Zd
efd„Zd
efd„Zd
efd„Zd
efd„Zde
fd„ZdS )zFComprehensive Unit & Integration Test Suite for DSCons Telegram Suite.é    N)Ú
TestClient)Úapp)ÚTelegramAlertSeverityÚTelegramAlertTypeÚTelegramServiceStatus)ÚTelegramServiceÚreturnc                 óÎ   — dd l mc mc mc m} ddlm}  |¦   «         }|                      |dd ¦  «         |                      |j        dd¦  «         t          t          ¦  «        S )Nr   )Úget_settingsÚtelegram_bot_tokenÚ	bot_tokenÚ )Ú5app.modules.integrations.presentation.telegram_routesÚmodulesÚintegrationsÚpresentationÚtelegram_routesÚapp.core.settingsr   ÚsetattrÚtelegram_servicer   r   )ÚmonkeypatchÚtrr   Úsettingss       ú/C:\Projects\DSCons\tests\test_telegram_suite.pyÚclientr      sŒ   € àFÐFÐFÐFÐFÐFÐFÐFÐFÐFÐFÐFÐFÐFÐFØ.Ð.Ð.Ð.Ð.Ð.àˆ|‰~Œ~€HØ×Ò˜Ð"6¸Ñ=Ô=Ð=Ø×Ò˜Ô+¨[¸"Ñ=Ô=Ð=Ý•c‰?Œ?Ðó    c                 óN   — |                       dd¦  «         t          d¬¦  «        S )NÚTELEGRAM_BOT_TOKENr   )r   )Úsetenvr   )r   s    r   r   r      s*   € à×ÒÐ+¨RÑ0Ô0Ð0Ý RÐ(Ñ(Ô(Ð(r   r   c                 óè	  — |                       ¦   «         }t          |t          ¦  «        }|�sddt          j        ¦   «         v st          j        t          ¦  «        rt          j        t          ¦  «        nddt          j        ¦   «         v st          j        |¦  «        rt          j        |¦  «        nddt          j        ¦   «         v st          j        t          ¦  «        rt          j        t          ¦  «        ndt          j        |¦  «        dœz  }t          t          j	        |¦  «        ¦  «        ‚d }|j
        }d}||u }|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  }t          t          j	        |¦  «        ¦  «        ‚d x}x}}d}|j        }||v }	|	sªt          j        d|	fd||f¦  «        t          j        |¦  «        dt          j        ¦   «         v st          j        |¦  «        rt          j        |¦  «        ndt          j        |¦  «        dœz  }d
d|iz  }t          t          j	        |¦  «        ¦  «        ‚d x}x}	}d}|j        }||v }	|	sªt          j        d|	fd||f¦  «        t          j        |¦  «        dt          j        ¦   «         v st          j        |¦  «        rt          j        |¦  «        ndt          j        |¦  «        dœz  }d
d|iz  }t          t          j	        |¦  «        ¦  «        ‚d x}x}	}d}|j        }||v }	|	sªt          j        d|	fd||f¦  «        t          j        |¦  «        dt          j        ¦   «         v st          j        |¦  «        rt          j        |¦  «        ndt          j        |¦  «        dœz  }d
d|iz  }t          t          j	        |¦  «        ¦  «        ‚d x}x}	}d}|j        }||v }	|	sªt          j        d|	fd||f¦  «        t          j        |¦  «        dt          j        ¦   «         v st          j        |¦  «        rt          j        |¦  «        ndt          j        |¦  «        dœz  }d
d|iz  }t          t          j	        |¦  «        ¦  «        ‚d x}x}	}d S )Nz5assert %(py4)s
{%(py4)s = %(py0)s(%(py1)s, %(py2)s)
}Ú
isinstanceÚstatusr   )Úpy0Úpy1Úpy2Úpy4T©Úis)z/%(py2)s
{%(py2)s = %(py0)s.enabled
} is %(py5)s©r#   r%   Úpy5úassert %(py7)sÚpy7ú/nhatky©Úin)z:%(py1)s in %(py5)s
{%(py5)s = %(py3)s.supported_commands
})r$   Úpy3r*   ú/duanú/camayz/ai)Ú
get_statusr!   r   Ú@py_builtinsÚlocalsÚ
@pytest_arÚ_should_repr_global_nameÚ	_safereprÚAssertionErrorÚ_format_explanationÚenabledÚ_call_reprcompareÚsupported_commands)
r   r"   Ú@py_assert3Ú@py_format5Ú@py_assert1Ú@py_assert4Ú@py_format6Ú@py_format8Ú@py_assert0Ú@py_assert2s
             r   Útest_telegram_service_statusrF   "   s€  € Ø×(Ò(Ñ*Ô*€FÝ�fÕ3Ñ4Ô4Ð4Ð4Ñ4Ð4Ð4Õ4Ô4Ñ4Ô4Ð4Ð4Õ4Ô4�:Ñ4Ô4Ð4Õ4Ô4�:Ñ4Ô4Ð4Ð4Ð4Õ4Ô4Ñ4Ô4Ð4Ð4Õ4Ô4�fÑ4Ô4Ð4Õ4Ô4�fÑ4Ô4Ð4Ð4Ð4Õ4Ô4Ñ4Ô4Ð4Ð4Õ4Ô4Õ3Ñ4Ô4Ð4Õ4Ô4Õ3Ñ4Ô4Ð4Ð4Õ4Ô4Ð4Ñ4Ô4Ð4Ð4Ñ4Ð4Õ4Õ4Ô4Ð4Ñ4Ô4Ñ4Ô4Ð4Ð4Ð4ØŒ>Ð!˜TÐ!ˆ>˜TÐ!Ð!Ð!Ð!Õ!Ô!Ð!Ð!Ð!Ð!ˆ>˜TÐ!Ñ!Ô!Ð!Õ!Ô!Ñ!Ô!Ð!Ð!Õ!Ô!ˆ6Ñ!Ô!Ð!Õ!Ô!ˆ6Ñ!Ô!Ð!Ð!Õ!Ô!ˆ>Ñ!Ô!Õ!Ô!˜TÑ!Ô!Ð!Ð!Ñ!Ð!Ð!Ð!Ð!Ð!Ñ!Ð!Õ!Õ!Ô!Ð!Ñ!Ô!Ñ!Ô!Ð!Ð!Ð!Ð!Ð!Ð!Ð!ØÐ1˜Ô1Ð1ˆ9Ð1Ð1Ð1Ð1Ð1Õ1Ô1Ð1Ð1Ð1Ð1ˆ9Ð1Ð1Ñ1Ô1Õ1Ô1ˆ9Ñ1Ô1Ð1Õ1Ô1Ñ1Ô1Ð1Ð1Õ1Ô1˜Ñ1Ô1Ð1Õ1Ô1˜Ñ1Ô1Ð1Ð1Õ1Ô1Ð1Ñ1Ô1Ð1Ð1Ñ1Ð1Ð1Ð1Ð1Ð1Ñ1Ð1Õ1Õ1Ô1Ð1Ñ1Ô1Ñ1Ô1Ð1Ð1Ð1Ð1Ð1Ð1Ð1ØÐ/�fÔ/Ð/ˆ7Ð/Ð/Ð/Ð/Ð/Õ/Ô/Ð/Ð/Ð/Ð/ˆ7Ð/Ð/Ñ/Ô/Õ/Ô/ˆ7Ñ/Ô/Ð/Õ/Ô/Ñ/Ô/Ð/Ð/Õ/Ô/�fÑ/Ô/Ð/Õ/Ô/�fÑ/Ô/Ð/Ð/Õ/Ô/Ð/Ñ/Ô/Ð/Ð/Ñ/Ð/Ð/Ð/Ð/Ð/Ñ/Ð/Õ/Õ/Ô/Ð/Ñ/Ô/Ñ/Ô/Ð/Ð/Ð/Ð/Ð/Ð/Ð/ØÐ0�vÔ0Ð0ˆ8Ð0Ð0Ð0Ð0Ð0Õ0Ô0Ð0Ð0Ð0Ð0ˆ8Ð0Ð0Ñ0Ô0Õ0Ô0ˆ8Ñ0Ô0Ð0Õ0Ô0Ñ0Ô0Ð0Ð0Õ0Ô0�vÑ0Ô0Ð0Õ0Ô0�vÑ0Ô0Ð0Ð0Õ0Ô0Ð0Ñ0Ô0Ð0Ð0Ñ0Ð0Ð0Ð0Ð0Ð0Ñ0Ð0Õ0Õ0Ô0Ð0Ñ0Ô0Ñ0Ô0Ð0Ð0Ð0Ð0Ð0Ð0Ð0ØÐ-�FÔ-Ð-ˆ5Ð-Ð-Ð-Ð-Ð-Õ-Ô-Ð-Ð-Ð-Ð-ˆ5Ð-Ð-Ñ-Ô-Õ-Ô-ˆ5Ñ-Ô-Ð-Õ-Ô-Ñ-Ô-Ð-Ð-Õ-Ô-�FÑ-Ô-Ð-Õ-Ô-�FÑ-Ô-Ð-Ð-Õ-Ô-Ð-Ñ-Ô-Ð-Ð-Ñ-Ð-Ð-Ð-Ð-Ð-Ñ-Ð-Õ-Õ-Ô-Ð-Ñ-Ô-Ñ-Ô-Ð-Ð-Ð-Ð-Ð-Ð-Ð-Ð-Ð-r   c                 ó°  — t          j        |                      dd¬¦  «        ¦  «        }|j        }d}||u }|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  }t          t	          j        |¦  «        ¦  «        ‚d x}x}}|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  }t          t	          j        |¦  «        ¦  «        ‚d x}x}}d}|j        }t          |¦  «        }	||	v }
|
�st	          j        d|
fd||	f¦  «        t	          j	        |¦  «        dt          j        ¦   «         v st	          j        t          ¦  «        rt	          j	        t          ¦  «        nddt          j        ¦   «         v st	          j        |¦  «        rt	          j	        |¦  «        ndt	          j	        |¦  «        t	          j	        |	¦  «        dœz  }dd|iz  }t          t	          j        |¦  «        ¦  «        ‚d x}x}
x}}	d S )Nz#<b>Test DSCons ERP Notification</b>Útest_channel_123©ÚtextÚchat_idTr'   ©z*%(py2)s
{%(py2)s = %(py0)s.ok
} is %(py5)sÚresr)   r+   r,   Úsimulated_success©ú==©z.%(py2)s
{%(py2)s = %(py0)s.status
} == %(py5)sz	mock-msg-r.   )zP%(py1)s in %(py8)s
{%(py8)s = %(py3)s(%(py6)s
{%(py6)s = %(py4)s.message_id
})
}Ústr)r$   r0   r&   Úpy6Úpy8zassert %(py10)sÚpy10)ÚasyncioÚrunÚsend_messageÚokr6   r<   r4   r5   r7   r8   r9   r:   r"   Ú
message_idrR   )r   rM   r@   rA   r>   rB   rC   rD   Ú@py_assert5Ú@py_assert7rE   Ú@py_format9Ú@py_format11s                r   Ú%test_telegram_send_message_simulationr_   ,   s1  € Ý
Œ+Ø×%Ò%Ø6Ø&ð 	&ñ 	
ô 	
ñô €Cð Œ6Ð�TÐˆ6�Tˆ>ÐÐÐÕÔÐÐÐÐˆ6�TÐÑÔÐÕÔÑÔÐÐÕÔˆ3ÑÔÐÕÔˆ3ÑÔÐÐÕÔˆ6ÑÔÕÔ�TÑÔÐÐÑÐÐÐÐÐÑÐÕÕÔÐÑÔÑÔÐÐÐÐÐÐÐØŒ:Ð,Ð,Ð,ˆ:Ð,Ò,Ð,Ð,Ð,Õ,Ô,Ð,Ð,Ð,Ð,ˆ:Ð,Ð,Ñ,Ô,Ð,Õ,Ô,Ñ,Ô,Ð,Ð,Õ,Ô,ˆ3Ñ,Ô,Ð,Õ,Ô,ˆ3Ñ,Ô,Ð,Ð,Õ,Ô,ˆ:Ñ,Ô,Õ,Ô,Ð,Ñ,Ô,Ð,Ð,Ñ,Ð,Ð,Ð,Ð,Ð,Ñ,Ð,Õ,Õ,Ô,Ð,Ñ,Ô,Ñ,Ô,Ð,Ð,Ð,Ð,Ð,Ð,Ð,ØÐ-˜cœnÐ-�#˜nÑ-Ô-Ð-ˆ;Ð-Ð-Ð-Ð-Ñ-Õ-Ô-Ð-Ð-Ð-Ð-ˆ;Ð-Ð-Ñ-Ô-Õ-Ô-ˆ;Ñ-Ô-Ð-Õ-Ô-Ñ-Ô-Ð-Ð-Õ-Ô-�#Ñ-Ô-Ð-Õ-Ô-�#Ñ-Ô-Ð-Ð-Ð-Õ-Ô-Ñ-Ô-Ð-Ð-Õ-Ô-˜cÑ-Ô-Ð-Õ-Ô-˜cÑ-Ô-Ð-Ð-Õ-Ô-˜nÑ-Ô-Õ-Ô-Ð-Ñ-Ô-Ð-Ð-Ñ-Ð-Ð-Ð-Ð-Ð-Ñ-Ð-Õ-Õ-Ô-Ð-Ñ-Ô-Ñ-Ô-Ð-Ð-Ð-Ð-Ð-Ð-Ð-Ð-Ð-Ð-Ð-r   c           
      óŒ  — t          j        |                      dt          j        t
          j        dg d¢d¬¦  «        ¦  «        }|j        }d}||u }|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  }t          t          j        |¦  «        ¦  «        ‚d x}x}}|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  }t          t          j        |¦  «        ¦  «        ‚d x}x}}d S )Nu5   VÆ°á»£t NgÃ¢n SÃ¡ch Háº¡ng Má»¥c Ä�Ã o Ä�áº¥t WBS 2.1úPILOT-NAM-HK-2026)u(   Chi phÃ­ thá»±c táº¿ AC: 185.000.000 â‚«u+   GiÃ¡ trá»‹ thu Ä‘Æ°á»£c EV: 160.000.000 â‚«zCPI: 0.86 (< 1.0)z2https://dinhsonconstruction.com/dashboard/projects)ÚtitleÚ
alert_typeÚseverityÚproject_nameÚdetailsÚ
action_urlTr'   rL   rM   r)   r+   r,   rN   rO   rQ   )rV   rW   Ú
send_alertr   ÚEVM_VARIANCEr   ÚWARNINGrY   r6   r<   r4   r5   r7   r8   r9   r:   r"   ©r   rM   r@   rA   r>   rB   rC   s          r   Útest_telegram_send_alertrl   8   s  € Ý
Œ+Ø×#Ò#ØIÝ(Ô5Ý*Ô2Ø,ðð ð ð
 Lð 	$ñ 	
ô 	
ñô €Cð Œ6Ð�TÐˆ6�Tˆ>ÐÐÐÕÔÐÐÐÐˆ6�TÐÑÔÐÕÔÑÔÐÐÕÔˆ3ÑÔÐÕÔˆ3ÑÔÐÐÕÔˆ6ÑÔÕÔ�TÑÔÐÐÑÐÐÐÐÐÑÐÕÕÔÐÑÔÑÔÐÐÐÐÐÐÐØŒ:Ð,Ð,Ð,ˆ:Ð,Ò,Ð,Ð,Ð,Õ,Ô,Ð,Ð,Ð,Ð,ˆ:Ð,Ð,Ñ,Ô,Ð,Õ,Ô,Ñ,Ô,Ð,Ð,Õ,Ô,ˆ3Ñ,Ô,Ð,Õ,Ô,ˆ3Ñ,Ô,Ð,Ð,Õ,Ô,ˆ:Ñ,Ô,Õ,Ô,Ð,Ñ,Ô,Ð,Ð,Ñ,Ð,Ð,Ð,Ð,Ð,Ñ,Ð,Õ,Õ,Ô,Ð,Ñ,Ô,Ñ,Ô,Ð,Ð,Ð,Ð,Ð,Ð,Ð,Ð,Ð,r   c                 óh  — t          j        |                      ddddddddgd	¬
¦  «        ¦  «        }|j        }d}||u }|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  }t          t	          j        |¦  «        ¦  «        ‚d x}x}}|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  }t          t	          j        |¦  «        ¦  «        ‚d x}x}}d S )Nra   u+   Cá»¥m cáº¥p nÆ°á»›c & Tráº¡m bÆ¡m Nam HÆ°ngú
2026-08-22u   Náº¯ng rÃ¡o 33Â°Cé"   é   u&   WBS 2.1: HoÃ n thÃ nh Ä‘Ã o há»‘ mÃ³ngu3   WBS 2.3: Ä�á»• bÃª tÃ´ng mÃ³ng thÆ°Æ¡ng pháº©m M300u=   Cháº¥t lÆ°á»£ng bÃª tÃ´ng Ä‘áº¡t yÃªu cáº§u, Ä‘á»™ sá»¥t 12cm)Úproject_codere   Ú
shift_dateÚweatherÚworkforce_countÚmachine_countÚ
activitiesÚsupervisor_notesTr'   rL   rM   r)   r+   r,   rN   rO   rQ   )rV   rW   Úsend_site_diary_reportrY   r6   r<   r4   r5   r7   r8   r9   r:   r"   rk   s          r   Ú$test_telegram_send_site_diary_reportry   K   s  € Ý
Œ+Ø×/Ò/Ø,ØFØ#Ø'ØØà8ØEðð ]ð 	0ñ 	
ô 	
ñô €Cð Œ6Ð�TÐˆ6�Tˆ>ÐÐÐÕÔÐÐÐÐˆ6�TÐÑÔÐÕÔÑÔÐÐÕÔˆ3ÑÔÐÕÔˆ3ÑÔÐÐÕÔˆ6ÑÔÕÔ�TÑÔÐÐÑÐÐÐÐÐÑÐÕÕÔÐÑÔÑÔÐÐÐÐÐÐÐØŒ:Ð,Ð,Ð,ˆ:Ð,Ò,Ð,Ð,Ð,Õ,Ô,Ð,Ð,Ð,Ð,ˆ:Ð,Ð,Ñ,Ô,Ð,Õ,Ô,Ñ,Ô,Ð,Ð,Õ,Ô,ˆ3Ñ,Ô,Ð,Õ,Ô,ˆ3Ñ,Ô,Ð,Ð,Õ,Ô,ˆ:Ñ,Ô,Õ,Ô,Ð,Ñ,Ô,Ð,Ð,Ñ,Ð,Ð,Ð,Ð,Ð,Ñ,Ð,Õ,Õ,Ô,Ð,Ñ,Ô,Ñ,Ô,Ð,Ð,Ð,Ð,Ð,Ð,Ð,Ð,Ð,r   c                 ó"  — t          j        |                      dd¬¦  «        ¦  «        }d}||v }|s—t          j        d|fd||f¦  «        t          j        |¦  «        dt          j        ¦   «         v st          j        |¦  «        rt          j        |¦  «        nddœz  }d	d
|iz  }t          t          j
        |¦  «        ¦  «        ‚d x}}d}||v }|s—t          j        d|fd||f¦  «        t          j        |¦  «        dt          j        ¦   «         v st          j        |¦  «        rt          j        |¦  «        nddœz  }d	d
|iz  }t          t          j
        |¦  «        ¦  «        ‚d x}}t          j        |                      d¦  «        ¦  «        }d}||v }|s—t          j        d|fd||f¦  «        t          j        |¦  «        dt          j        ¦   «         v st          j        |¦  «        rt          j        |¦  «        nddœz  }d	d
|iz  }t          t          j
        |¦  «        ¦  «        ‚d x}}t          j        |                      d¦  «        ¦  «        }d}||v }|s—t          j        d|fd||f¦  «        t          j        |¦  «        dt          j        ¦   «         v st          j        |¦  «        rt          j        |¦  «        nddœz  }d	d
|iz  }t          t          j
        |¦  «        ¦  «        ‚d x}}d}||v }|s—t          j        d|fd||f¦  «        t          j        |¦  «        dt          j        ¦   «         v st          j        |¦  «        rt          j        |¦  «        nddœz  }d	d
|iz  }t          t          j
        |¦  «        ¦  «        ‚d x}}t          j        |                      d¦  «        ¦  «        }d}||v }|s—t          j        d|fd||f¦  «        t          j        |¦  «        dt          j        ¦   «         v st          j        |¦  «        rt          j        |¦  «        nddœz  }d	d
|iz  }t          t          j
        |¦  «        ¦  «        ‚d x}}d}||v }|s—t          j        d|fd||f¦  «        t          j        |¦  «        dt          j        ¦   «         v st          j        |¦  «        rt          j        |¦  «        nddœz  }d	d
|iz  }t          t          j
        |¦  «        ¦  «        ‚d x}}t          j        |                      d¦  «        ¦  «        }	d}||	v }|s—t          j        d|fd||	f¦  «        t          j        |¦  «        dt          j        ¦   «         v st          j        |	¦  «        rt          j        |	¦  «        nddœz  }d	d
|iz  }t          t          j
        |¦  «        ¦  «        ‚d x}}t          j        |                      d¦  «        ¦  «        }
d}||
v }|s—t          j        d|fd||
f¦  «        t          j        |¦  «        dt          j        ¦   «         v st          j        |
¦  «        rt          j        |
¦  «        nddœz  }d	d
|iz  }t          t          j
        |¦  «        ¦  «        ‚d x}}d}||
v }|s—t          j        d|fd||
f¦  «        t          j        |¦  «        dt          j        ¦   «         v st          j        |
¦  «        rt          j        |
¦  «        nddœz  }d	d
|iz  }t          t          j
        |¦  «        ¦  «        ‚d x}}d}||
v }|s—t          j        d|fd||
f¦  «        t          j        |¦  «        dt          j        ¦   «         v st          j        |
¦  «        rt          j        |
¦  «        nddœz  }d	d
|iz  }t          t          j
        |¦  «        ¦  «        ‚d x}}t          j        |                      d¦  «        ¦  «        }d}||v }|s—t          j        d|fd||f¦  «        t          j        |¦  «        d t          j        ¦   «         v st          j        |¦  «        rt          j        |¦  «        nd dœz  }d	d
|iz  }t          t          j
        |¦  «        ¦  «        ‚d x}}d!}||v }|s—t          j        d|fd||f¦  «        t          j        |¦  «        d t          j        ¦   «         v st          j        |¦  «        rt          j        |¦  «        nd dœz  }d	d
|iz  }t          t          j
        |¦  «        ¦  «        ‚d x}}t          j        |                      d"¦  «        ¦  «        }d#}||v }|s—t          j        d|fd||f¦  «        t          j        |¦  «        d$t          j        ¦   «         v st          j        |¦  «        rt          j        |¦  «        nd$dœz  }d	d
|iz  }t          t          j
        |¦  «        ¦  «        ‚d x}}d%}||v }|s—t          j        d|fd||f¦  «        t          j        |¦  «        d$t          j        ¦   «         v st          j        |¦  «        rt          j        |¦  «        nd$dœz  }d	d
|iz  }t          t          j
        |¦  «        ¦  «        ‚d x}}t          j        |                      d&¦  «        ¦  «        }d'}||v }|s—t          j        d|fd||f¦  «        t          j        |¦  «        d(t          j        ¦   «         v st          j        |¦  «        rt          j        |¦  «        nd(dœz  }d	d
|iz  }t          t          j
        |¦  «        ¦  «        ‚d x}}d)}||v }|s—t          j        d|fd||f¦  «        t          j        |¦  «        d(t          j        ¦   «         v st          j        |¦  «        rt          j        |¦  «        nd(dœz  }d	d
|iz  }t          t          j
        |¦  «        ¦  «        ‚d x}}t          j        |                      d*¦  «        ¦  «        }d+}||v }|s—t          j        d|fd||f¦  «        t          j        |¦  «        d,t          j        ¦   «         v st          j        |¦  «        rt          j        |¦  «        nd,dœz  }d	d
|iz  }t          t          j
        |¦  «        ¦  «        ‚d x}}d-}||v }|s—t          j        d|fd||f¦  «        t          j        |¦  «        d,t          j        ¦   «         v st          j        |¦  «        rt          j        |¦  «        nd,dœz  }d	d
|iz  }t          t          j
        |¦  «        ¦  «        ‚d x}}t          j        |                      d.¦  «        ¦  «        }d/}||v }|s—t          j        d|fd||f¦  «        t          j        |¦  «        d0t          j        ¦   «         v st          j        |¦  «        rt          j        |¦  «        nd0dœz  }d	d
|iz  }t          t          j
        |¦  «        ¦  «        ‚d x}}d1}||v }|s—t          j        d|fd||f¦  «        t          j        |¦  «        d0t          j        ¦   «         v st          j        |¦  «        rt          j        |¦  «        nd0dœz  }d	d
|iz  }t          t          j
        |¦  «        ¦  «        ‚d x}}d S )2Nz/startu   QuÃ¢n)Ú	user_nameu   Xin chÃ o QuÃ¢nr.   )z%(py1)s in %(py3)sÚ	res_start)r$   r0   zassert %(py5)sr*   r1   ú/helpu)   HÆ¯á»šNG DáºªN Sá»¬ Dá»¤NG TELEGRAM SUITEÚres_helpra   Úres_duanzDA-KIENMINH-2026r2   zVolvo EW140EÚ	res_camayz
Thaco Autoz/hoadonu   106 HÃ³a Ä‘Æ¡nÚ
res_hoadonui   /nhatky HÃ´m nay trá»�i náº¯ng 34 Ä‘á»™ 28 thá»£ 3 ca mÃ¡y Ä‘á»• bÃª tÃ´ng mÃ³ng M300 láº¥y 03 tá»• máº«uu5   AI BÃ“C TÃ�CH NHáº¬T KÃ� CÃ”NG TRÆ¯á»œNG THÃ€NH CÃ”NGÚ
res_nhatkyu   28 NhÃ¢n sá»±ÚM300z/warroomzEXECUTIVE FINANCIAL WAR ROOMÚres_warroomu   NgÃ y An ToÃ nu(   /vattu 45m3 cÃ¡t vÃ ng bÃ£i Ä‘Ãºc cá»‘ngu4   Ä�Ãƒ KHá»žI Táº O PHIáº¾U YÃŠU Cáº¦U Cáº¤P Váº¬T TÆ¯Ú	res_vattuu   45m3 cÃ¡t vÃ ngz/telematicsu0   QUáº¢N LÃ� NHIÃŠN LIá»†U & Ä�á»ŠNH Má»¨C CA MÃ�YÚres_telematicsu
   LÃ­t/Giá»�z/doisoatu    BÃ�O CÃ�O Ä�á»�I SOÃ�T 3 CHIá»€UÚres_doisoatu   Khá»›p ná»‘i hoÃ n háº£ou*   /ai TiÃªu chuáº©n báº£o dÆ°á»¡ng bÃª tÃ´ngu   AI ChuyÃªn Gia Ká»¹ Thuáº­tÚres_aiu   Luáº­t XÃ¢y dá»±ng 2025)rV   rW   Úprocess_commandr6   r<   r8   r4   r5   r7   r9   r:   )r   r|   rD   rE   Ú@py_format4rB   r~   r   r€   r�   r‚   r„   r…   r†   r‡   rˆ   s                   r   Útest_telegram_process_commandsr‹   _   s£  € å”Ø×(Ò(¨¸WÐ(ÑEÔEñô €Ið Ð)Ð 	Ð)Ð)Ð)Ð)Õ)Ô)Ð)Ð)Ð)Ð)Ð 	Ð)Ñ)Ô)Õ)Ô)ÐÑ)Ô)Ð)Õ)Ô)Ñ)Ô)Ð)Ð)Õ)Ô) 	Ñ)Ô)Ð)Õ)Ô) 	Ñ)Ô)Ð)Ð)Ð)Ð)Ñ)Ð)Ð)Ð)Ð)Ð)Ñ)Ð)Õ)Õ)Ô)Ð)Ñ)Ô)Ñ)Ô)Ð)Ð)Ð)Ð)Ð)ØÐˆ7�iÐÐÐÐÕÔÐÐÐÐˆ7�iÐÑÔÕÔˆ7ÑÔÐÕÔÑÔÐÐÕÔ�iÑÔÐÕÔ�iÑÔÐÐÐÐÑÐÐÐÐÐÑÐÕÕÔÐÑÔÑÔÐÐÐÐÐõ Œ{Ð+×;Ò;¸GÑDÔDÑEÔE€HØ6ÐBÐ6¸(ÐBÐBÐBÐBÕBÔBÐBÐBÐBÐBÐ6¸(ÐBÑBÔBÕBÔBÐ6ÑBÔBÐBÕBÔBÑBÔBÐBÐBÕBÔB¸(ÑBÔBÐBÕBÔB¸(ÑBÔBÐBÐBÐBÐBÑBÐBÐBÐBÐBÐBÑBÐBÕBÕBÔBÐBÑBÔBÑBÔBÐBÐBÐBÐBÐBõ Œ{Ð+×;Ò;¸GÑDÔDÑEÔE€HØÐ*Ð (Ð*Ð*Ð*Ð*Õ*Ô*Ð*Ð*Ð*Ð*Ð (Ð*Ñ*Ô*Õ*Ô*ÐÑ*Ô*Ð*Õ*Ô*Ñ*Ô*Ð*Ð*Õ*Ô* (Ñ*Ô*Ð*Õ*Ô* (Ñ*Ô*Ð*Ð*Ð*Ð*Ñ*Ð*Ð*Ð*Ð*Ð*Ñ*Ð*Õ*Õ*Ô*Ð*Ñ*Ô*Ñ*Ô*Ð*Ð*Ð*Ð*Ð*ØÐ)Ð Ð)Ð)Ð)Ð)Õ)Ô)Ð)Ð)Ð)Ð)Ð Ð)Ñ)Ô)Õ)Ô)ÐÑ)Ô)Ð)Õ)Ô)Ñ)Ô)Ð)Ð)Õ)Ô) Ñ)Ô)Ð)Õ)Ô) Ñ)Ô)Ð)Ð)Ð)Ð)Ñ)Ð)Ð)Ð)Ð)Ð)Ñ)Ð)Õ)Õ)Ô)Ð)Ñ)Ô)Ñ)Ô)Ð)Ð)Ð)Ð)Ð)õ ”Ð,×<Ò<¸XÑFÔFÑGÔG€IØÐ&ˆ>˜YÐ&Ð&Ð&Ð&Õ&Ô&Ð&Ð&Ð&Ð&ˆ>˜YÐ&Ñ&Ô&Õ&Ô&ˆ>Ñ&Ô&Ð&Õ&Ô&Ñ&Ô&Ð&Ð&Õ&Ô&˜YÑ&Ô&Ð&Õ&Ô&˜YÑ&Ô&Ð&Ð&Ð&Ð&Ñ&Ð&Ð&Ð&Ð&Ð&Ñ&Ð&Õ&Õ&Ô&Ð&Ñ&Ô&Ñ&Ô&Ð&Ð&Ð&Ð&Ð&ØÐ$ˆ<˜9Ð$Ð$Ð$Ð$Õ$Ô$Ð$Ð$Ð$Ð$ˆ<˜9Ð$Ñ$Ô$Õ$Ô$ˆ<Ñ$Ô$Ð$Õ$Ô$Ñ$Ô$Ð$Ð$Õ$Ô$˜9Ñ$Ô$Ð$Õ$Ô$˜9Ñ$Ô$Ð$Ð$Ð$Ð$Ñ$Ð$Ð$Ð$Ð$Ð$Ñ$Ð$Õ$Õ$Ô$Ð$Ñ$Ô$Ñ$Ô$Ð$Ð$Ð$Ð$Ð$õ ”Ð-×=Ò=¸iÑHÔHÑIÔI€JØÐ)Ð˜zÐ)Ð)Ð)Ð)Õ)Ô)Ð)Ð)Ð)Ð)Ð˜zÐ)Ñ)Ô)Õ)Ô)ÐÑ)Ô)Ð)Õ)Ô)Ñ)Ô)Ð)Ð)Õ)Ô)˜zÑ)Ô)Ð)Õ)Ô)˜zÑ)Ô)Ð)Ð)Ð)Ð)Ñ)Ð)Ð)Ð)Ð)Ð)Ñ)Ð)Õ)Õ)Ô)Ð)Ñ)Ô)Ñ)Ô)Ð)Ð)Ð)Ð)Ð)õ ”Ø×(Ò(Øwñ	
ô 	
ñô €Jð
 CÐPÐBÀjÐPÐPÐPÐPÕPÔPÐPÐPÐPÐPÐBÀjÐPÑPÔPÕPÔPÐBÑPÔPÐPÕPÔPÑPÔPÐPÐPÕPÔPÀjÑPÔPÐPÕPÔPÀjÑPÔPÐPÐPÐPÐPÑPÐPÐPÐPÐPÐPÑPÐPÕPÕPÔPÐPÑPÔPÑPÔPÐPÐPÐPÐPÐPØÐ(ˆ?˜jÐ(Ð(Ð(Ð(Õ(Ô(Ð(Ð(Ð(Ð(ˆ?˜jÐ(Ñ(Ô(Õ(Ô(ˆ?Ñ(Ô(Ð(Õ(Ô(Ñ(Ô(Ð(Ð(Õ(Ô(˜jÑ(Ô(Ð(Õ(Ô(˜jÑ(Ô(Ð(Ð(Ð(Ð(Ñ(Ð(Ð(Ð(Ð(Ð(Ñ(Ð(Õ(Õ(Ô(Ð(Ñ(Ô(Ñ(Ô(Ð(Ð(Ð(Ð(Ð(ØÐˆ6�ZÐÐÐÐÕÔÐÐÐÐˆ6�ZÐÑÔÕÔˆ6ÑÔÐÕÔÑÔÐÐÕÔ�ZÑÔÐÕÔ�ZÑÔÐÐÐÐÑÐÐÐÐÐÑÐÕÕÔÐÑÔÑÔÐÐÐÐÐõ ”+Ð.×>Ò>¸zÑJÔJÑKÔK€KØ)Ð8Ð)¨[Ð8Ð8Ð8Ð8Õ8Ô8Ð8Ð8Ð8Ð8Ð)¨[Ð8Ñ8Ô8Õ8Ô8Ð)Ñ8Ô8Ð8Õ8Ô8Ñ8Ô8Ð8Ð8Õ8Ô8¨[Ñ8Ô8Ð8Õ8Ô8¨[Ñ8Ô8Ð8Ð8Ð8Ð8Ñ8Ð8Ð8Ð8Ð8Ð8Ñ8Ð8Õ8Õ8Ô8Ð8Ñ8Ô8Ñ8Ô8Ð8Ð8Ð8Ð8Ð8ØÐ*Ð˜{Ð*Ð*Ð*Ð*Õ*Ô*Ð*Ð*Ð*Ð*Ð˜{Ð*Ñ*Ô*Õ*Ô*ÐÑ*Ô*Ð*Õ*Ô*Ñ*Ô*Ð*Ð*Õ*Ô*˜{Ñ*Ô*Ð*Õ*Ô*˜{Ñ*Ô*Ð*Ð*Ð*Ð*Ñ*Ð*Ð*Ð*Ð*Ð*Ñ*Ð*Õ*Õ*Ô*Ð*Ñ*Ô*Ñ*Ô*Ð*Ð*Ð*Ð*Ð*õ ”Ø×(Ò(Ð)SÑTÔTñô €Ið BÐNÐAÀYÐNÐNÐNÐNÕNÔNÐNÐNÐNÐNÐAÀYÐNÑNÔNÕNÔNÐAÑNÔNÐNÕNÔNÑNÔNÐNÐNÕNÔNÀYÑNÔNÐNÕNÔNÀYÑNÔNÐNÐNÐNÐNÑNÐNÐNÐNÐNÐNÑNÐNÕNÕNÔNÐNÑNÔNÑNÔNÐNÐNÐNÐNÐNØÐ)Ð 	Ð)Ð)Ð)Ð)Õ)Ô)Ð)Ð)Ð)Ð)Ð 	Ð)Ñ)Ô)Õ)Ô)ÐÑ)Ô)Ð)Õ)Ô)Ñ)Ô)Ð)Ð)Õ)Ô) 	Ñ)Ô)Ð)Õ)Ô) 	Ñ)Ô)Ð)Ð)Ð)Ð)Ñ)Ð)Ð)Ð)Ð)Ð)Ñ)Ð)Õ)Õ)Ô)Ð)Ñ)Ô)Ñ)Ô)Ð)Ð)Ð)Ð)Ð)õ ”[Ð!1×!AÒ!AÀ-Ñ!PÔ!PÑQÔQ€NØ=ÐOÐ=ÀÐOÐOÐOÐOÕOÔOÐOÐOÐOÐOÐ=ÀÐOÑOÔOÕOÔOÐ=ÑOÔOÐOÕOÔOÑOÔOÐOÐOÕOÔOÀÑOÔOÐOÕOÔOÀÑOÔOÐOÐOÐOÐOÑOÐOÐOÐOÐOÐOÑOÐOÕOÕOÔOÐOÑOÔOÑOÔOÐOÐOÐOÐOÐOØÐ)ˆ<˜>Ð)Ð)Ð)Ð)Õ)Ô)Ð)Ð)Ð)Ð)ˆ<˜>Ð)Ñ)Ô)Õ)Ô)ˆ<Ñ)Ô)Ð)Õ)Ô)Ñ)Ô)Ð)Ð)Õ)Ô)˜>Ñ)Ô)Ð)Õ)Ô)˜>Ñ)Ô)Ð)Ð)Ð)Ð)Ñ)Ð)Ð)Ð)Ð)Ð)Ñ)Ð)Õ)Õ)Ô)Ð)Ñ)Ô)Ñ)Ô)Ð)Ð)Ð)Ð)Ð)õ ”+Ð.×>Ò>¸zÑJÔJÑKÔK€KØ-Ð<Ð-°Ð<Ð<Ð<Ð<Õ<Ô<Ð<Ð<Ð<Ð<Ð-°Ð<Ñ<Ô<Õ<Ô<Ð-Ñ<Ô<Ð<Õ<Ô<Ñ<Ô<Ð<Ð<Õ<Ô<°Ñ<Ô<Ð<Õ<Ô<°Ñ<Ô<Ð<Ð<Ð<Ð<Ñ<Ð<Ð<Ð<Ð<Ð<Ñ<Ð<Õ<Õ<Ô<Ð<Ñ<Ô<Ñ<Ô<Ð<Ð<Ð<Ð<Ð<Ø%Ð4Ð%¨Ð4Ð4Ð4Ð4Õ4Ô4Ð4Ð4Ð4Ð4Ð%¨Ð4Ñ4Ô4Õ4Ô4Ð%Ñ4Ô4Ð4Õ4Ô4Ñ4Ô4Ð4Ð4Õ4Ô4¨Ñ4Ô4Ð4Õ4Ô4¨Ñ4Ô4Ð4Ð4Ð4Ð4Ñ4Ð4Ð4Ð4Ð4Ð4Ñ4Ð4Õ4Õ4Ô4Ð4Ñ4Ô4Ñ4Ô4Ð4Ð4Ð4Ð4Ð4õ Œ[Ø×(Ò(Ð)UÑVÔVñô €Fð )Ð2Ð(¨FÐ2Ð2Ð2Ð2Õ2Ô2Ð2Ð2Ð2Ð2Ð(¨FÐ2Ñ2Ô2Õ2Ô2Ð(Ñ2Ô2Ð2Õ2Ô2Ñ2Ô2Ð2Ð2Õ2Ô2¨FÑ2Ô2Ð2Õ2Ô2¨FÑ2Ô2Ð2Ð2Ð2Ð2Ñ2Ð2Ð2Ð2Ð2Ð2Ñ2Ð2Õ2Õ2Ô2Ð2Ñ2Ô2Ñ2Ô2Ð2Ð2Ð2Ð2Ð2Ø$Ð.Ð$¨Ð.Ð.Ð.Ð.Õ.Ô.Ð.Ð.Ð.Ð.Ð$¨Ð.Ñ.Ô.Õ.Ô.Ð$Ñ.Ô.Ð.Õ.Ô.Ñ.Ô.Ð.Ð.Õ.Ô.¨Ñ.Ô.Ð.Õ.Ô.¨Ñ.Ô.Ð.Ð.Ð.Ð.Ñ.Ð.Ð.Ð.Ð.Ð.Ñ.Ð.Õ.Õ.Ô.Ð.Ñ.Ô.Ñ.Ô.Ð.Ð.Ð.Ð.Ð.Ð.Ð.r   c                 óR  — ddddddœdddœd	d
œdœ}t          j        |                      |¦  «        ¦  «        }|j        }d} ||¦  «        }d}||u }|sÐt	          j        d|fd||f¦  «        dt          j        ¦   «         v st	          j        |¦  «        rt	          j	        |¦  «        ndt	          j	        |¦  «        t	          j	        |¦  «        t	          j	        |¦  «        t	          j	        |¦  «        dœz  }dd|iz  }	t          t	          j        |	¦  «        ¦  «        ‚d x}x}x}x}}|j        }d} ||¦  «        }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	        |¦  «        t	          j	        |¦  «        t	          j	        |¦  «        dœz  }dd|iz  }	t          t	          j        |	¦  «        ¦  «        ‚d x}x}x}x}}d S )Ni'  iõ  i@â u   Quá»³nhÚquynh_qs)ÚidÚ
first_nameÚusernameÚprivate)rŽ   Útyper1   )rZ   ÚfromÚchatrJ   )Ú	update_idÚmessagerY   Tr'   ©zI%(py6)s
{%(py6)s = %(py2)s
{%(py2)s = %(py0)s.get
}(%(py4)s)
} is %(py9)srM   ©r#   r%   r&   rS   Úpy9úassert %(py11)sÚpy11r"   Ú	processedrO   )zI%(py6)s
{%(py6)s = %(py2)s
{%(py2)s = %(py0)s.get
}(%(py4)s)
} == %(py9)s)rV   rW   Úhandle_webhook_updateÚgetr6   r<   r4   r5   r7   r8   r9   r:   )
r   Úupdate_payloadrM   r@   r>   r[   Ú@py_assert8r\   Ú@py_format10Ú@py_format12s
             r   Útest_telegram_webhook_handlingr£   ¡   s’  € ààØ!°È
ÐSÐSØ!¨9Ð5Ð5Øð	
ð 
ðð €Nõ Œ+Ð&×<Ò<¸^ÑLÔLÑ
MÔ
M€CØŒ7Ð �4Ð ˆ7ˆ7�4‰=Œ=Ð ˜DÐ ˆ=˜DÐ Ð Ð Ð Õ Ô Ð Ð Ð Ð ˆ=˜DÐ Ñ Ô Ð Õ Ô Ñ Ô Ð Ð Õ Ô ˆ3Ñ Ô Ð Õ Ô ˆ3Ñ Ô Ð Ð Õ Ô ˆ7Ñ Ô Õ Ô �4Ñ Ô Õ Ô ˆ=Ñ Ô Õ Ô ˜DÑ Ô Ð Ð Ñ Ð Ð Ð Ð Ð Ñ Ð Õ Õ Ô Ð Ñ Ô Ñ Ô Ð Ð Ð Ð Ð Ð Ð Ð Ð Ð Ð ØŒ7Ð+�8Ð+ˆ7ˆ7�8ÑÔÐ+ Ð+Ð Ò+Ð+Ð+Ð+Õ+Ô+Ð+Ð+Ð+Ð+Ð Ð+Ñ+Ô+Ð+Õ+Ô+Ñ+Ô+Ð+Ð+Õ+Ô+ˆ3Ñ+Ô+Ð+Õ+Ô+ˆ3Ñ+Ô+Ð+Ð+Õ+Ô+ˆ7Ñ+Ô+Õ+Ô+�8Ñ+Ô+Õ+Ô+ÐÑ+Ô+Õ+Ô+ Ñ+Ô+Ð+Ð+Ñ+Ð+Ð+Ð+Ð+Ð+Ñ+Ð+Õ+Õ+Ô+Ð+Ñ+Ô+Ñ+Ô+Ð+Ð+Ð+Ð+Ð+Ð+Ð+Ð+Ð+Ð+Ð+Ð+Ð+r   r   c                 óN  — |                       d¦  «        }|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  }t          t          j	        |¦  «        ¦  «        ‚d x}x}}| 
                    ¦   «         }|j         }d	} ||¦  «        }d
}	||	u }
|
sÐt          j        d|
fd||	f¦  «        dt	          j        ¦   «         v st          j        |¦  «        rt          j        |¦  «        ndt          j        |¦  «        t          j        |¦  «        t          j        |¦  «        t          j        |	¦  «        dœz  }dd|iz  }t          t          j	        |¦  «        ¦  «        ‚d x}x}x}x}
}	d}|j         }d} ||¦  «        }	||	v }|sÐt          j        d|fd||	f¦  «        t          j        |¦  «        dt	          j        ¦   «         v st          j        |¦  «        rt          j        |¦  «        ndt          j        |¦  «        t          j        |¦  «        t          j        |	¦  «        dœz  }dd|iz  }t          t          j	        |¦  «        ¦  «        ‚d x}x}x}x}}	|                      ddddœ¬¦  «        }|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  }t          t          j	        |¦  «        ¦  «        ‚d x}x}}|j
        } |¦   «         }|j         }d}
 ||
¦  «        }d
}||u }|söt          j        d|fd||f¦  «        dt	          j        ¦   «         v st          j        |¦  «        rt          j        |¦  «        ndt          j        |¦  «        t          j        |¦  «        t          j        |¦  «        t          j        |
¦  «        t          j        |¦  «        t          j        |¦  «        dœz  }dd |iz  }t          t          j	        |¦  «        ¦  «        ‚d x}x}x}x}
x}x}}|                      d!d"d#d$d%d&gd'œ¬¦  «        }|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  }t          t          j	        |¦  «        ¦  «        ‚d x}x}}|j
        } |¦   «         }|j         }d}
 ||
¦  «        }d
}||u }|söt          j        d|fd||f¦  «        d(t	          j        ¦   «         v st          j        |¦  «        rt          j        |¦  «        nd(t          j        |¦  «        t          j        |¦  «        t          j        |¦  «        t          j        |
¦  «        t          j        |¦  «        t          j        |¦  «        dœz  }dd |iz  }t          t          j	        |¦  «        ¦  «        ‚d x}x}x}x}
x}x}}|                      d)d%d*d+d,d-d.d/d0gd1œ¬¦  «        }|j        }d}||k    }|sªt          j        d|fd||f¦  «        d2t	          j        ¦   «         v st          j        |¦  «        rt          j        |¦  «        nd2t          j        |¦  «        t          j        |¦  «        dœz  }dd|iz  }t          t          j	        |¦  «        ¦  «        ‚d x}x}}|j
        } |¦   «         }|j         }d}
 ||
¦  «        }d
}||u }|söt          j        d|fd||f¦  «        d2t	          j        ¦   «         v st          j        |¦  «        rt          j        |¦  «        nd2t          j        |¦  «        t          j        |¦  «        t          j        |¦  «        t          j        |
¦  «        t          j        |¦  «        t          j        |¦  «        dœz  }dd |iz  }t          t          j	        |¦  «        ¦  «        ‚d x}x}x}x}
x}x}}|                      d3d4d5d6œ¬¦  «        }|j        }d}||k    }|sªt          j        d|fd||f¦  «        d7t	          j        ¦   «         v st          j        |¦  «        rt          j        |¦  «        nd7t          j        |¦  «        t          j        |¦  «        dœz  }dd|iz  }t          t          j	        |¦  «        ¦  «        ‚d x}x}}d8}|j
        } |¦   «         }|j         }	d9} |	|¦  «        }||v }|söt          j        d|fd:||f¦  «        t          j        |¦  «        d7t	          j        ¦   «         v st          j        |¦  «        rt          j        |¦  «        nd7t          j        |¦  «        t          j        |¦  «        t          j        |	¦  «        t          j        |¦  «        t          j        |¦  «        d;œz  }dd |iz  }t          t          j	        |¦  «        ¦  «        ‚d x}x}x}x}x}	x}}|                      d<d=d>d?id@dAidBdCœi¬¦  «        }|j        }d}||k    }|sªt          j        d|fd||f¦  «        dDt	          j        ¦   «         v st          j        |¦  «        rt          j        |¦  «        ndDt          j        |¦  «        t          j        |¦  «        dœz  }dd|iz  }t          t          j	        |¦  «        ¦  «        ‚d x}x}}|j
        } |¦   «         }|j         }d}
 ||
¦  «        }d
}||u }|söt          j        d|fd||f¦  «        dDt	          j        ¦   «         v st          j        |¦  «        rt          j        |¦  «        ndDt          j        |¦  «        t          j        |¦  «        t          j        |¦  «        t          j        |
¦  «        t          j        |¦  «        t          j        |¦  «        dœz  }dd |iz  }t          t          j	        |¦  «        ¦  «        ‚d x}x}x}x}
x}x}}d S )ENz/v1/telegram/statuséÈ   rO   )z3%(py2)s
{%(py2)s = %(py0)s.status_code
} == %(py5)sÚ
res_statusr)   r+   r,   r;   Tr'   r—   Údata_statusr˜   rš   r›   r-   r=   r.   )zI%(py1)s in %(py9)s
{%(py9)s = %(py5)s
{%(py5)s = %(py3)s.get
}(%(py7)s)
})r$   r0   r*   r,   r™   z/v1/telegram/send-messagezTest message from APIÚsite_managers_grouprI   )ÚjsonÚres_msgrY   )z}%(py10)s
{%(py10)s = %(py6)s
{%(py6)s = %(py4)s
{%(py4)s = %(py2)s
{%(py2)s = %(py0)s.json
}()
}.get
}(%(py8)s)
} is %(py13)s)r#   r%   r&   rS   rT   rU   Úpy13zassert %(py15)sÚpy15z/v1/telegram/send-alertu*   Cáº£nh bÃ¡o HÃ³a Ä‘Æ¡n cÃ³ rá»§i ro thuáº¿ÚINVOICE_TAX_RISKÚCRITICALra   u:   NhÃ  cung cáº¥p MST 0101234567 náº±m trong diá»‡n rá»§i ro)rb   rc   rd   re   rf   Ú	res_alertz$/v1/telegram/site-diary-notificationu   Cá»¥m cáº¥p nÆ°á»›c Nam HÆ°ngrn   u   Náº¯ng rÃ¡oé   é   u   Ä�Ã o Ä‘áº¥t mÃ³ngu   Láº¯p Ä‘áº·t cá»‘t thÃ©p)rq   re   rr   rs   rt   ru   rv   Ú	res_diaryz/v1/telegram/process-commandr2   u   HÆ°ng)Úcommandr{   Úres_cmdu   Ä�á»˜I MÃ�Y CÆ  GIá»šIÚreply)z}%(py1)s in %(py13)s
{%(py13)s = %(py9)s
{%(py9)s = %(py7)s
{%(py7)s = %(py5)s
{%(py5)s = %(py3)s.json
}()
}.get
}(%(py11)s)
})r$   r0   r*   r,   r™   r›   r«   z/v1/telegram/webhookr–   r�   ÚMinhrŽ   i'  r}   )r“   r”   rJ   Úres_webhook)rž   Ústatus_coder6   r<   r4   r5   r7   r8   r9   r:   r©   Úpost)r   r¦   r@   rA   r>   rB   rC   r§   r[   r    r\   r¡   r¢   rD   Ú@py_assert6rE   rª   Ú@py_assert9Ú@py_assert12Ú@py_assert11Ú@py_format14Ú@py_format16r¯   r²   r´   Ú@py_assert10r·   s                              r   Útest_telegram_api_endpointsrÁ   °   s–  € à—’Ð1Ñ2Ô2€JØÔ!Ð( SÐ(Ð! SÒ(Ð(Ð(Ð(Õ(Ô(Ð(Ð(Ð(Ð(Ð! SÐ(Ñ(Ô(Ð(Õ(Ô(Ñ(Ô(Ð(Ð(Õ(Ô(ˆ:Ñ(Ô(Ð(Õ(Ô(ˆ:Ñ(Ô(Ð(Ð(Õ(Ô(Ð!Ñ(Ô(Õ(Ô( SÑ(Ô(Ð(Ð(Ñ(Ð(Ð(Ð(Ð(Ð(Ñ(Ð(Õ(Õ(Ô(Ð(Ñ(Ô(Ñ(Ô(Ð(Ð(Ð(Ð(Ð(Ð(Ð(Ø—/’/Ñ#Ô#€KØŒ?Ð-˜9Ð-ˆ?ˆ?˜9Ñ%Ô%Ð-¨Ð-Ð%¨Ð-Ð-Ð-Ð-Õ-Ô-Ð-Ð-Ð-Ð-Ð%¨Ð-Ñ-Ô-Ð-Õ-Ô-Ñ-Ô-Ð-Ð-Õ-Ô-ˆ;Ñ-Ô-Ð-Õ-Ô-ˆ;Ñ-Ô-Ð-Ð-Õ-Ô-ˆ?Ñ-Ô-Õ-Ô-˜9Ñ-Ô-Õ-Ô-Ð%Ñ-Ô-Õ-Ô-¨Ñ-Ô-Ð-Ð-Ñ-Ð-Ð-Ð-Ð-Ð-Ñ-Ð-Õ-Õ-Ô-Ð-Ñ-Ô-Ñ-Ô-Ð-Ð-Ð-Ð-Ð-Ð-Ð-Ð-Ð-Ð-Ð-ØÐ=˜œÐ=Ð(<Ð=˜˜Ð(<Ñ=Ô=Ð=ˆ9Ð=Ð=Ð=Ð=Ð=Õ=Ô=Ð=Ð=Ð=Ð=ˆ9Ð=Ð=Ñ=Ô=Õ=Ô=ˆ9Ñ=Ô=Ð=Õ=Ô=Ñ=Ô=Ð=Ð=Õ=Ô=˜Ñ=Ô=Ð=Õ=Ô=˜Ñ=Ô=Ð=Ð=Õ=Ô=˜Ñ=Ô=Õ=Ô=Ð(<Ñ=Ô=Õ=Ô=Ð=Ñ=Ô=Ð=Ð=Ñ=Ð=Ð=Ð=Ð=Ð=Ñ=Ð=Õ=Õ=Ô=Ð=Ñ=Ô=Ñ=Ô=Ð=Ð=Ð=Ð=Ð=Ð=Ð=Ð=Ð=Ð=Ð=ð �kŠkØ#Ø-Ð:OÐPÐPð ñ ô €Gð ÔÐ% #Ð%Ð #Ò%Ð%Ð%Ð%Õ%Ô%Ð%Ð%Ð%Ð%Ð #Ð%Ñ%Ô%Ð%Õ%Ô%Ñ%Ô%Ð%Ð%Õ%Ô%ˆ7Ñ%Ô%Ð%Õ%Ô%ˆ7Ñ%Ô%Ð%Ð%Õ%Ô%ÐÑ%Ô%Õ%Ô% #Ñ%Ô%Ð%Ð%Ñ%Ð%Ð%Ð%Ð%Ð%Ñ%Ð%Õ%Õ%Ô%Ð%Ñ%Ô%Ñ%Ô%Ð%Ð%Ð%Ð%Ð%Ð%Ð%ØŒ<Ð+ˆ<ˆ<‰>Œ>Ð+ˆ>ÔÐ+˜dÐ+ÐÐ˜dÑ#Ô#Ð+ tÐ+Ð# tÐ+Ð+Ð+Ð+Õ+Ô+Ð+Ð+Ð+Ð+Ð# tÐ+Ñ+Ô+Ð+Õ+Ô+Ñ+Ô+Ð+Ð+Õ+Ô+ˆ7Ñ+Ô+Ð+Õ+Ô+ˆ7Ñ+Ô+Ð+Ð+Õ+Ô+ˆ<Ñ+Ô+Õ+Ô+ˆ>Ñ+Ô+Õ+Ô+ÐÑ+Ô+Õ+Ô+˜dÑ+Ô+Õ+Ô+Ð#Ñ+Ô+Õ+Ô+ tÑ+Ô+Ð+Ð+Ñ+Ð+Ð+Ð+Ð+Ð+Ñ+Ð+Õ+Õ+Ô+Ð+Ñ+Ô+Ñ+Ô+Ð+Ð+Ð+Ð+Ð+Ð+Ð+Ð+Ð+Ð+Ð+Ð+Ð+Ð+Ð+ð —’Ø!àAØ,Ø"Ø/ØTÐUð
ð 
ð ñ 	ô 	€Ið Ô Ð' CÐ'Ð  CÒ'Ð'Ð'Ð'Õ'Ô'Ð'Ð'Ð'Ð'Ð  CÐ'Ñ'Ô'Ð'Õ'Ô'Ñ'Ô'Ð'Ð'Õ'Ô'ˆ9Ñ'Ô'Ð'Õ'Ô'ˆ9Ñ'Ô'Ð'Ð'Õ'Ô'Ð Ñ'Ô'Õ'Ô' CÑ'Ô'Ð'Ð'Ñ'Ð'Ð'Ð'Ð'Ð'Ñ'Ð'Õ'Õ'Ô'Ð'Ñ'Ô'Ñ'Ô'Ð'Ð'Ð'Ð'Ð'Ð'Ð'ØŒ>Ð-ˆ>ˆ>ÑÔÐ-ÐÔÐ- Ð-ÐÐ Ñ%Ô%Ð-¨Ð-Ð%¨Ð-Ð-Ð-Ð-Õ-Ô-Ð-Ð-Ð-Ð-Ð%¨Ð-Ñ-Ô-Ð-Õ-Ô-Ñ-Ô-Ð-Ð-Õ-Ô-ˆ9Ñ-Ô-Ð-Õ-Ô-ˆ9Ñ-Ô-Ð-Ð-Õ-Ô-ˆ>Ñ-Ô-Õ-Ô-ÐÑ-Ô-Õ-Ô-ÐÑ-Ô-Õ-Ô- Ñ-Ô-Õ-Ô-Ð%Ñ-Ô-Õ-Ô-¨Ñ-Ô-Ð-Ð-Ñ-Ð-Ð-Ð-Ð-Ð-Ñ-Ð-Õ-Õ-Ô-Ð-Ñ-Ô-Ñ-Ô-Ð-Ð-Ð-Ð-Ð-Ð-Ð-Ð-Ð-Ð-Ð-Ð-Ð-Ð-Ð-ð —’Ø.à/Ø;Ø&Ø$Ø!ØØ/Ð1KÐLð
ð 
ð ñ ô €Ið Ô Ð' CÐ'Ð  CÒ'Ð'Ð'Ð'Õ'Ô'Ð'Ð'Ð'Ð'Ð  CÐ'Ñ'Ô'Ð'Õ'Ô'Ñ'Ô'Ð'Ð'Õ'Ô'ˆ9Ñ'Ô'Ð'Õ'Ô'ˆ9Ñ'Ô'Ð'Ð'Õ'Ô'Ð Ñ'Ô'Õ'Ô' CÑ'Ô'Ð'Ð'Ñ'Ð'Ð'Ð'Ð'Ð'Ñ'Ð'Õ'Õ'Ô'Ð'Ñ'Ô'Ñ'Ô'Ð'Ð'Ð'Ð'Ð'Ð'Ð'ØŒ>Ð-ˆ>ˆ>ÑÔÐ-ÐÔÐ- Ð-ÐÐ Ñ%Ô%Ð-¨Ð-Ð%¨Ð-Ð-Ð-Ð-Õ-Ô-Ð-Ð-Ð-Ð-Ð%¨Ð-Ñ-Ô-Ð-Õ-Ô-Ñ-Ô-Ð-Ð-Õ-Ô-ˆ9Ñ-Ô-Ð-Õ-Ô-ˆ9Ñ-Ô-Ð-Ð-Õ-Ô-ˆ>Ñ-Ô-Õ-Ô-ÐÑ-Ô-Õ-Ô-ÐÑ-Ô-Õ-Ô- Ñ-Ô-Õ-Ô-Ð%Ñ-Ô-Õ-Ô-¨Ñ-Ô-Ð-Ð-Ñ-Ð-Ð-Ð-Ð-Ð-Ñ-Ð-Õ-Õ-Ô-Ð-Ñ-Ô-Ñ-Ô-Ð-Ð-Ð-Ð-Ð-Ð-Ð-Ð-Ð-Ð-Ð-Ð-Ð-Ð-Ð-ð �kŠkØ&Ø!°Ð8Ð8ð ñ ô €Gð ÔÐ% #Ð%Ð #Ò%Ð%Ð%Ð%Õ%Ô%Ð%Ð%Ð%Ð%Ð #Ð%Ñ%Ô%Ð%Õ%Ô%Ñ%Ô%Ð%Ð%Õ%Ô%ˆ7Ñ%Ô%Ð%Õ%Ô%ˆ7Ñ%Ô%Ð%Ð%Õ%Ô%ÐÑ%Ô%Õ%Ô% #Ñ%Ô%Ð%Ð%Ñ%Ð%Ð%Ð%Ð%Ð%Ñ%Ð%Õ%Õ%Ô%Ð%Ñ%Ô%Ñ%Ô%Ð%Ð%Ð%Ð%Ð%Ð%Ð%Ø#ÐB w¤|ÐB | |¡~¤~ÐB ~Ô'9ÐB¸'ÐBÐ'9Ð'9¸'Ñ'BÔ'BÐBÐ#Ð'BÐBÐBÐBÐBÕBÔBÐBÐBÐBÐBÐ#Ð'BÐBÑBÔBÕBÔBÐ#ÑBÔBÐBÕBÔBÑBÔBÐBÐBÕBÔB wÑBÔBÐBÕBÔB wÑBÔBÐBÐBÕBÔB |ÑBÔBÕBÔB ~ÑBÔBÕBÔBÐ'9ÑBÔBÕBÔB¸'ÑBÔBÕBÔBÐ'BÑBÔBÐBÐBÑBÐBÐBÐBÐBÐBÑBÐBÕBÕBÔBÐBÑBÔBÑBÔBÐBÐBÐBÐBÐBÐBÐBÐBÐBÐBÐBÐBÐBÐBÐBð —+’+ØàØ% vÐ.Ø˜t˜Øðð ð
ð ñ 	ô 	€Kð Ô"Ð) cÐ)Ð" cÒ)Ð)Ð)Ð)Õ)Ô)Ð)Ð)Ð)Ð)Ð" cÐ)Ñ)Ô)Ð)Õ)Ô)Ñ)Ô)Ð)Ð)Õ)Ô)ˆ;Ñ)Ô)Ð)Õ)Ô)ˆ;Ñ)Ô)Ð)Ð)Õ)Ô)Ð"Ñ)Ô)Õ)Ô) cÑ)Ô)Ð)Ð)Ñ)Ð)Ð)Ð)Ð)Ð)Ñ)Ð)Õ)Õ)Ô)Ð)Ñ)Ô)Ñ)Ô)Ð)Ð)Ð)Ð)Ð)Ð)Ð)ØÔÐ/ÐÐÑÔÐ/ÐÔ!Ð/ $Ð/Ð!Ð! $Ñ'Ô'Ð/¨4Ð/Ð'¨4Ð/Ð/Ð/Ð/Õ/Ô/Ð/Ð/Ð/Ð/Ð'¨4Ð/Ñ/Ô/Ð/Õ/Ô/Ñ/Ô/Ð/Ð/Õ/Ô/ˆ;Ñ/Ô/Ð/Õ/Ô/ˆ;Ñ/Ô/Ð/Ð/Õ/Ô/ÐÑ/Ô/Õ/Ô/ÐÑ/Ô/Õ/Ô/Ð!Ñ/Ô/Õ/Ô/ $Ñ/Ô/Õ/Ô/Ð'Ñ/Ô/Õ/Ô/¨4Ñ/Ô/Ð/Ð/Ñ/Ð/Ð/Ð/Ð/Ð/Ñ/Ð/Õ/Õ/Ô/Ð/Ñ/Ô/Ñ/Ô/Ð/Ð/Ð/Ð/Ð/Ð/Ð/Ð/Ð/Ð/Ð/Ð/Ð/Ð/Ð/Ð/Ð/r   )Ú__doc__Úbuiltinsr4   Ú_pytest.assertion.rewriteÚ	assertionÚrewriter6   rV   ÚpytestÚfastapi.testclientr   Úapp.mainr   Úapp.models.telegram_schemasr   r   r   Ú5app.modules.integrations.application.telegram_servicer   Úfixturer   r   rF   r_   rl   ry   r‹   r£   rÁ   © r   r   ú<module>rÎ      sÃ  ðØ LÐ Là  € € € € € € € € € € € € €€€€à €€€Ø )Ð )Ð )Ð )Ð )Ð )à Ð Ð Ð Ð Ð ðð ð ð ð ð ð ð ð ð ð
 RÐ QÐ QÐ QÐ QÐ Qð „ð˜:ð ð ð ñ „ðð „ð) _ð )ð )ð )ñ „ð)ð
.°?ð .ð .ð .ð .ð	.¸Oð 	.ð 	.ð 	.ð 	.ð-¨ð -ð -ð -ð -ð&-¸?ð -ð -ð -ð -ð(?/°_ð ?/ð ?/ð ?/ð ?/ðD,°_ð ,ð ,ð ,ð ,ðB0¨
ð B0ð B0ð B0ð B0ð B0ð B0r   