o
    Ûäh=  ã                   @   sT  d dl Z d dlmZ d dlZd dlZd dlZd dlmZ d dlm	Z	 d dl
mZ d dlmZmZmZmZ dd„ Zd	d
„ Zdd„ Zdd„ Zdd„ Zdd„ Zdd„ Zdd„ Zdd„ Zdd„ Zdd„ Zdd„ Zdd „ Zd!d"„ Zd#d$„ Zd%d&„ Zd'd(„ Z d)d*„ Z!d+d,„ Z"d-d.„ Z#d/d0„ Z$d1d2„ Z%d3d4„ Z&d5d6„ Z'd7d8„ Z(d9d:„ Z)d;d<„ Z*d=d>„ Z+d?d@„ Z,dS )Aé    N)Úmock)ÚDataOverflowError)Ú	BaseImage)ÚUNICODE_TEXT)ÚMODE_8BIT_BYTEÚMODE_ALPHA_NUMÚMODE_NUMBERÚQRDatac                  C   ó&   t jdd�} |  d¡ | jdd� d S ©Né   ©ÚversionÚaF©Úfit©ÚqrcodeÚQRCodeÚadd_dataÚmake©Úqr© r   úK/var/www/html/venv/lib/python3.10/site-packages/qrcode/tests/test_qrcode.pyÚ
test_basic   ó   
r   c                  C   r
   )Né   r   r   Fr   r   r   r   r   r   Ú
test_large   r   r   c                   C   ó<   t  t¡� tjdd� W d   ƒ d S 1 sw   Y  d S )Né*   r   ©ÚpytestÚraisesÚ
ValueErrorr   r   r   r   r   r   Útest_invalid_version   ó   "ÿr%   c                   C   r   )Néÿÿÿÿ©Úborderr!   r   r   r   r   Útest_invalid_border   r&   r*   c                  C   sR   t jdd�} |  d¡ t t¡� | jdd� W d   ƒ d S 1 s"w   Y  d S )Nr   r   ÚabcdefghijklmnoFr   )r   r   r   r"   r#   r   r   r   r   r   r   Útest_overflow$   s
   
"ÿr,   c                  C   s.   t jdd�} tdƒ}|  |¡ | jdd� d S r   )r   r   r	   r   r   )r   Údatar   r   r   Útest_add_qrdata+   s   
r.   c                  C   sL   t  ¡ } |  d¡ |  ¡  | jdksJ ‚|  d¡ |  ¡  | jdks$J ‚d S )Nr   r   Úbcdefghijklmnoé   ©r   r   r   r   r   r   r   r   r   Útest_fit2   s   

r2   c                  C   óD   t  ¡ } | jddd� |  ¡  | jdksJ ‚| jd jtks J ‚d S )NÚ"1234567890123456789012345678901234r   ©Úoptimizer   )r   r   r   r   r   Ú	data_listÚmoder   r   r   r   r   Útest_mode_number<   ó
   r9   c                  C   r3   )NÚABCDEFGHIJ1234567890r   r5   r   )r   r   r   r   r   r7   r8   r   r   r   r   r   Útest_mode_alphaD   r:   r<   c                  C   ó6   t  ¡ } | jddd� |  ¡  | jd jtksJ ‚d S )Nú,r   r5   ©r   r   r   r   r7   r8   r   r   r   r   r   Útest_regression_mode_commaL   ó   r@   c                  C   sH   t  ¡ } | jdt dd� |  ¡  | jdksJ ‚| jd jtks"J ‚d S )NÚabcABCr   r5   r   )	r   r   r   r   r   r   r7   r8   r   r   r   r   r   Útest_mode_8bitS   s
   rC   c                  C   r=   )NzABCDEFGHIJ1234567890
