§
    Sm™j(  ã                   óˆ   — d dl Zd dlmc mZ d dlmZ d dlm	Z	 d dl
mZ d dlmZ d„ e	j        e<    ee	¦  «        Zd„ Zd„ ZdS )	é    N)Ú
TestClient)Úapp)Úget_current_user)ÚErpDatabaseClientc                  ó   — dddddœS )Nzadmin-idzdirector@dscons.vnÚ
superadminu   Nguyá»…n SÄ© SÆ¡n)ÚidÚemailÚroleÚ	full_name© r   ó    ú4C:\Projects\DSCons\tests\test_bank_reconciliation.pyú<lambda>r      s   € Ø
Ø!ØØ$ð	6ð 6€ r   c                  ó¢  — t          ¦   «         } |                      ¦   «         }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         }t          |¦  «        }d
}||k    }	|	sÇt          j        d|	fd||f¦  «        dt          j        ¦   «         v st          j        t          ¦  «        rt          j        t          ¦  «        ndt          j        |¦  «        t          j        |¦  «        t          j        |¦  «        dœz  }
dd|
iz  }t          t          j	        |¦  «        ¦  «        ‚dx}x}x}	}d„ |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}}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„ |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}}dS )uL   Kiá»ƒm tra tá»•ng há»£p Ä‘á»‘i soÃ¡t 4 tÃ i khoáº£n ngÃ¢n hÃ ng thá»±c táº¿.Úbanks)Úin)z%(py1)s in %(py3)sÚsummary)Úpy1Úpy3zassert %(py5)sÚpy5NÚ
categoriesé   ©ú>=©z0%(py4)s
{%(py4)s = %(py0)s(%(py2)s)
} >= %(py7)sÚlen©Úpy0Úpy2Úpy4Úpy7úassert %(py9)sÚpy9c                 óB   — g | ]}|d                                ¦   «         ‘ŒS )Ú	bank_name)Úupper)Ú.0Úbs     r   ú
<listcomp>z4test_bank_reconciliation_summary.<locals>.<listcomp>   s(   € ÐCÐCÐC¨Q�!�K”.×&Ò&Ñ(Ô(ÐCÐCÐCr   ÚACBÚ
bank_namesÚTECHCOMBANKÚVIETCOMBANKÚVPBANKc                 ó   — g | ]
}|d          ‘ŒS )Útransaction_categoryr   )r(   Úcs     r   r*   z4test_bank_reconciliation_summary.<locals>.<listcomp>   s   € ÐJÐJÐJ¨q�Ð)Ô*ÐJÐJÐJr   ÚREVENUE_COLLECTIONÚ	cat_namesÚSUPPLIER_PAYMENT)r   Úget_bank_reconciliation_summaryÚ
@pytest_arÚ_call_reprcompareÚ	_safereprÚ@py_builtinsÚlocalsÚ_should_repr_global_nameÚAssertionErrorÚ_format_explanationr   )Ú
erp_clientr   Ú@py_assert0Ú@py_assert2Ú@py_format4Ú@py_format6Ú@py_assert1Ú@py_assert3Ú@py_assert6Ú@py_assert5Ú@py_format8Ú@py_format10r,   r4   s                 r   Ú test_bank_reconciliation_summaryrJ      ss  € å"Ñ$Ô$€JØ×8Ò8Ñ:Ô:€GØÐˆ7�gÐÐÐÐÕÔÐÐÐÐˆ7�gÐÑÔÕÔˆ7ÑÔÐÕÔÑÔÐÐÕÔ�gÑÔÐÕÔ�gÑÔÐÐÐÐÑÐÐÐÐÐÑÐÕÕÔÐÑÔÑÔÐÐÐÐÐØÐ"ˆ<˜7Ð"Ð"Ð"Ð"Õ"Ô"Ð"Ð"Ð"Ð"ˆ<˜7Ð"Ñ"Ô"Õ"Ô"ˆ<Ñ"Ô"Ð"Õ"Ô"Ñ"Ô"Ð"Ð"Õ"Ô"˜7Ñ"Ô"Ð"Õ"Ô"˜7Ñ"Ô"Ð"Ð"Ð"Ð"Ñ"Ð"Ð"Ð"Ð"Ð"Ñ"Ð"Õ"Õ"Ô"Ð"Ñ"Ô"Ñ"Ô"Ð"Ð"Ð"Ð"Ð"Ø�wÔÐ%�3ÐÑ Ô Ð% AÐ%Ð  AÒ%Ð%Ð%Ð%Õ%Ô%Ð%Ð%Ð%Ð%Ð  AÐ%Ñ%Ô%Ð%Õ%Ô%Ñ%Ô%Ð%Ð%Õ%Ô%�3Ñ%Ô%Ð%Õ%Ô%�3Ñ%Ô%Ð%Ð%Õ%Ô%ÐÑ%Ô%Õ%Ô%Ð Ñ%Ô%Õ%Ô% AÑ%Ô%Ð%Ð%Ñ%Ð%Ð%Ð%Ð%Ð%Ñ%Ð%Õ%Õ%Ô%Ð%Ñ%Ô%Ñ%Ô%Ð%Ð%Ð%Ð%Ð%Ð%Ð%Ð%Ð%àCÐC°'¸'Ô2BÐCÑCÔC€JØÐˆ5�JÐÐÐÐÕÔÐÐÐÐˆ5�JÐÑÔÕÔˆ5ÑÔÐÕÔÑÔÐÐÕÔ�JÑÔÐÕÔ�JÑÔÐÐÐÐÑÐÐÐÐÐÑÐÕÕÔÐÑÔÑÔÐÐÐÐÐØÐ&ˆ=˜JÐ&Ð&Ð&Ð&Õ&Ô&Ð&Ð&Ð&Ð&ˆ=˜JÐ&Ñ&Ô&Õ&Ô&ˆ=Ñ&Ô&Ð&Õ&Ô&Ñ&Ô&Ð&Ð&Õ&Ô&˜JÑ&Ô&Ð&Õ&Ô&˜JÑ&Ô&Ð&Ð&Ð&Ð&Ñ&Ð&Ð&Ð&Ð&Ð&Ñ&Ð&Õ&Õ&Ô&Ð&Ñ&Ô&Ñ&Ô&Ð&Ð&Ð&Ð&Ð&ØÐ&ˆ=˜JÐ&Ð&Ð&Ð&Õ&Ô&Ð&Ð&Ð&Ð&ˆ=˜JÐ&Ñ&Ô&Õ&Ô&ˆ=Ñ&Ô&Ð&Õ&Ô&Ñ&Ô&Ð&Ð&Õ&Ô&˜JÑ&Ô&Ð&Õ&Ô&˜JÑ&Ô&Ð&Ð&Ð&Ð&Ñ&Ð&Ð&Ð&Ð&Ð&Ñ&Ð&Õ&Õ&Ô&Ð&Ñ&Ô&Ñ&Ô&Ð&Ð&Ð&Ð&Ð&ØÐ!ˆ8�zÐ!Ð!Ð!Ð!Õ!Ô!Ð!Ð!Ð!Ð!ˆ8�zÐ!Ñ!Ô!Õ!Ô!ˆ8Ñ!Ô!Ð!Õ!Ô!Ñ!Ô!Ð!Ð!Õ!Ô!�zÑ!Ô!Ð!Õ!Ô!�zÑ!Ô!Ð!Ð!Ð!Ð!Ñ!Ð!Ð!Ð!Ð!Ð!Ñ!Ð!Õ!Õ!Ô!Ð!Ñ!Ô!Ñ!Ô!Ð!Ð!Ð!Ð!Ð!ð KÐJ°G¸LÔ4IÐJÑJÔJ€IØÐ,Ð 9Ð,Ð,Ð,Ð,Õ,Ô,Ð,Ð,Ð,Ð,Ð 9Ð,Ñ,Ô,Õ,Ô,ÐÑ,Ô,Ð,Õ,Ô,Ñ,Ô,Ð,Ð,Õ,Ô, 9Ñ,Ô,Ð,Õ,Ô, 9Ñ,Ô,Ð,Ð,Ð,Ð,Ñ,Ð,Ð,Ð,Ð,Ð,Ñ,Ð,Õ,Õ,Ô,Ð,Ñ,Ô,Ñ,Ô,Ð,Ð,Ð,Ð,Ð,ØÐ*Ð Ð*Ð*Ð*Ð*Õ*Ô*Ð*Ð*Ð*Ð*Ð Ð*Ñ*Ô*Õ*Ô*ÐÑ*Ô*Ð*Õ*Ô*Ñ*Ô*Ð*Ð*Õ*Ô* Ñ*Ô*Ð*Õ*Ô* Ñ*Ô*Ð*Ð*Ð*Ð*Ñ*Ð*Ð*Ð*Ð*Ð*Ñ*Ð*Õ*Õ*Ô*Ð*Ñ*Ô*Ñ*Ô*Ð*Ð*Ð*Ð*Ð*Ð*Ð*r   c                  óâ  — t                                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}}|                      ¦   «         }|d
         }t          |¦  «        }d}||k    }|sÇt          j        d|fd||f¦  «        dt          j        ¦   «         v st          j        t          ¦  «        rt          j        t          ¦  «        ndt          j        |¦  «        t          j        |¦  «        t          j        |¦  «        dœz  }dd|iz  }	t          t          j
        |	¦  «        ¦  «        ‚d	x}x}x}}t                                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}}|
                     ¦   «         }t          |¦  «        }d}||k    }|sòt          j        d|fd||f¦  «        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}}|D �]}|d         }d}||k    }|slt          j        d|fd||f¦  «        t          j        |¦  «        t          j        |¦  «        dœz  }dd |iz  }t          t          j
        |¦  «        ¦  «        ‚d	x}x}}|d!         }d"}||k    }|slt          j        d|fd||f¦  «        t          j        |¦  «        t          j        |¦  «        dœz  }dd |iz  }t          t          j
        |¦  «        ¦  «        ‚d	x}x}}�Œt                                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}}|                     ¦   «         }t          |¦  «        }d}||k    }|sòt          j        d|fd||f¦  «        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}}d	S )&u;   Kiá»ƒm tra cÃ¡c API endpoint tra cá»©u sao kÃª ngÃ¢n hÃ ng.z/v1/erp/finance/bank-summaryéÈ   )ú==)z3%(py2)s
{%(py2)s = %(py0)s.status_code
} == %(py5)sÚresp)r   r    r   zassert %(py7)sr"   Nr   r   r   r   r   r   r#   r$   z8/v1/erp/finance/bank-transactions?bank_name=ACB&limit=10Úresp_acbr   )ú>)z/%(py3)s
{%(py3)s = %(py0)s(%(py1)s)
} > %(py6)sÚtxns)r   r   r   Úpy6zassert %(py8)sÚpy8r&   r+   )z%(py1)s == %(py4)s)r   r!   zassert %(py6)srR   Úaccount_numberÚ13456888888z@/v1/erp/finance/bank-transactions?bank_name=TECHCOMBANK&limit=10Úresp_tcbÚtxns_tcb)ÚclientÚgetÚstatus_coder7   r8   r:   r;   r<   r9   r=   r>   Újsonr   )rN   rD   Ú@py_assert4rE   rC   rH   ÚdatarF   rG   rI   rO   rQ   rA   Ú@py_format7Ú@py_format9Útr@   Ú@py_format5rV   rW   s                       r   Útest_bank_api_endpointsrb   #   s¥  € å�:Š:Ð4Ñ5Ô5€DØÔÐ"˜sÐ"Ð˜sÒ"Ð"Ð"Ð"Õ"Ô"Ð"Ð"Ð"Ð"Ð˜sÐ"Ñ"Ô"Ð"Õ"Ô"Ñ"Ô"Ð"Ð"Õ"Ô"ˆ4Ñ"Ô"Ð"Õ"Ô"ˆ4Ñ"Ô"Ð"Ð"Õ"Ô"ÐÑ"Ô"Õ"Ô"˜sÑ"Ô"Ð"Ð"Ñ"Ð"Ð"Ð"Ð"Ð"Ñ"Ð"Õ"Õ"Ô"Ð"Ñ"Ô"Ñ"Ô"Ð"Ð"Ð"Ð"Ð"Ð"Ð"Ø�9Š9‰;Œ;€DØ�GŒ}Ð"�3ˆ}ÑÔÐ" Ð"Ð Ò"Ð"Ð"Ð"Õ"Ô"Ð"Ð"Ð"Ð"Ð Ð"Ñ"Ô"Ð"Õ"Ô"Ñ"Ô"Ð"Ð"Õ"Ô"�3Ñ"Ô"Ð"Õ"Ô"�3Ñ"Ô"Ð"Ð"Õ"Ô"ˆ}Ñ"Ô"Õ"Ô"ÐÑ"Ô"Õ"Ô" Ñ"Ô"Ð"Ð"Ñ"Ð"Ð"Ð"Ð"Ð"Ñ"Ð"Õ"Õ"Ô"Ð"Ñ"Ô"Ñ"Ô"Ð"Ð"Ð"Ð"Ð"Ð"Ð"Ð"Ð"õ �zŠzÐTÑUÔU€HØÔÐ& 3Ð&Ð 3Ò&Ð&Ð&Ð&Õ&Ô&Ð&Ð&Ð&Ð&Ð 3Ð&Ñ&Ô&Ð&Õ&Ô&Ñ&Ô&Ð&Ð&Õ&Ô&ˆ8Ñ&Ô&Ð&Õ&Ô&ˆ8Ñ&Ô&Ð&Ð&Õ&Ô&ÐÑ&Ô&Õ&Ô& 3Ñ&Ô&Ð&Ð&Ñ&Ð&Ð&Ð&Ð&Ð&Ñ&Ð&Õ&Õ&Ô&Ð&Ñ&Ô&Ñ&Ô&Ð&Ð&Ð&Ð&Ð&Ð&Ð&Ø�=Š=‰?Œ?€DÝˆt‰9Œ9Ð�qÐˆ9�qŠ=ÐÐÐÕÔÐÐÐÐˆ9�qÐÑÔÐÕÔÑÔÐÐÕÔ�3ÑÔÐÕÔ�3ÑÔÐÐÐÕÔÑÔÐÐÕÔˆtÑÔÐÕÔˆtÑÔÐÐÕÔˆ9ÑÔÕÔ�qÑÔÐÐÑÐÐÐÐÐÑÐÕÕÔÐÑÔÑÔÐÐÐÐÐÐÐØð 4ñ 4ˆØ�Œ~Ð& Ð&ˆ~ Ò&Ð&Ð&Ð&Õ&Ô&Ð&Ð&Ð&Ð&ˆ~ Ð&Ñ&Ô&Õ&Ô&ˆ~Ñ&Ô&Õ&Ô& Ñ&Ô&Ð&Ð&Ñ&Ð&Ð&Ð&Ð&Ð&Ñ&Ð&Õ&Õ&Ô&Ð&Ñ&Ô&Ñ&Ô&Ð&Ð&Ð&Ð&Ð&Ð&Ð&ØÐ!Ô"Ð3 mÐ3Ð" mÒ3Ð3Ð3Ð3Õ3Ô3Ð3Ð3Ð3Ð3Ð" mÐ3Ñ3Ô3Õ3Ô3Ð"Ñ3Ô3Õ3Ô3 mÑ3Ô3Ð3Ð3Ñ3Ð3Ð3Ð3Ð3Ð3Ñ3Ð3Õ3Õ3Ô3Ð3Ñ3Ô3Ñ3Ô3Ð3Ð3Ð3Ð3Ð3Ð3Ð3Ñ3õ �zŠzÐ\Ñ]Ô]€HØÔÐ& 3Ð&Ð 3Ò&Ð&Ð&Ð&Õ&Ô&Ð&Ð&Ð&Ð&Ð 3Ð&Ñ&Ô&Ð&Õ&Ô&Ñ&Ô&Ð&Ð&Õ&Ô&ˆ8Ñ&Ô&Ð&Õ&Ô&ˆ8Ñ&Ô&Ð&Ð&Õ&Ô&ÐÑ&Ô&Õ&Ô& 3Ñ&Ô&Ð&Ð&Ñ&Ð&Ð&Ð&Ð&Ð&Ñ&Ð&Õ&Õ&Ô&Ð&Ñ&Ô&Ñ&Ô&Ð&Ð&Ð&Ð&Ð&Ð&Ð&Ø�}Š}‰Œ€HÝˆx‰=Œ=Ð˜1Ðˆ=˜1ÒÐÐÐÕÔÐÐÐÐˆ=˜1ÐÑÔÐÕÔÑÔÐÐÕÔ�3ÑÔÐÕÔ�3ÑÔÐÐÐÕÔÑÔÐÐÕÔˆxÑÔÐÕÔˆxÑÔÐÐÕÔˆ=ÑÔÕÔ˜1ÑÔÐÐÑÐÐÐÐÐÑÐÕÕÔÐÑÔÑÔÐÐÐÐÐÐÐÐÐr   )Úbuiltinsr:   Ú_pytest.assertion.rewriteÚ	assertionÚrewriter7   Úfastapi.testclientr   Úapp.mainr   Ú"app.modules.auth.presentation.authr   Úapp.core.postgres.erp_clientr   Údependency_overridesrX   rJ   rb   r   r   r   ú<module>rl      s´   ðà  € € € € € € € € € € € € Ð )Ð )Ð )Ð )Ð )Ð )Ø Ð Ð Ð Ð Ð Ø ?Ð ?Ð ?Ð ?Ð ?Ð ?Ø :Ð :Ð :Ð :Ð :Ð :ð.ð .€Ô Ð)Ñ *ð 
ˆ�C‰Œ€ð+ð +ð +ð&ð ð ð ð r   