§
    ñu¦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
mZ d„ Zd„ Zd„ Zd„ ZdS )u›   
Unit Tests for Poe2VisualTool HWID Engine
Kiá»ƒm tra tÃ­nh nháº¥t quÃ¡n (Deterministic), Ä‘á»‹nh dáº¡ng vÃ  Ä‘á»™ tin cáº­y cá»§a mÃ£ pháº§n cá»©ng HWID.
é    N)Úget_machine_hwidÚ get_hardware_fingerprint_detailsc                  ó<  — t          ¦   «         } 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} ||¦  «        }|sžddt          j        ¦   «         v st          j        | ¦  «        rt          j        | ¦  «        ndt          j        |¦  «        t          j        |¦  «        t          j        |¦  «        d	œz  }t          t          j	        |¦  «        ¦  «        ‚dx}x}}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        |¦  «        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 )uS   Kiá»ƒm tra HWID sinh ra tuÃ¢n thá»§ Ä‘á»‹nh dáº¡ng chuáº©n PVT-XXXX-XXXX-XXXX-XXXX.ú5assert %(py4)s
{%(py4)s = %(py0)s(%(py1)s, %(py2)s)
}Ú
isinstanceÚhwidÚstr©Úpy0Úpy1Úpy2Úpy4NzPVT-zLassert %(py6)s
{%(py6)s = %(py2)s
{%(py2)s = %(py0)s.startswith
}(%(py4)s)
})r   r   r   Úpy6z5^PVT-[0-9A-F]{4}-[0-9A-F]{4}-[0-9A-F]{4}-[0-9A-F]{4}$)úis not)zO%(py5)s
{%(py5)s = %(py2)s
{%(py2)s = %(py0)s.match
}(%(py3)s)
} is not %(py8)sÚpattern)r   r   Úpy3Úpy5Úpy8zassert %(py10)sÚpy10)r   r   r	   Ú@py_builtinsÚlocalsÚ
@pytest_arÚ_should_repr_global_nameÚ	_safereprÚAssertionErrorÚ_format_explanationÚ
startswithÚreÚcompileÚmatchÚ_call_reprcompare)r   Ú@py_assert3Ú@py_format5Ú@py_assert1Ú@py_assert5Ú@py_format7r   Ú@py_assert4Ú@py_assert7Ú@py_assert6Ú@py_format9Ú@py_format11s               ú-C:\Projects\Poe2VisualTool\tests\test_hwid.pyÚtest_hwid_formatr-      s&  € åÑÔ€DÝ�d�CÑ Ô Ð Ð Ñ Ð Ð Õ Ô Ñ Ô Ð Ð Õ Ô �:Ñ Ô Ð Õ Ô �:Ñ Ô Ð Ð Ð Õ Ô Ñ Ô Ð Ð Õ Ô �dÑ Ô Ð Õ Ô �dÑ Ô Ð Ð Ð Õ Ô Ñ Ô Ð Ð Õ Ô �CÑ Ô Ð Õ Ô �CÑ Ô Ð Ð Õ Ô Ð Ñ Ô Ð Ð Ñ Ð Õ Õ Ô Ð Ñ Ô Ñ Ô Ð Ð Ð ØŒ?Ð"˜6Ð"ˆ?ˆ?˜6Ñ"Ô"Ð"Ð"Ð"Ð"Ð"Õ"Ô"Ñ"Ô"Ð"Ð"Õ"Ô"ˆ4Ñ"Ô"Ð"Õ"Ô"ˆ4Ñ"Ô"Ð"Ð"Õ"Ô"ˆ?Ñ"Ô"Õ"Ô"˜6Ñ"Ô"Õ"Ô"Ð"Ñ"Ô"Ð"Ð"Ñ"Ð"Õ"Õ"Ô"Ð"Ñ"Ô"Ñ"Ô"Ð"Ð"Ð"Ð"Ð"Ð"Ð"åŒjÐQÑRÔR€GØŒ=Ð*ˆ=ˆ=˜ÑÔÐ* dÐ*Ð dÐ*Ð*Ð*Ð*Õ*Ô*Ð*Ð*Ð*Ð*Ð dÐ*Ñ*Ô*Ð*Õ*Ô*Ñ*Ô*Ð*Ð*Õ*Ô*ˆ7Ñ*Ô*Ð*Õ*Ô*ˆ7Ñ*Ô*Ð*Ð*Õ*Ô*ˆ=Ñ*Ô*Ð*Õ*Ô*Ñ*Ô*Ð*Ð*Õ*Ô*˜Ñ*Ô*Ð*Õ*Ô*˜Ñ*Ô*Ð*Ð*Õ*Ô*ÐÑ*Ô*Õ*Ô* dÑ*Ô*Ð*Ð*Ñ*Ð*Ð*Ð*Ð*Ð*Ñ*Ð*Õ*Õ*Ô*Ð*Ñ*Ô*Ñ*Ô*Ð*Ð*Ð*Ð*Ð*Ð*Ð*Ð*Ð*Ð*Ð*ó    c                  óÖ  — t          ¦   «         } t          ¦   «         }| |k    }|sÂt          j        d|fd| |f¦  «        dt          j        ¦   «         v st          j        | ¦  «        rt          j        | ¦  «        nddt          j        ¦   «         v st          j        |¦  «        rt          j        |¦  «        nddœz  }dd|iz  }t          t          j        |¦  «        ¦  «        ‚d}dS )	uh   Kiá»ƒm tra gá»�i nhiá»�u láº§n liÃªn tiáº¿p trÃªn cÃ¹ng 1 mÃ¡y pháº£i tráº£ vá»� cÃ¹ng 1 mÃ£ duy nháº¥t.)ú==)z%(py0)s == %(py2)sÚhwid_1Úhwid_2©r   r   úassert %(py4)sr   N©	r   r   r!   r   r   r   r   r   r   )r1   r2   r$   Ú@py_format3r#   s        r,   Útest_hwid_deterministicr7      s  € åÑÔ€FÝÑÔ€FØ�VÒÐÐÐÕÔÐÐÐÐˆ6�VÐÑÔÐÕÔÑÔÐÐÕÔˆ6ÑÔÐÕÔˆ6ÑÔÐÐÐÕÔÑÔÐÐÕÔ�VÑÔÐÕÔ�VÑÔÐÐÐÐÑÐÐÐÐÐÑÐÕÕÔÐÑÔÑÔÐÐÐÐÐr.   c                  óÞ  — t          d¬¦  «        } t          d¬¦  «        }| |k    }|sÂt          j        d|fd| |f¦  «        dt          j        ¦   «         v st          j        | ¦  «        rt          j        | ¦  «        nddt          j        ¦   «         v st          j        |¦  «        rt          j        |¦  «        nddœz  }d	d
|iz  }t          t          j        |¦  «        ¦  «        ‚d}dS )uZ   Kiá»ƒm tra muá»‘i khÃ¡c nhau pháº£i sinh ra mÃ£ HWID khÃ¡c nhau (báº£o vá»‡ chá»‘ng copy).ÚSaltA)Úcustom_saltÚSaltB)ú!=)z%(py0)s != %(py2)sÚhwid_aÚhwid_br3   r4   r   Nr5   )r=   r>   r$   r6   r#   s        r,   Útest_hwid_custom_saltr?      s  € å¨'Ð2Ñ2Ô2€FÝ¨'Ð2Ñ2Ô2€FØ�VÒÐÐÐÕÔÐÐÐÐˆ6�VÐÑÔÐÕÔÑÔÐÐÕÔˆ6ÑÔÐÕÔˆ6ÑÔÐÐÐÕÔÑÔÐÐÕÔ�VÑÔÐÕÔ�VÑÔÐÐÐÐÑÐÐÐÐÐÑÐÕÕÔÐÑÔÑÔÐÐÐÐÐr.   c                  ó  — t          ¦   «         } 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}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         }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S )uE   Kiá»ƒm tra trÃ­ch xuáº¥t chi tiáº¿t pháº§n cá»©ng khÃ´ng bá»‹ rá»—ng.r   r   ÚdetailsÚdictr
   NÚmotherboard_uuid)Úin)z%(py1)s in %(py3)s)r   r   zassert %(py5)sr   Úcpu_idÚdisk_serialr   )ú>)z/%(py4)s
{%(py4)s = %(py0)s(%(py2)s)
} > %(py7)sÚlen)r   r   r   Úpy7zassert %(py9)sÚpy9)r   r   rB   r   r   r   r   r   r   r   r!   rH   )rA   r"   r#   Ú@py_assert0Ú@py_assert2Ú@py_format4Ú@py_format6r$   r)   r%   Ú@py_format8Ú@py_format10s               r,   Útest_hardware_detailsrQ   #   sf  € å.Ñ0Ô0€GÝ�g�tÑ$Ô$Ð$Ð$Ñ$Ð$Ð$Õ$Ô$Ñ$Ô$Ð$Ð$Õ$Ô$�:Ñ$Ô$Ð$Õ$Ô$�:Ñ$Ô$Ð$Ð$Ð$Õ$Ô$Ñ$Ô$Ð$Ð$Õ$Ô$�gÑ$Ô$Ð$Õ$Ô$�gÑ$Ô$Ð$Ð$Ð$Õ$Ô$Ñ$Ô$Ð$Ð$Õ$Ô$�tÑ$Ô$Ð$Õ$Ô$�tÑ$Ô$Ð$Ð$Õ$Ô$Ð$Ñ$Ô$Ð$Ð$Ñ$Ð$Õ$Õ$Ô$Ð$Ñ$Ô$Ñ$Ô$Ð$Ð$Ð$ØÐ(Ð Ð(Ð(Ð(Ð(Õ(Ô(Ð(Ð(Ð(Ð(Ð Ð(Ñ(Ô(Õ(Ô(ÐÑ(Ô(Ð(Õ(Ô(Ñ(Ô(Ð(Ð(Õ(Ô( Ñ(Ô(Ð(Õ(Ô( Ñ(Ô(Ð(Ð(Ð(Ð(Ñ(Ð(Ð(Ð(Ð(Ð(Ñ(Ð(Õ(Õ(Ô(Ð(Ñ(Ô(Ñ(Ô(Ð(Ð(Ð(Ð(Ð(ØÐˆ8�wÐÐÐÐÕÔÐÐÐÐˆ8�wÐÑÔÕÔˆ8ÑÔÐÕÔÑÔÐÐÕÔ�wÑÔÐÕÔ�wÑÔÐÐÐÐÑÐÐÐÐÐÑÐÕÕÔÐÑÔÑÔÐÐÐÐÐØÐ#ˆ=˜GÐ#Ð#Ð#Ð#Õ#Ô#Ð#Ð#Ð#Ð#ˆ=˜GÐ#Ñ#Ô#Õ#Ô#ˆ=Ñ#Ô#Ð#Õ#Ô#Ñ#Ô#Ð#Ð#Õ#Ô#˜GÑ#Ô#Ð#Õ#Ô#˜GÑ#Ô#Ð#Ð#Ð#Ð#Ñ#Ð#Ð#Ð#Ð#Ð#Ñ#Ð#Õ#Õ#Ô#Ð#Ñ#Ô#Ñ#Ô#Ð#Ð#Ð#Ð#Ð#ØÐ)Ô*Ð/�3Ð*Ñ+Ô+Ð/¨aÐ/Ð+¨aÒ/Ð/Ð/Ð/Õ/Ô/Ð/Ð/Ð/Ð/Ð+¨aÐ/Ñ/Ô/Ð/Õ/Ô/Ñ/Ô/Ð/Ð/Õ/Ô/�3Ñ/Ô/Ð/Õ/Ô/�3Ñ/Ô/Ð/Ð/Õ/Ô/Ð*Ñ/Ô/Õ/Ô/Ð+Ñ/Ô/Õ/Ô/¨aÑ/Ô/Ð/Ð/Ñ/Ð/Ð/Ð/Ð/Ð/Ñ/Ð/Õ/Õ/Ô/Ð/Ñ/Ô/Ñ/Ô/Ð/Ð/Ð/Ð/Ð/Ð/Ð/Ð/Ð/Ð/Ð/r.   )Ú__doc__Úbuiltinsr   Ú_pytest.assertion.rewriteÚ	assertionÚrewriter   r   ÚpytestÚsrc.commercial.hwidr   r   r-   r7   r?   rQ   © r.   r,   ú<module>rZ      s›   ððð ð
 € € € € € € € € € € € € €	€	€	€	Ø €€€Ø RÐ RÐ RÐ RÐ RÐ RÐ RÐ Rð+ð +ð +ðð ð ðð ð ð0ð 0ð 0ð 0ð 0r.   