r   r5   r?   r   r   r   r   Útest_mode_8bit_newline[   rA   rD   c                   C   s¨   t  t¡� tjdd� W d   ƒ n1 sw   Y  t  t¡� tjdd� W d   ƒ n1 s1w   Y  t  t¡� tjdd� W d   ƒ d S 1 sMw   Y  d S )Nústring pattern)Úmask_patternr'   r    )r"   r#   Ú	TypeErrorr   r   r$   r   r   r   r   Ú"test_make_image_with_wrong_patternb   s   ÿÿ"ÿrH   c                  C   sž   t  ¡ } t t¡� d| _W d   ƒ n1 sw   Y  t t¡� d| _W d   ƒ n1 s/w   Y  t t¡� d| _W d   ƒ d S 1 sHw   Y  d S )NrE   r'   é   )r   r   r"   r#   rG   rF   r$   r   r   r   r   Útest_mask_pattern_setterm   s   ÿÿ"ÿrJ   c                   C   sr   t  t¡� tjdd� W d   ƒ n1 sw   Y  t  t¡� tjtd� W d   ƒ d S 1 s2w   Y  d S )NÚnot_BaseImage©Úimage_factory)r"   r#   rG   r   r   ÚAssertionErrorÚdictr   r   r   r   Útest_qrcode_bad_factoryz   s   ÿ"ÿrP   c                  C   sJ   G dd„ dt ƒ} tj| d�}| t¡ | ¡  | jjsJ ‚| jjs#J ‚d S )Nc                   @   s   e Zd Ze ¡ Ze ¡ ZdS )z(test_qrcode_factory.<locals>.MockFactoryN)Ú__name__Ú
__module__Ú__qualname__r   ÚMockÚdrawrectÚ	new_imager   r   r   r   ÚMockFactoryƒ   s    rW   rL   )	r   r   r   r   r   Ú
make_imagerV   ÚcalledrU   )rW   r   r   r   r   Útest_qrcode_factory‚   s   
rZ   c                  C   sV   t  ¡ } d}| j|dd� |  ¡  dd„ | jD ƒtttttgks"J ‚| jdks)J ‚d S )NÚA1abc12345def1HELLOaé   r5   c                 S   ó   g | ]}|j ‘qS r   ©r8   ©Ú.0Údr   r   r   Ú
<listcomp>“   ó    z!test_optimize.<locals>.<listcomp>r0   )	r   r   r   r   r7   r   r   r   r   ©r   Útextr   r   r   Útest_optimizeŽ   s   
ûrf   c                  C   sd   t  ¡ } d}| j|dd� |  ¡  t| jƒdksJ ‚dd„ | jD ƒtttgks)J ‚| jdks0J ‚d S )NÚA1abc1234567def1HELLOaé   r5   é   c                 S   r]   r   r^   r_   r   r   r   rb   £   rc   z'test_optimize_short.<locals>.<listcomp>r0   )	r   r   r   r   Úlenr7   r   r   r   rd   r   r   r   Útest_optimize_short�   s   
ýrk   c                  C   sD   t  ¡ } d}| j|dd� t| jƒdksJ ‚| jd jtks J ‚d S )NÚABCDEFGHIJKé   r5   r   r   )r   r   r   rj   r7   r8   r   rd   r   r   r   Útest_optimize_longer_than_data«   s
   rn   c                  C   s\   d} t  ¡ }| | ¡ | ¡  |jdksJ ‚t  ¡ }|j| dd� | ¡  |jdks,J ‚d S )NÚúA1abc12345123451234512345def1HELLOHELLOHELLOHELLOaA1abc12345123451234512345def1HELLOHELLOHELLOHELLOaA1abc12345123451234512345def1HELLOHELLOHELLOHELLOaA1abc12345123451234512345def1HELLOHELLOHELLOHELLOaA1abc12345123451234512345def1HELLOHELLOHELLOHELLOaé
   r   r5   é   r1   )re   r   r   r   r   Útest_optimize_size³   s   
