a
    ç´«j=  ã                   @   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   s&   t jdd�} |  d¡ | jdd� d S ©Né   ©ÚversionÚaF©Úfit©ÚqrcodeÚQRCodeÚadd_dataÚmake©Úqr© r   úW/var/www/html/laksyashrimp/venv/lib/python3.9/site-packages/qrcode/tests/test_qrcode.pyÚ
test_basic   s    
r   c                  C   s&   t jdd�} |  d¡ | jdd� d S )Né   r   r   Fr   r   r   r   r   r   Ú
test_large   s    
r   c                   C   s:   t  t¡� tjdd� W d   ƒ n1 s,0    Y  d S )Né*   r   ©ÚpytestÚraisesÚ
ValueErrorr   r   r   r   r   r   Útest_invalid_version   s    r"   c                   C   s:   t  t¡� tjdd� W d   ƒ n1 s,0    Y  d S )Néÿÿÿÿ©Úborderr   r   r   r   r   Útest_invalid_border   s    r&   c                  C   sP   t jdd�} |  d¡ t t¡� | jdd� W d   ƒ n1 sB0    Y  d S )Nr   r   Z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sHJ ‚d S )Nr   r   Zbcdefghijklmnoé   ©r   r   r   r   r   r   r   r   r   Útest_fit2   s    

r,   c                  C   sD   t  ¡ } | jddd� |  ¡  | jdks,J ‚| jd jtks@J ‚d S )NZ"1234567890123456789012345678901234r   ©Úoptimizer   )r   r   r   r   r   Ú	data_listÚmoder   r   r   r   r   Útest_mode_number<   s
    r1   c                  C   sD   t  ¡ } | jddd� |  ¡  | jdks,J ‚| jd jtks@J ‚d S )NZABCDEFGHIJ1234567890r   r-   r   )r   r   r   r   r   r/   r0   r   r   r   r   r   Útest_mode_alphaD   s
    r2   c                  C   s6   t  ¡ } | jddd� |  ¡  | jd jtks2J ‚d S )Nú,r   r-   ©r   r   r   r   r/   r0   r   r   r   r   r   Útest_regression_mode_commaL   s    r5   c                  C   sH   t  ¡ } | jdt dd� |  ¡  | jdks0J ‚| jd jtksDJ ‚d S )NZabcABCr   r-   r   )	r   r   r   r   r   r   r/   r0   r   r   r   r   r   Útest_mode_8bitS   s
    r6   c                  C   s6   t  ¡ } | jddd� |  ¡  | jd jtks2J ‚d S )NzABCDEFGHIJ1234567890
