$L i- ddlZddlmZmZmZddlZej jddejjfdejjfdejjfdejjfdejjfd ejjfgd Zd Zej jd d ejjfd ejjfd ejjfd ejjfdejjfdejjfgdZej jdejjejjejjejjgej jdddgdZej jdejjejjejjejjgej jdddgdZej jdejjejjejjejjgej jdddgdZej jddejjfdejjfdejjfdejjfdejjfd ejjfgdZej jddejjfdejjfdejjfdejjfgdZdZdZdZd Zd!Zd"Zd#Zd$Zd%Zd&Z y)'N)RegistryResource Specificationz uri, expectedz,https://json-schema.org/draft/2020-12/schemaz,https://json-schema.org/draft/2019-09/schemaz'http://json-schema.org/draft-07/schema#z'http://json-schema.org/draft-06/schema#z'http://json-schema.org/draft-04/schema#z'http://json-schema.org/draft-03/schema#cZd|i}tj|}|t||k(sJy)zE The $schema keyword in JSON Schema is a dialect identifier. $schema)contents specificationN)r from_contents)uriexpectedrresources g/mnt/ssd/data/python-lab/Trading/venv/lib/python3.12/site-packages/referencing/tests/test_jsonschema.py7test_schemas_with_explicit_schema_keywords_are_detectedrs4B3H%%h/H xJ JJ Jcd}tjtjj5}t j d|idddjj|k(sJy#1swY%xYw)N1http://example.com/unknown-json-schema-dialect-idr) pytestraises referencing jsonschemaUnknownDialectrr valuer  dialect_idexcinfos rtest_unknown_dialectr-saDJ {--<< =8 :678 ==   ** *88s A,,A5zid, specification$ididc8d}|j||i|k(sJy)Nzhttp://example.com/some-schemaid_of)rr r s rtest_id_of_mappingr"4s& +C   Cy )S 00 0rr rTFc*|j|JyNr r rs rtest_id_of_boolr&Ds   u % -- -rcBt|j|gk(sJyr$)list anchors_inr%s rtest_anchors_in_boolr*Rs"  ((/ 0B 66 6rcBt|j|gk(sJyr$)r(subresources_ofr%s rtest_subresources_of_boolr-`s"  --e4 5 ;; ;rcLtjj||k(sJyr$rrspecification_withr r s rtest_specification_withr2ns#<  ! ! 4 4S 9X EE Erz&http://json-schema.org/draft-07/schemaz&http://json-schema.org/draft-06/schemaz&http://json-schema.org/draft-04/schemaz&http://json-schema.org/draft-03/schemacLtjj||k(sJyr$r/r1s r)test_specification_with_no_empty_fragmentr4s#,  ! ! 4 4S 9X EE Ercd}tjtjj5}tjj |dddj j|k(sJy#1swY%xYw)Nr)rrrrrr0rr rs r'test_specification_with_unknown_dialectr6sbDJ {--<< =>11*=> ==   ** *>>s A44A=cd}tjj|tj}|tjusJy)Nr)default)rrr0rOPAQUE)rr s rtest_specification_with_defaultr:sDDJ**==$$>M M00 00 0rctjjjddi}t j d|j }|jd}|j|jk(sJy)N$dynamicAnchorfoohttp://example.comzhttp://example.com#foo) rr DRAFT202012create_resourcer with_resourceresolverlookupr)onerBresolveds rtest_lookup_trivial_dynamic_refrFsm  , , < < 5! Cz''( fooAnchorr=r<barbazrr<$defshttp://example.com/foo/http://example.com/foo/barfoo/rJ #fooAnchor rrr?r@rwith_resourcesrBrCrTRUErootrBfirstsecondfourths r(test_multiple_lookup_trivial_dynamic_refrZs   ! ! - - = =d CD  ! ! - - = =') &1#,k     D&  %t,*D1-t4     OO0 1E ^^ " "6 *F%%e,55H __\ *F ??dmm ++ +rc $tjjjddi}tjjjddddddddiddid}t j d|fd |fd |fgj }|jd}|j jd }|j jd j }|jd }|j|jk(sJy)N$anchorrHr>r=Tr<rIrLrNrOrPrJrQrR)rDtworBrWrXrYs r2test_multiple_lookup_dynamic_ref_to_nondynamic_refr^s  , , < < K  C  , , < <') &1#,k     C&  %s+*C0-s3     OO0 1E ^^ " "6 *F%%e,55H __\ *F ??cll ** *rcVtjjjddi}t j d|j }|jd}tjj|j }|j|jk(sJy)N$recursiveAnchorTr>rB) rr DRAFT201909r@rrArBrClookup_recursive_refr)rDrBrWrEs r!test_lookup_trivial_recursive_refrds  , , < < T" Cz''()base_urira)rrrbr@rrcrBr)rUregistryrEs r!test_lookup_recursive_ref_to_boolrhsu  ! ! - - = =d CD-t45H%%::"",@"A;H    -- -rc @tjjjd}tjjjdddddddddddid}t j d|fd|fd |fgj }|jd}|j jd }|j jd j }tjj| }|j|jk(sJy) NTr>r=rHr`r\rIrr`rMrNrOrPrJra rrrbr@rrSrBrCrcrrTs r*test_multiple_lookup_recursive_ref_to_boolrm(s  ! ! - - = =d CD  ! ! - - = =' $ (,#04'2     D(  %t,*D1-t4     OO0 1E ^^ " "6 *F%%e,55H  # # 8 8( 8 KF ??dmm ++ +rc tjjjddi}tjjjdddddddddddid}tjjjdd i}t j d|fd |fd |fgj }|jd}|j jd }|j jd j }tjj|}|j|jk(sJy)Nr`Tr>r=rHrjrIrkFrNrOrPrJrarl)rDr]threerBrWrXrYs r8test_multiple_lookup_recursive_ref_with_nonrecursive_refrpPsE  , , < < T" C  , , < <' $ (,#04'2     C&  " " . . > > U# E  %u-*C0-s3     OO0 1E ^^ " "6 *F%%e,55H  # # 8 8( 8 KF ??cll ** *rcRtjjtk(sJyr$)rrEMPTY_REGISTRYrrrtest_empty_registryrt}s  ! ! 0 0HJ >> >r)!rrrrrreferencing.jsonschemamark parametrizerr?rbDRAFT7DRAFT6DRAFT4DRAFT3rrr"r&r*r-r2r4r6r:rFrZr^rdrhrmrprtrsrrr|s 99 ;  " " . . ;  " " . . 6  " " ) ) 6  " " ) ) 6  " " ) ) 6  " " ) ) +:K;:K+  &&223  &&223  &&--.  &&--. {%%,,- {%%,,-  1 1 ****%%%% 4-0.1.****%%%% 4-0717****%%%% 4-0<1< ;  " " . . ;  " " . . 6  " " ) ) 6  " " ) ) 6  " " ) ) 6  " " ) ) +:F;:F 5  " " ) ) 5  " " ) ) 5  " " ) ) 5  " " ) ) *F+*F+1-$,N&+R -.%,P*+Z?r