rr   c                  C   s(   d} t j | ¡}t|ƒt| ƒksJ ‚d S )Ns   hello)r   Úutilr	   Úrepr)r-   Údata_objr   r   r   Útest_qrdata_reprÁ   s   rv   c               	   C   s‚   t  ¡ } t d¡�.}d |j_t t¡� | j	dd� W d   ƒ n1 s$w   Y  |jj
s/J ‚W d   ƒ d S 1 s:w   Y  d S )Nú
sys.stdoutT)Útty)r   r   r   ÚpatchÚisattyÚreturn_valuer"   r#   ÚOSErrorÚprint_asciirY   ©r   Úfake_stdoutr   r   r   Útest_print_ascii_stdoutÇ   s   ÿ"ür€   c                  C   sœ   t jdd�} t ¡ }| j|d� | ¡ }| ¡  d}|d t|ƒ… |ks&J ‚t ¡ }dd„ |_| j|dd� | ¡ }| ¡  d	}|d t|ƒ… |ksLJ ‚d S )
Nr   r(   ©Úoutu   â–ˆâ–€â–€â–€â–€â–€â–ˆc                   S   ó   dS ©NTr   r   r   r   r   Ú<lambda>Ú   ó    z"test_print_ascii.<locals>.<lambda>T)r‚   rx   u)   [48;5;232m[38;5;255mÂ â–„â–„â–„â–„â–„Â )	r   r   ÚioÚStringIOr}   ÚgetvalueÚcloserj   rz   )r   ÚfÚprintedÚexpectedr   r   r   Útest_print_asciiÐ   s   
rŽ   c                  C   sZ   t  ¡ } t d¡�}d |j_t t| j	¡ |jj
sJ ‚W d   ƒ d S 1 s&w   Y  d S )Nrw   )r   r   r   ry   rz   r{   r"   r#   r|   Ú	print_ttyrY   r~   r   r   r   Útest_print_tty_stdoutâ   s   "ýr�   c                  C   s‚   t  ¡ } t ¡ }dd„ |_| j|d� | ¡ }| ¡  d}d}|d | }d}|d | | d	 | }|d t|ƒ… |ks?J ‚d S )
Nc                   S   rƒ   r„   r   r   r   r   r   r…   í   r†   z test_print_tty.<locals>.<lambda>r�   z[1;47mz[40mz  z[0m
z.                                              z              )	r   r   r‡   rˆ   rz   r�   r‰   rŠ   rj   )r   r‹   rŒ   ÚBOLD_WHITE_BGÚBLACK_BGÚWHITE_BLOCKÚEOLr�   r   r   r   Útest_print_ttyê   s   
r•   c                  C   s,   t jdd�} |  d¡ |  ¡ | jksJ ‚d S )Nr   r(   Ú1©r   r   r   Ú
get_matrixÚmodulesr   r   r   r   Útest_get_matrixù   s   
rš   c                  C   sB   t jdd�} |  d¡ dd„ |  ¡ dd… D ƒ}|| jksJ ‚d S )Nr   r(   r–   c                 S   s   g | ]}|d d… ‘qS )r   r'   r   )r`   Úrowr   r   r   rb     s    z*test_get_matrix_border.<locals>.<listcomp>r'   r—   )r   Úmatrixr   r   r   Útest_get_matrix_borderÿ   s   
r�   c                   C   r   )Nr'   )Úbox_sizer!   r   r   r   r   Ú"test_negative_size_at_construction  r&   rŸ   c                  C   sF   t  ¡ } d| _t t¡� |  ¡  W d   ƒ d S 1 sw   Y  d S )Nr'   )r   r   rž   r"   r#   r$   rX   r   r   r   r   Útest_negative_size_at_usage  s
   
"ÿr    )-r‡   Úunittestr   r"   r   Úqrcode.utilÚqrcode.exceptionsr   Úqrcode.image.baser   Úqrcode.tests.constsr   r   r   r   r	   r   r   r%   r*   r,   r.   r2   r9   r<   r@   rC   rD   rH   rJ   rP   rZ   rf   rk   rn   rr   rv   r€   rŽ   r�   r•   rš   r�   rŸ   r    r   r   r   r   Ú<module>   sL    
	