
    ]j                         d dl Z d dlZd dlmZ d dlmZmZmZmZm	Z	m
Z
mZmZmZ ej                  j                  ddefdefdefdefd	efd
e
fdefdefdefdefde	fg      d        Zd Zd Zd Zd Zd Zd Zy)    N)JSF)	ArrayBooleanIntegerJSFEnumJSFTupleNullNumberObjectStringzfilestem, expected_typearraybooleanenumz	inner-refintegernullnumberobjectzstring-enumstringtuplec                     t        | | dz        5 }t        j                  |      }d d d        t              }t	        |j
                  |      sJ y # 1 sw Y   -xY w)Nz.json)openjsonloadr   
isinstanceroot)TestDatafilestemexpected_typefileschemaps         ?/root/env/lib/python3.12/site-packages/jsf/tests/test_parser.py
test_typesr#      sY    " 
hH:U++	, !4!FAaffm,,,	! !s   AAc                 >   t        | dz        5 }t        j                  |      }d d d        t              }t	        |j
                  t              sJ t        |j
                  d      sJ t	        |j
                  j                  t              sJ y # 1 sw Y   oxY w)Nz
array.jsonitems)
r   r   r   r   r   r   r   hasattrr%   r   )r   r   r    r!   s       r"   test_nested_arrayr'   +   s|    	h%	& !$4!FAaffe$$$1667###affllG,,,! !s   BBc           	         t        | dz        5 }t        j                  |      }d d d        t              }t	        |j
                  t              sJ t        |j
                  d      sJ t        t        t        t        g}t        |j
                  j                        D cg c]  \  }}t	        |||          c}}sJ y # 1 sw Y   xY wc c}}w )Nz
tuple.jsonr%   )r   r   r   r   r   r   r   r&   r
   r   	enumerater%   )r   r   r    r!   expected_typesiitems          r"   test_nested_tupler-   5   s    	h%	& !$4!FAaffh'''1667###fff5N?H?VWGAtJt^A./WWW! ! Xs   C$CCc                    t        | dz        5 }t        j                  |      }d d d        t              }t	        |j
                  t              sJ t        |j
                  d      sJ t        t        t        t        d}|j
                  j                  D ci c]  }|j                  t        |       c}|k(  sJ y # 1 sw Y   xY wc c}w )Nzobject.json
properties)namecredit_cardtestnon_required)r   r   r   r   r   r   r   r&   r   r
   r   r/   r0   typer   r   r    r!   r*   props         r"   test_nested_objectr7   @   s    	h&	' !44!FAafff%%%166<(((	N /0ff.?.?@dDIItDz!@NRRR! ! As   CCC
c                 \   t        | dz        5 }t        j                  |      }d d d        t              }t	        |j
                  t              sJ t        |j
                  d      sJ dt        i}|j
                  j                  D ci c]  }|j                  t        |       c}|k(  sJ t        t        t        t        t        d}|j
                  j                  d   j                  D ci c]  }|j                  t        |       c}|k(  sJ y # 1 sw Y   xY wc c}w c c}w )Nzinner-ref.jsonr/   user)birthdayemailr0   iduuidr   )r   r   r   r   r   r   r   r&   r/   r0   r4   r   r   r5   s         r"   test_nested_object_refr>   P   s    	h))	* !d4!FAafff%%%166<(((f%N./ff.?.?@dDIItDz!@NRRRN /0ff.?.?.B.M.MNdDIItDz!NR````! ! A Os   DD$2D)D!c                 4   t        | dz        5 }t        j                  |      }d d d        t              }t	        |j
                  t              sJ t        |j
                  d      sJ dt        i}|j
                  j                  D ci c]  }|j                  t        |       c}|k(  sJ dt        i}|j
                  j                  d   j                  D ci c]  }|j                  t        |       c}|k(  sJ y # 1 sw Y   xY wc c}w c c}w )Nzordered-refs.jsonr/   foobarbarr   r   r   r   r   r   r   r   r&   r/   r0   r4   r   r5   s         r"   test_ordered_refs_objectrC   c   s    	h,,	- !4!FAafff%%%166<((('N./ff.?.?@dDIItDz!@NRRRwN /0ff.?.?.B.M.MNdDIItDz!NR````! ! A O   DDDDc                 4   t        | dz        5 }t        j                  |      }d d d        t              }t	        |j
                  t              sJ t        |j
                  d      sJ dt        i}|j
                  j                  D ci c]  }|j                  t        |       c}|k(  sJ dt        i}|j
                  j                  d   j                  D ci c]  }|j                  t        |       c}|k(  sJ y # 1 sw Y   xY wc c}w c c}w )Nzunordered-refs.jsonr/   r@   rA   r   rB   r5   s         r"   test_unordered_refs_objectrF   r   s    	h..	/ !44!FAafff%%%166<((('N./ff.?.?@dDIItDz!@NRRRwN /0ff.?.?.B.M.MNdDIItDz!NR````! ! A OrD   )r   pytest
jsf.parserr   jsf.schema_typesr   r   r   r   r   r	   r
   r   r   markparametrizer#   r'   r-   r7   r>   rC   rF        r"   <module>rN      s      
 
 
 	%	G		f	G		6	6	 	6	( -! --XS a&aarM   