
    it                    <   d Z ddlmZ ddlZddlmc mZ ddl	Z	ddl
mZ e	j                  j                  d e ee      j!                         j"                  j"                               ddlmZmZ ddZd Zd Zdd	Zed
k(  r e	j4                   e              yy)u,   APEX V18 — verify Position __init__ patch.    )annotationsN)Path)apply_sdk_patches_PATCH_SENTINELc                     t        d|         y )Nz  ok  )print)msgs    -/home/work/apex_v16/tests/test_sdk_patches.py_okr      s    	F3%.    c                 N   t                t                ddlm}  d}t        | t        |      }|sddt        j                         v st        j                  t              rt        j                  t              nddt        j                         v st        j                  |       rt        j                  |       nddt        j                         v st        j                  t              rt        j                  t              ndt        j                  |      t        j                  |      dz  }t        t        j                  |            d x}} | d	d
ddd	dddd	      }|j                  }d}||k(  }|st        j                  d|fd||f      dt        j                         v st        j                  |      rt        j                  |      ndt        j                  |      t        j                  |      dz  }dd|iz  }t        t        j                  |            d x}x}}|j                  }d}||k(  }|st        j                  d|fd||f      dt        j                         v st        j                  |      rt        j                  |      ndt        j                  |      t        j                  |      dz  }dd|iz  }t        t        j                  |            d x}x}}|j                  }d}||k(  }|st        j                  d|fd||f      dt        j                         v st        j                  |      rt        j                  |      ndt        j                  |      t        j                  |      dz  }dd|iz  }t        t        j                  |            d x}x}}d}	t!        ||	      }| }
|
sddt        j                         v st        j                  t               rt        j                  t               nddt        j                         v st        j                  |      rt        j                  |      ndt        j                  |	      t        j                  |      dz  }t        t        j                  |            d x}	x}}
d}	t!        ||	      }| }
|
sddt        j                         v st        j                  t               rt        j                  t               nddt        j                         v st        j                  |      rt        j                  |      ndt        j                  |	      t        j                  |      dz  }t        t        j                  |            d x}	x}}
t#        d        y )!Nr   PositionFz>assert %(py6)s
{%(py6)s = %(py0)s(%(py1)s, %(py2)s, %(py4)s)
}getattrr   r   )py0py1py2py4py6   i  zCON.F.US.MNQ.U25z2026-05-08T10:00:00Z   g     |@zMicro NASDAQ-100zforward-compat)	id	accountId
contractIdcreationTimestamptypesizeaveragePricecontractDisplayNamesomeFutureField)==)z2%(py2)s
{%(py2)s = %(py0)s.contractId
} == %(py5)sp)r   r   py5zassert %(py7)spy7)z,%(py2)s
{%(py2)s = %(py0)s.size
} == %(py5)sLONG)z1%(py2)s
{%(py2)s = %(py0)s.direction
} == %(py5)sr   z9assert not %(py5)s
{%(py5)s = %(py0)s(%(py1)s, %(py3)s)
}hasattr)r   r   py3r#   r    z:Position(**unknown_kwargs) ignored, known fields preserved)r   project_x_py.modelsr   r   r   @py_builtinslocals
@pytest_ar_should_repr_global_name	_safereprAssertionError_format_explanationr   _call_reprcomparer   	directionr&   r   )r   @py_assert3@py_assert5@py_format7r"   @py_assert1@py_assert4@py_format6@py_format8@py_assert2@py_assert6s              r
   0test_apply_idempotent_and_filters_unknown_kwargsr;      s,   ,.3478_e444444447444744444484448444444_444_444e4444444444 	);0QW.(	A <<---<-----<-------1---1---<-----------66Q6Q;6Q116Q;; & ;&    ;&      1   1   ;   &       /0wq/00000000000w000w000000q000q000/0000000000+,wq+,,,,,,,,,,,w,,,w,,,,,,q,,,q,,,+,,,,,,,,,,DEr   c                     t                ddlm}  	  | dddddd       t        d	      # t        $ r t	        d       Y y w xY w)
Nr   r   r   xtr   )r   r   r   r   r   r   zCrequired-field validation still strict (missing kwarg -> TypeError)z2Position should have rejected missing averagePrice)r   r(   r   	TypeErrorr   r.   r   s    r
   !test_required_fields_still_strictr@   '   sP    ,As#&QQ	8
 M
NN  QRs   + AAc                 X    t        d       t                t                t        d       y)Nztest_sdk_patches.pyzALL TESTS PASSEDr   )r   r;   r@    r   r
   mainrC   3   s#    	
 46%'	
r   __main__)r	   strreturnNone)rF   int)__doc__
__future__r   builtinsr)   _pytest.assertion.rewrite	assertionrewriter+   syspathlibr   pathinsertrE   __file__resolveparentbroker._sdk_patchesr   r   r   r;   r@   rC   __name__exitrB   r   r
   <module>rY      s}    2 "   
  3tH~--/66==> ? BF0	O zCHHTV r   