o
    ȷe0                     @   s   d dl mZ d dlZd dlZd dlmZ d dlZd dlmZmZmZ d dl	m
Z
mZmZ dd Zdd	 ZG d
d dZG dd deZG dd deZdS )    )with_statementN)TestCase)encoderdecoderscanner)PY3	long_typebc                   C   s
   t jd uS N)r   c_make_encoder r   r   U/var/www/ideatree/venv/lib/python3.10/site-packages/simplejson/tests/test_speedups.pyhas_speedups   s   
r   c                    s    fdd}|S )Nc                     s8   t  sttdrtdtjd d S  | i |S )NSkipTestzC Extension not available)r   hasattrunittestr   sysstdoutwrite)argskwargsfuncr   r   wrapper   s   

z)skip_if_speedups_missing.<locals>.wrapperr   )r   r   r   r   r   skip_if_speedups_missing   s   	r   c                   @   s   e Zd Zdd ZeZdS )BadBoolc                 C      dd  d S N   r   r   selfr   r   r   __bool__      zBadBool.__bool__N)__name__
__module____qualname__r!   __nonzero__r   r   r   r   r      s    r   c                   @   s$   e Zd Zedd Zedd ZdS )
TestDecodec                 C   s   |  ttjd d S )Nr   )assertRaisesAttributeErrorr   c_make_scannerr   r   r   r   test_make_scanner$   s   zTestDecode.test_make_scannerc                 C   sL   dd }|  t|d |  t|d ts$|  t|d |  t|d d S d S )Nc                 S   s   t jt d|  d S )N)strict)r   JSONDecoderr   decode)valuer   r   r   test*   s   z+TestDecode.test_bad_bool_args.<locals>.testz""z{})r(   ZeroDivisionErrorr   r    r0   r   r   r   test_bad_bool_args(   s   zTestDecode.test_bad_bool_argsN)r#   r$   r%   r   r+   r3   r   r   r   r   r'   #   s
    
r'   c                   @   sP   e Zd Zedd Zedd Zedd Zedd Zer&ed	d
 Z	dS dS )
TestEncodec                 C   s   |  ttjd dd  d S )Nu   Í}=NLùy×Rºò'J} Êu)r(   	TypeErrorr   r   r   r   r   r   test_make_encoder3   s   zTestEncode.test_make_encoderc                 C   s   dd l }dd }td dd |d dddddi dddd d d	dd|jd}| t|d
d | t|d
did dd }td dd |d dddddi dddd d d	dd|jd}| t|d
d d S )Nr   c                  W   s   d S r
   r   r   r   r   r   bad_encoder1C   s   z5TestEncode.test_bad_str_encoder.<locals>.bad_encoder1c                 S      t | S r
   strobjr   r   r   <lambda>F       z1TestEncode.test_bad_str_encoder.<locals>.<lambda>z: z, Fzutf-8spam   *   c                  W   r   r   r   r7   r   r   r   bad_encoder2M   r"   z5TestEncode.test_bad_str_encoder.<locals>.bad_encoder2c                 S   r9   r
   r:   r<   r   r   r   r>   P   r?   )decimalr   r   Decimalr(   r5   r1   )r    rD   r8   encrC   r   r   r   test_bad_str_encoder>   s$   zTestEncode.test_bad_str_encoderc                 C   s   dd }|  t|d |  t|d |  t|d |  t|d |  t|d |  t|d |  t|d	 |  t|d
 |  t|d |  t|d |  t|d |  t|d d S )Nc                 S   s    t jdi | t ii  d S )Nr   )r   JSONEncoderr   encode)namer   r   r   r0   X   s    z+TestEncode.test_bad_bool_args.<locals>.testskipkeysensure_asciicheck_circular	allow_nan	sort_keysuse_decimalnamedtuple_as_objecttuple_as_arraybigint_as_stringfor_json
ignore_naniterable_as_array)r(   r1   r2   r   r   r   r3   V   s   zTestEncode.test_bad_bool_argsc                    s0   t dd d   fdd}| ttf| d S )N          c                      s   t j dd d S )N)int_as_string_bitcountr   )r   rH   rI   r   
long_countr   r   r0   j   s   z=TestEncode.test_int_as_string_bitcount_overflow.<locals>.test)r   r(   r5   OverflowErrorr2   r   r[   r   $test_int_as_string_bitcount_overflowg   s   z/TestEncode.test_int_as_string_bitcount_overflowc                 C   sJ   |  t tjddtddi W d    d S 1 sw   Y  d S )Nu   )encodingkey{   )r(   UnicodeEncodeErrorr   rH   rI   r	   r   r   r   r   test_bad_encodingo   s   "zTestEncode.test_bad_encodingN)
r#   r$   r%   r   r6   rG   r3   r^   r   rc   r   r   r   r   r4   2   s    




r4   )
__future__r   r   r   r   
simplejsonr   r   r   simplejson.compatr   r   r	   r   r   r   r'   r4   r   r   r   r   <module>   s    