r   r-   r4   r   r   r   r   Útest_mode_8bit_newline[   s    r7   c                   C   s¦   t  t¡� tjdd� W d   ƒ n1 s,0    Y  t  t¡� tjdd� W d   ƒ n1 sb0    Y  t  t¡� tjdd� W d   ƒ n1 s˜0    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    **r;   c                  C   sœ   t  ¡ } t t¡� d| _W d   ƒ n1 s.0    Y  t t¡� d| _W d   ƒ n1 s^0    Y  t t¡� d| _W d   ƒ n1 sŽ0    Y  d S )Nr8   r#   é   )r   r   r   r    r:   r9   r!   r   r   r   r   Útest_mask_pattern_setterm   s    $$r=   c                   C   sp   t  t¡� tjdd� W d   ƒ n1 s,0    Y  t  t¡� tjtd� W d   ƒ n1 sb0    Y  d S )NZnot_BaseImage©Zimage_factory)r   r    r:   r   r   ÚAssertionErrorÚdictr   r   r   r   Útest_qrcode_bad_factoryz   s    *rA   c                  C   sJ   G dd„ dt ƒ} tj| d�}| t¡ | ¡  | jjs:J ‚| jjsFJ ‚d S )Nc                   @   s   e Zd Ze ¡ Ze ¡ ZdS )z(test_qrcode_factory.<locals>.MockFactoryN)Ú__name__Ú
__module__Ú__qualname__r   ZMockÚdrawrectÚ	new_imager   r   r   r   ÚMockFactoryƒ   s   rG   r>   )	r   r   r   r   r   Ú
make_imagerF   ÚcalledrE   )rG   r   r   r   r   Útest_qrcode_factory‚   s    
rJ   c                  C   sV   t  ¡ } d}| j|dd� |  ¡  dd„ | jD ƒtttttgksDJ ‚| jdksRJ ‚d S )NZA1abc12345def1HELLOaé   r-   c                 S   s   g | ]
}|j ‘qS r   ©r0   ©Ú.0Údr   r   r   Ú
<listcomp>“   ó    z!test_optimize.<locals>.<listcomp>r*   )	r   r   r   r   r/   r   r   r   r   ©r   Útextr   r   r   Útest_optimizeŽ   s    û
rT   c                  C   sd   t  ¡ } d}| j|dd� |  ¡  t| jƒdks4J ‚dd„ | jD ƒtttgksRJ ‚| jdks`J ‚d S )NZA1abc1234567def1HELLOaé   r-   é   c                 S   s   g | ]
}|j ‘qS r   rL   rM   r   r   r   rP   £   rQ   z'test_optimize_short.<locals>.<listcomp>r*   )	r   r   r   r   Úlenr/   r   r   r   rR   r   r   r   Útest_optimize_short�   s    ý
rX   c                  C   sD   t  ¡ } d}| j|dd� t| jƒdks,J ‚| jd jtks@J ‚d S )NZABCDEFGHIJKé   r-   r   r   )r   r   r   rW   r/   r0   r   rR   r   r   r   Útest_optimize_longer_than_data«   s
    rZ   c                  C   s\   d} t  ¡ }| | ¡ | ¡  |jdks,J ‚t  ¡ }|j| dd� | ¡  |jdksXJ ‚d S )NZúA1abc12345123451234512345def1HELLOHELLOHELLOHELLOaA1abc12345123451234512345def1HELLOHELLOHELLOHELLOaA1abc12345123451234512345def1HELLOHELLOHELLOHELLOaA1abc12345123451234512345def1HELLOHELLOHELLOHELLOaA1abc12345123451234512345def1HELLOHELLOHELLOHELLOaé
   r   r-   é   r+   )rS   r   r   r   r   Útest_optimize_size³   s    
r]   c                  C   s(   d} t j | ¡}t|ƒt| ƒks$J ‚d S )Ns   hello)r   Úutilr	   Úrepr)r(   Zdata_objr   r   r   Útest_qrdata_reprÁ   s    r`   c               	   C   s€   t  ¡ } t d¡�Z}d |j_t t¡� | j	dd� W d   ƒ n1 sH0    Y  |jj
s^J ‚W d   ƒ n1 sr0    Y  d S )Nú
sys.stdoutT)Útty)r   r   r   ÚpatchÚisattyÚreturn_valuer   r    ÚOSErrorÚprint_asciirI   ©r   Zfake_stdoutr   r   r   Útest_print_ascii_stdoutÇ   s    *ri   c                  C   sœ   t jdd�} t ¡ }| j|d� | ¡ }| ¡  d}|d t|ƒ… |ksLJ ‚t ¡ }dd„ |_| j|dd� | ¡ }| ¡  d	}|d t|ƒ… |ks˜J ‚d S )
Nr   r$   ©Úoutu   â–ˆâ–€â–€â–€â–€â–€â–ˆc                   S   s   dS ©NTr   r   r   r   r   Ú<lambda>Ú   rQ   z"test_print_ascii.<locals>.<lambda>T)rk   rb   u)   [48;5;232m[38;5;255mÂ â–„â–„â–„â–„â–„Â )	r   r   ÚioÚStringIOrg   ÚgetvalueÚcloserW   rd   )r   ÚfÚprintedÚexpectedr   r   r   Útest_print_asciiÐ   s    
ru   c                  C   sX   t  ¡ } t d¡�2}d |j_t t| j	¡ |jj
s6J ‚W d   ƒ n1 sJ0    Y  d S )Nra   )r   r   r   rc   rd   re   r   r    rf   Ú	print_ttyrI   rh   r   r   r   Útest_print_tty_stdoutâ   s
    rw   c                  C   s‚   t  ¡ } t ¡ }dd„ |_| j|d� | ¡ }| ¡  d}d}|d | }d}|d | | d	 | }|d t|ƒ… |ks~J ‚d S )
Nc                   S   s   dS rl   r   r   r   r   r   rm   í   rQ   z test_print_tty.<locals>.<lambda>rj   z[1;47mz[40mz  z[0m
z.                                              z              )	r   r   rn   ro   rd   rv   rp   rq   rW   )r   rr   rs   ZBOLD_WHITE_BGZBLACK_BGZWHITE_BLOCKZEOLrt   r   r   r   Útest_print_ttyê   s    
rx   c                  C   s,   t jdd�} |  d¡ |  ¡ | jks(J ‚d S )Nr   r$   Ú1©r   r   r   Z
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$   ry   c                 S   s   g | ]}|d d… ‘qS )r   r#   r   )rN   Úrowr   r   r   rP     rQ   z*test_get_matrix_border.<locals>.<listcomp>r#   rz   )r   Zmatrixr   r   r   Útest_get_matrix_borderÿ   s    
r~   c                   C   s:   t  t¡� tjdd� W d   ƒ n1 s,0    Y  d S )Nr#   )Úbox_sizer   r   r   r   r   Ú"test_negative_size_at_construction  s    r€   c                  C   sD   t  ¡ } d| _t t¡� |  ¡  W d   ƒ n1 s60    Y  d S )Nr#   )r   r   r   r   r    r!   rH   r   r   r   r   Útest_negative_size_at_usage  s    r�   )-rn   Zunittestr   r   r   Zqrcode.utilZqrcode.exceptionsr   Zqrcode.image.baser   Zqrcode.tests.constsr   r   r   r   r	   r   r   r"   r&   r'   r)   r,   r1   r2   r5   r6   r7   r;   r=   rA   rJ   rT   rX   rZ   r]   r`   ri   ru   rw   rx   r|   r~   r€   r�   r   r   r   r   Ú<module>   sJ   
	