§
     ’j°  ã                   ó¾   — d Z 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dlmZ d„ ej        e<    e
e¦  «        Z e¦   «         Zd	„ Zd
„ Zd„ Zd„ Zd„ ZdS )z|Unit and Integration tests for Invoice Item Recognition, Equipment Truth Extraction,
and Warehouse Material Staging Engine.
é    N)ÚDecimal)Ú
TestClient)Úget_current_user)Úapp)ÚInvoiceTruthExtractionServicec                  ó   — dddddœS )Nzadmin-idzadmin@dscons.vnÚ
superadminu$   Ban Quáº£n Trá»‹ Há»‡ Thá»‘ng DSCons)ÚidÚemailÚroleÚ	full_name© r   ó    úAC:\Projects\DSCons\tests\test_invoice_truth_extraction_service.pyú<lambda>r      s   € Ø
ØØØ7ð	6ð 6€ r   c            	      óR  — t                                ddt          d¦  «        t          d¦  «        t          d¦  «        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}}d}| d         }||v }|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dt          d¦  «        t          d¦  «        t          d¦  «        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}}d}|d         }||v }|slt          j        d|fd||f¦  «        t          j        |¦  «        t          j        |¦  «        dœz  }dd|iz  }t          t          j        |¦  «        ¦  «        ‚dx}x}}dS )u_   Kiá»ƒm tra nháº­n diá»‡n mua sáº¯m mÃ¡y mÃ³c thiáº¿t bá»‹ sá»Ÿ há»¯u (Ä�VT: Chiáº¿c/CÃ¡i/Bá»™).u.   MÃ¡y Ä‘Ã o bÃ¡nh xÃ­ch Volvo EC210D má»›i 100%u   Chiáº¿cz1.0z2850000000.0u3   CÃ”NG TY Cá»” PHáº¦N THIáº¾T Bá»Š Náº¶NG BÃŒNH MINH©Ú	item_nameÚunitÚquantityÚ
unit_priceÚtotal_amountÚseller_nameÚclassificationÚOWNED_EQUIPMENT©ú==©z%(py1)s == %(py4)s©Úpy1Úpy4úassert %(py6)sÚpy6NÚequipment_typeÚ	excavatorÚVolvoÚbrand_model©Úin©z%(py1)s in %(py4)sÚownership_typeÚownedu"   Xe Lu Rung Tá»± HÃ nh Sakai SV512Du   CÃ¡iz1650000000.0u-   CÃ”NG TY TNHH THÆ¯Æ NG Máº I SAKAI VIá»†T NAMÚrollerÚSakai©ÚserviceÚclassify_itemr   Ú
@pytest_arÚ_call_reprcompareÚ	_safereprÚAssertionErrorÚ_format_explanation©ÚresÚ@py_assert0Ú@py_assert3Ú@py_assert2Ú@py_format5Ú@py_format7Úres2s          r   Útest_classify_owned_equipmentr?      s@  € õ ×
Ò
ØBØÝ˜‘”Ý˜>Ñ*Ô*Ý˜^Ñ,Ô,ØIð  ñ ô €Cð ÐÔ Ð5Ð$5Ð5Ð Ð$5Ò5Ð5Ð5Ð5Õ5Ô5Ð5Ð5Ð5Ð5Ð Ð$5Ð5Ñ5Ô5Õ5Ô5Ð Ñ5Ô5Õ5Ô5Ð$5Ñ5Ô5Ð5Ð5Ñ5Ð5Ð5Ð5Ð5Ð5Ñ5Ð5Õ5Õ5Ô5Ð5Ñ5Ô5Ñ5Ô5Ð5Ð5Ð5Ð5Ð5Ð5Ð5ØÐÔ Ð/ KÐ/Ð  KÒ/Ð/Ð/Ð/Õ/Ô/Ð/Ð/Ð/Ð/Ð  KÐ/Ñ/Ô/Õ/Ô/Ð Ñ/Ô/Õ/Ô/ KÑ/Ô/Ð/Ð/Ñ/Ð/Ð/Ð/Ð/Ð/Ñ/Ð/Õ/Õ/Ô/Ð/Ñ/Ô/Ñ/Ô/Ð/Ð/Ð/Ð/Ð/Ð/Ð/ØÐ(�c˜-Ô(Ð(ˆ7Ð(Ð(Ð(Ð(Ð(Õ(Ô(Ð(Ð(Ð(Ð(ˆ7Ð(Ð(Ñ(Ô(Õ(Ô(ˆ7Ñ(Ô(Õ(Ô(Ð(Ñ(Ô(Ð(Ð(Ñ(Ð(Ð(Ð(Ð(Ð(Ñ(Ð(Õ(Õ(Ô(Ð(Ñ(Ô(Ñ(Ô(Ð(Ð(Ð(Ð(Ð(Ð(Ð(ØÐÔ Ð+ GÐ+Ð  GÒ+Ð+Ð+Ð+Õ+Ô+Ð+Ð+Ð+Ð+Ð  GÐ+Ñ+Ô+Õ+Ô+Ð Ñ+Ô+Õ+Ô+ GÑ+Ô+Ð+Ð+Ñ+Ð+Ð+Ð+Ð+Ð+Ñ+Ð+Õ+Õ+Ô+Ð+Ñ+Ô+Ñ+Ô+Ð+Ð+Ð+Ð+Ð+Ð+Ð+õ × Ò Ø6ØÝ˜‘”Ý˜>Ñ*Ô*Ý˜^Ñ,Ô,ØCð !ñ ô €Dð Ð Ô!Ð6Ð%6Ð6Ð!Ð%6Ò6Ð6Ð6Ð6Õ6Ô6Ð6Ð6Ð6Ð6Ð!Ð%6Ð6Ñ6Ô6Õ6Ô6Ð!Ñ6Ô6Õ6Ô6Ð%6Ñ6Ô6Ð6Ð6Ñ6Ð6Ð6Ð6Ð6Ð6Ñ6Ð6Õ6Õ6Ô6Ð6Ñ6Ô6Ñ6Ô6Ð6Ð6Ð6Ð6Ð6Ð6Ð6ØÐ Ô!Ð- XÐ-Ð! XÒ-Ð-Ð-Ð-Õ-Ô-Ð-Ð-Ð-Ð-Ð! XÐ-Ñ-Ô-Õ-Ô-Ð!Ñ-Ô-Õ-Ô- XÑ-Ô-Ð-Ð-Ñ-Ð-Ð-Ð-Ð-Ð-Ñ-Ð-Õ-Õ-Ô-Ð-Ñ-Ô-Ñ-Ô-Ð-Ð-Ð-Ð-Ð-Ð-Ð-ØÐ)�d˜=Ô)Ð)ˆ7Ð)Ð)Ð)Ð)Ð)Õ)Ô)Ð)Ð)Ð)Ð)ˆ7Ð)Ð)Ñ)Ô)Õ)Ô)ˆ7Ñ)Ô)Õ)Ô)Ð)Ñ)Ô)Ð)Ð)Ñ)Ð)Ð)Ð)Ð)Ð)Ñ)Ð)Õ)Õ)Ô)Ð)Ñ)Ô)Ñ)Ô)Ð)Ð)Ð)Ð)Ð)Ð)Ð)Ð)Ð)r   c            	      óR  — t                                ddt          d¦  «        t          d¦  «        t          d¦  «        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}}| 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dt          d¦  «        t          d¦  «        t          d¦  «        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}}|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S )ug   Kiá»ƒm tra nháº­n diá»‡n thuÃª ca mÃ¡y / ca xe thi cÃ´ng (Ä�VT: Ca/Giá»�/NgÃ y hoáº·c cÃ³ chá»¯ thuÃª).u<   ThuÃª mÃ¡y Ä‘Ã o Komatsu PC200-8 thi cÃ´ng Ä‘áº¯p bá»� kÃªnhÚCaz15.0z	4500000.0z
67500000.0u,   CÃ”NG TY Cá»” PHáº¦N CÆ  GIá»šI Háº¢I PHÃ’NGr   r   ÚRENTAL_EQUIPMENTr   r   r   r"   r#   Nr$   r%   r+   Úrentedu7   Váº­n chuyá»ƒn Ä‘áº¥t Ä‘áº¯p báº±ng xe ben Howo 4 chÃ¢nu   Chuyáº¿nz50.0z350000.0z
17500000.0u)   Há»¢P TÃ�C XÃƒ Váº¬N Táº¢I Ä�Æ¯á»œNG Bá»˜Útruckr/   r7   s          r   Ú$test_classify_rented_equipment_shiftrE   6   s˜  € õ ×
Ò
ØPØÝ˜‘”Ý˜;Ñ'Ô'Ý˜\Ñ*Ô*ØBð  ñ ô €Cð ÐÔ Ð6Ð$6Ð6Ð Ð$6Ò6Ð6Ð6Ð6Õ6Ô6Ð6Ð6Ð6Ð6Ð Ð$6Ð6Ñ6Ô6Õ6Ô6Ð Ñ6Ô6Õ6Ô6Ð$6Ñ6Ô6Ð6Ð6Ñ6Ð6Ð6Ð6Ð6Ð6Ñ6Ð6Õ6Õ6Ô6Ð6Ñ6Ô6Ñ6Ô6Ð6Ð6Ð6Ð6Ð6Ð6Ð6ØÐÔ Ð/ KÐ/Ð  KÒ/Ð/Ð/Ð/Õ/Ô/Ð/Ð/Ð/Ð/Ð  KÐ/Ñ/Ô/Õ/Ô/Ð Ñ/Ô/Õ/Ô/ KÑ/Ô/Ð/Ð/Ñ/Ð/Ð/Ð/Ð/Ð/Ñ/Ð/Õ/Õ/Ô/Ð/Ñ/Ô/Ñ/Ô/Ð/Ð/Ð/Ð/Ð/Ð/Ð/ØÐÔ Ð, HÐ,Ð  HÒ,Ð,Ð,Ð,Õ,Ô,Ð,Ð,Ð,Ð,Ð  HÐ,Ñ,Ô,Õ,Ô,Ð Ñ,Ô,Õ,Ô, HÑ,Ô,Ð,Ð,Ñ,Ð,Ð,Ð,Ð,Ð,Ñ,Ð,Õ,Õ,Ô,Ð,Ñ,Ô,Ñ,Ô,Ð,Ð,Ð,Ð,Ð,Ð,Ð,õ × Ò ØKØÝ˜‘”Ý˜:Ñ&Ô&Ý˜\Ñ*Ô*Ø?ð !ñ ô €Dð Ð Ô!Ð7Ð%7Ð7Ð!Ð%7Ò7Ð7Ð7Ð7Õ7Ô7Ð7Ð7Ð7Ð7Ð!Ð%7Ð7Ñ7Ô7Õ7Ô7Ð!Ñ7Ô7Õ7Ô7Ð%7Ñ7Ô7Ð7Ð7Ñ7Ð7Ð7Ð7Ð7Ð7Ñ7Ð7Õ7Õ7Ô7Ð7Ñ7Ô7Ñ7Ô7Ð7Ð7Ð7Ð7Ð7Ð7Ð7ØÐ Ô!Ð, WÐ,Ð! WÒ,Ð,Ð,Ð,Õ,Ô,Ð,Ð,Ð,Ð,Ð! WÐ,Ñ,Ô,Õ,Ô,Ð!Ñ,Ô,Õ,Ô, WÑ,Ô,Ð,Ð,Ñ,Ð,Ð,Ð,Ð,Ð,Ñ,Ð,Õ,Õ,Ô,Ð,Ñ,Ô,Ñ,Ô,Ð,Ð,Ð,Ð,Ð,Ð,Ð,ØÐ Ô!Ð- XÐ-Ð! XÒ-Ð-Ð-Ð-Õ-Ô-Ð-Ð-Ð-Ð-Ð! XÐ-Ñ-Ô-Õ-Ô-Ð!Ñ-Ô-Õ-Ô- XÑ-Ô-Ð-Ð-Ñ-Ð-Ð-Ð-Ð-Ð-Ñ-Ð-Õ-Õ-Ô-Ð-Ñ-Ô-Ñ-Ô-Ð-Ð-Ð-Ð-Ð-Ð-Ð-Ð-Ð-r   c            	      óà  — t                                ddt          d¦  «        t          d¦  «        t          d¦  «        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dt          d¦  «        t          d¦  «        t          d¦  «        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dt          d¦  «        t          d¦  «        t          d¦  «        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}}dS ) uH   Kiá»ƒm tra phÃ¢n loáº¡i váº­t tÆ° xÃ¢y dá»±ng nháº­p kho chá»� xá»­ lÃ½.u'   ThÃ©p thanh váº±n D18 CB400V HÃ²a PhÃ¡tu   Táº¥nz25.5z
15200000.0z387600000.0u3   CÃ”NG TY Cá»” PHáº¦N THÃ‰P HÃ’A PHÃ�T Háº¢I DÆ¯Æ NGr   r   ÚWAREHOUSE_MATERIALr   r   r   r"   r#   NÚmaterial_groupÚSTEELu;   Xi mÄƒng poÃ³c lÄƒng há»—n há»£p PCB40 Chinfon Háº£i PhÃ²ngÚBaoz500.0z85000.0z
42500000.0u   CÃ”NG TY XI MÄ‚NG CHINFONÚCEMENTu   Dáº§u Ä�iÃªzen DO 0.05S-IIu   LÃ­tz2400.0z18500.0z
44400000.0u-   CÃ”NG TY XÄ‚NG Dáº¦U KHU Vá»°C III - TNHH MTVÚFUEL_OILr/   )Ú	res_steelr9   r:   r;   r<   r=   Ú
res_cementÚres_fuels           r   Ú$test_classify_materials_to_warehouserP   S   sæ  € õ ×%Ò%Ø;ØÝ˜‘”Ý˜<Ñ(Ô(Ý˜]Ñ+Ô+ØIð &ñ ô €Ið Ð%Ô&Ð>Ð*>Ð>Ð&Ð*>Ò>Ð>Ð>Ð>Õ>Ô>Ð>Ð>Ð>Ð>Ð&Ð*>Ð>Ñ>Ô>Õ>Ô>Ð&Ñ>Ô>Õ>Ô>Ð*>Ñ>Ô>Ð>Ð>Ñ>Ð>Ð>Ð>Ð>Ð>Ñ>Ð>Õ>Õ>Ô>Ð>Ñ>Ô>Ñ>Ô>Ð>Ð>Ð>Ð>Ð>Ð>Ð>ØÐ%Ô&Ð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õ ×&Ò&ØOØÝ˜Ñ!Ô!Ý˜9Ñ%Ô%Ý˜\Ñ*Ô*Ø/ð 'ñ ô €Jð Ð&Ô'Ð?Ð+?Ð?Ð'Ð+?Ò?Ð?Ð?Ð?Õ?Ô?Ð?Ð?Ð?Ð?Ð'Ð+?Ð?Ñ?Ô?Õ?Ô?Ð'Ñ?Ô?Õ?Ô?Ð+?Ñ?Ô?Ð?Ð?Ñ?Ð?Ð?Ð?Ð?Ð?Ñ?Ð?Õ?Õ?Ô?Ð?Ñ?Ô?Ñ?Ô?Ð?Ð?Ð?Ð?Ð?Ð?Ð?ØÐ&Ô'Ð3¨8Ð3Ð'¨8Ò3Ð3Ð3Ð3Õ3Ô3Ð3Ð3Ð3Ð3Ð'¨8Ð3Ñ3Ô3Õ3Ô3Ð'Ñ3Ô3Õ3Ô3¨8Ñ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õ ×$Ò$Ø.ØÝ˜Ñ"Ô"Ý˜9Ñ%Ô%Ý˜\Ñ*Ô*ØCð %ñ ô €Hð Ð$Ô%Ð=Ð)=Ð=Ð%Ð)=Ò=Ð=Ð=Ð=Õ=Ô=Ð=Ð=Ð=Ð=Ð%Ð)=Ð=Ñ=Ô=Õ=Ô=Ð%Ñ=Ô=Õ=Ô=Ð)=Ñ=Ô=Ð=Ð=Ñ=Ð=Ð=Ð=Ð=Ð=Ñ=Ð=Õ=Õ=Ô=Ð=Ñ=Ô=Ñ=Ô=Ð=Ð=Ð=Ð=Ð=Ð=Ð=ØÐ$Ô%Ð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Ð3Ð3Ð3Ñ3Ð3Õ3Õ3Ô3Ð3Ñ3Ô3Ñ3Ô3Ð3Ð3Ð3Ð3Ð3Ð3Ð3Ð3Ð3r   c                  ód  — t                                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         }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}}d
S )ua   Kiá»ƒm tra quy trÃ¬nh trÃ­ch xuáº¥t toÃ n bá»™ dá»¯ liá»‡u Truth tá»« hÃ³a Ä‘Æ¡n vÃ o PostgreSQL.F)Úpurge_draftsÚstatusÚsuccessr   r   r   r"   r#   NÚstatsÚtotal_invoices_scannedr   )ú>)z%(py1)s > %(py4)sÚwarehouse_materials_staged)r0   Úextract_and_sync_all_truthr2   r3   r4   r5   r6   )r8   r9   r:   r;   r<   r=   rU   s          r   Ú+test_extract_and_sync_all_truth_integrationrZ   z   s   € å
×
,Ò
,¸%Ð
,Ñ
@Ô
@€CØˆxŒ=Ð%˜IÐ%ˆ=˜IÒ%Ð%Ð%Ð%Õ%Ô%Ð%Ð%Ð%Ð%ˆ=˜IÐ%Ñ%Ô%Õ%Ô%ˆ=Ñ%Ô%Õ%Ô%˜IÑ%Ô%Ð%Ð%Ñ%Ð%Ð%Ð%Ð%Ð%Ñ%Ð%Õ%Õ%Ô%Ð%Ñ%Ô%Ñ%Ô%Ð%Ð%Ð%Ð%Ð%Ð%Ð%Ø�ŒL€EØÐ)Ô*Ð.¨QÐ.Ð*¨QÒ.Ð.Ð.Ð.Õ.Ô.Ð.Ð.Ð.Ð.Ð*¨QÐ.Ñ.Ô.Õ.Ô.Ð*Ñ.Ô.Õ.Ô.¨QÑ.Ô.Ð.Ð.Ñ.Ð.Ð.Ð.Ð.Ð.Ñ.Ð.Õ.Õ.Ô.Ð.Ñ.Ô.Ñ.Ô.Ð.Ð.Ð.Ð.Ð.Ð.Ð.ØÐ-Ô.Ð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Ð2Ð2Ð2Ð2Ñ2Ð2Õ2Õ2Ô2Ð2Ñ2Ô2Ñ2Ô2Ð2Ð2Ð2Ð2Ð2Ð2Ð2Ð2Ð2r   c                  ó€  — t                                dddi¬¦  «        } | 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         }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}}|
                     ¦   «         }|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}||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}||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}}|                     ¦   «         }|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"}||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                                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         }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&}||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&         }||v }|slt          j        d|fd)||f¦  «        t          j        |¦  «        t          j        |¦  «        dœz  }dd|iz  }	t          t          j
        |	¦  «        ¦  «        ‚dx}x}}dS )*uF   Kiá»ƒm tra cÃ¡c REST API endpoint quáº£n lÃ½ kho vÃ  tÃ i sáº£n Truth.z-/v1/erp/inventory-truth/extract-from-invoicesrR   F)ÚjsonéÈ   r   )z3%(py2)s
{%(py2)s = %(py0)s.status_code
} == %(py5)sÚres_post)Úpy0Úpy2Úpy5zassert %(py7)sÚpy7NrS   rT   r   r   r"   r#   z*/v1/erp/inventory-truth/warehouse?limit=20Úres_whÚitemsr(   )z%(py1)s in %(py3)sÚwh_data)r    Úpy3zassert %(py5)sra   Útotal_countr   )ú>=)z%(py1)s >= %(py4)sz'/v1/erp/inventory-truth/equipment-truthÚres_eqÚ	equipmentÚeq_dataz/v1/erp/inventory-truth/summaryÚres_sumÚsummaryÚsum_dataÚtotal_warehouse_value_vndr*   )ÚclientÚpostÚstatus_coder2   r3   Ú@py_builtinsÚlocalsÚ_should_repr_global_namer4   r5   r6   r\   Úget)r^   Ú@py_assert1Ú@py_assert4r:   Ú@py_format6Ú@py_format8r9   r;   r<   r=   rc   re   Ú@py_format4ri   rk   rl   rn   s                    r   Ú"test_api_inventory_truth_endpointsr|   ƒ   s\
  € õ �{Š{Ø7¸~ÈuÐ>Uð ñ ô €Hð ÔÐ& 3Ð&Ð 3Ò&Ð&Ð&Ð&Õ&Ô&Ð&Ð&Ð&Ð&Ð 3Ð&Ñ&Ô&Ð&Õ&Ô&Ñ&Ô&Ð&Ð&Õ&Ô&ˆ8Ñ&Ô&Ð&Õ&Ô&ˆ8Ñ&Ô&Ð&Ð&Õ&Ô&ÐÑ&Ô&Õ&Ô& 3Ñ&Ô&Ð&Ð&Ñ&Ð&Ð&Ð&Ð&Ð&Ñ&Ð&Õ&Õ&Ô&Ð&Ñ&Ô&Ñ&Ô&Ð&Ð&Ð&Ð&Ð&Ð&Ð&Ø�=Š=‰?Œ?˜8Ô$Ð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õ �ZŠZÐDÑEÔE€FØÔÐ$ Ð$Ð Ò$Ð$Ð$Ð$Õ$Ô$Ð$Ð$Ð$Ð$Ð Ð$Ñ$Ô$Ð$Õ$Ô$Ñ$Ô$Ð$Ð$Õ$Ô$ˆ6Ñ$Ô$Ð$Õ$Ô$ˆ6Ñ$Ô$Ð$Ð$Õ$Ô$ÐÑ$Ô$Õ$Ô$ Ñ$Ô$Ð$Ð$Ñ$Ð$Ð$Ð$Ð$Ð$Ñ$Ð$Õ$Õ$Ô$Ð$Ñ$Ô$Ñ$Ô$Ð$Ð$Ð$Ð$Ð$Ð$Ð$Ø�kŠk‰mŒm€GØ�8ÔÐ) 	Ð)Ð 	Ò)Ð)Ð)Ð)Õ)Ô)Ð)Ð)Ð)Ð)Ð 	Ð)Ñ)Ô)Õ)Ô)ÐÑ)Ô)Õ)Ô) 	Ñ)Ô)Ð)Ð)Ñ)Ð)Ð)Ð)Ð)Ð)Ñ)Ð)Õ)Õ)Ô)Ð)Ñ)Ô)Ñ)Ô)Ð)Ð)Ð)Ð)Ð)Ð)Ð)ØÐˆ7�gÐÐÐÐÕÔÐÐÐÐˆ7�gÐÑÔÕÔˆ7ÑÔÐÕÔÑÔÐÐÕÔ�gÑÔÐÕÔ�gÑÔÐÐÐÐÑÐÐÐÐÐÑÐÕÕÔÐÑÔÑÔÐÐÐÐÐØ�=Ô!Ð& QÐ&Ð! QÒ&Ð&Ð&Ð&Õ&Ô&Ð&Ð&Ð&Ð&Ð! QÐ&Ñ&Ô&Õ&Ô&Ð!Ñ&Ô&Õ&Ô& QÑ&Ô&Ð&Ð&Ñ&Ð&Ð&Ð&Ð&Ð&Ñ&Ð&Õ&Õ&Ô&Ð&Ñ&Ô&Ñ&Ô&Ð&Ð&Ð&Ð&Ð&Ð&Ð&õ �ZŠZÐAÑBÔB€FØÔÐ$ Ð$Ð Ò$Ð$Ð$Ð$Õ$Ô$Ð$Ð$Ð$Ð$Ð Ð$Ñ$Ô$Ð$Õ$Ô$Ñ$Ô$Ð$Ð$Õ$Ô$ˆ6Ñ$Ô$Ð$Õ$Ô$ˆ6Ñ$Ô$Ð$Ð$Õ$Ô$ÐÑ$Ô$Õ$Ô$ Ñ$Ô$Ð$Ð$Ñ$Ð$Ð$Ð$Ð$Ð$Ñ$Ð$Õ$Õ$Ô$Ð$Ñ$Ô$Ñ$Ô$Ð$Ð$Ð$Ð$Ð$Ð$Ð$Ø�kŠk‰mŒm€GØ�8ÔÐ) 	Ð)Ð 	Ò)Ð)Ð)Ð)Õ)Ô)Ð)Ð)Ð)Ð)Ð 	Ð)Ñ)Ô)Õ)Ô)ÐÑ)Ô)Õ)Ô) 	Ñ)Ô)Ð)Ð)Ñ)Ð)Ð)Ð)Ð)Ð)Ñ)Ð)Õ)Õ)Ô)Ð)Ñ)Ô)Ñ)Ô)Ð)Ð)Ð)Ð)Ð)Ð)Ð)ØÐ!ˆ;˜'Ð!Ð!Ð!Ð!Õ!Ô!Ð!Ð!Ð!Ð!ˆ;˜'Ð!Ñ!Ô!Õ!Ô!ˆ;Ñ!Ô!Ð!Õ!Ô!Ñ!Ô!Ð!Ð!Õ!Ô!˜'Ñ!Ô!Ð!Õ!Ô!˜'Ñ!Ô!Ð!Ð!Ð!Ð!Ñ!Ð!Ð!Ð!Ð!Ð!Ñ!Ð!Õ!Õ!Ô!Ð!Ñ!Ô!Ñ!Ô!Ð!Ð!Ð!Ð!Ð!õ �jŠjÐ:Ñ;Ô;€GØÔÐ% #Ð%Ð #Ò%Ð%Ð%Ð%Õ%Ô%Ð%Ð%Ð%Ð%Ð #Ð%Ñ%Ô%Ð%Õ%Ô%Ñ%Ô%Ð%Ð%Õ%Ô%ˆ7Ñ%Ô%Ð%Õ%Ô%ˆ7Ñ%Ô%Ð%Ð%Õ%Ô%ÐÑ%Ô%Õ%Ô% #Ñ%Ô%Ð%Ð%Ñ%Ð%Ð%Ð%Ð%Ð%Ñ%Ð%Õ%Õ%Ô%Ð%Ñ%Ô%Ñ%Ô%Ð%Ð%Ð%Ð%Ð%Ð%Ð%Ø�|Š|‰~Œ~€HØ�HÔÐ* Ð*Ð Ò*Ð*Ð*Ð*Õ*Ô*Ð*Ð*Ð*Ð*Ð Ð*Ñ*Ô*Õ*Ô*ÐÑ*Ô*Õ*Ô* Ñ*Ô*Ð*Ð*Ñ*Ð*Ð*Ð*Ð*Ð*Ñ*Ð*Õ*Õ*Ô*Ð*Ñ*Ô*Ñ*Ô*Ð*Ð*Ð*Ð*Ð*Ð*Ð*ØÐ ˆ9˜Ð Ð Ð Ð Õ Ô Ð Ð Ð Ð ˆ9˜Ð Ñ Ô Õ Ô ˆ9Ñ Ô Ð Õ Ô Ñ Ô Ð Ð Õ Ô ˜Ñ Ô Ð Õ Ô ˜Ñ Ô Ð Ð Ð Ð Ñ Ð Ð Ð Ð Ð Ñ Ð Õ Õ Ô Ð Ñ Ô Ñ Ô Ð Ð Ð Ð Ð Ø&Ð=¨(°9Ô*=Ð=Ð&Ð*=Ð=Ð=Ð=Ð=Õ=Ô=Ð=Ð=Ð=Ð=Ð&Ð*=Ð=Ñ=Ô=Õ=Ô=Ð&Ñ=Ô=Õ=Ô=Ð*=Ñ=Ô=Ð=Ð=Ñ=Ð=Ð=Ð=Ð=Ð=Ñ=Ð=Õ=Õ=Ô=Ð=Ñ=Ô=Ñ=Ô=Ð=Ð=Ð=Ð=Ð=Ð=Ð=Ð=Ð=r   )Ú__doc__Úbuiltinsrs   Ú_pytest.assertion.rewriteÚ	assertionÚrewriter2   Údecimalr   Úfastapi.testclientr   Ú"app.modules.auth.presentation.authr   Úapp.mainr   ÚAapp.modules.invoices.application.invoice_truth_extraction_servicer   Údependency_overridesrp   r0   r?   rE   rP   rZ   r|   r   r   r   ú<module>rˆ      s  ððð ð € € € € € € € € € € € € Ð Ð Ð Ð Ð Ð à )Ð )Ð )Ð )Ð )Ð )à ?Ð ?Ð ?Ð ?Ð ?Ð ?Ø Ð Ð Ð Ð Ð Ø kÐ kÐ kÐ kÐ kÐ kð.ð .€Ô Ð)Ñ *ð 
ˆ�C‰Œ€Ø
'Ð
'Ñ
)Ô
)€ð*ð *ð *ð<.ð .ð .ð:$4ð $4ð $4ðN3ð 3ð 3ð>ð >ð >ð >ð >r   