
    ri                        d Z ddlZddlmc mZ ddlZddlZej                  j                  dej                  j                  ej                  j                  e      d             ddlmZmZmZ ddlmZ ddlmZmZ ddlmZ d Zd	 Zd
 Zd Zd Zd Zd Zd Zd Z e!dk(  r, e         e         e         e         e          e"d       yy)z/Tests for the eligibility determination engine.    Nz../../scripts)datetime	timedeltatimezone)determine_prop_eligibility)ValidationStateAvailabilityStatusnormalize_player_namec                      | t        |       |dS )N)player_namenormalized_nameteamr	   )namer   s     N/var/www/html/rainmaker/backend/tests/publishing_integrity/test_eligibility.pymake_rosterr      s    06     c                 T    | t        |       ||j                  j                         ddS )Ntest)r   r   availability_statusdetailed_statussource)r
   valuelower)r   statuss     r   
make_availr      s-    06%!<<--/ r   c                  X   t        dd      g} t        dt        j                        g}t	        ddddddt        j                         t        d	      z   d
| |g g       }|j                  }t        j                  t        j                  f}||v }|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                  }t        j(                  }||k7  }|st        j                  d|fd||f      dt        j                         v st        j                   |      rt        j"                  |      ndt        j"                  |      dt        j                         v st        j                   t              rt        j"                  t              ndt        j"                  |      dz  }	dd|	iz  }
t%        t        j&                  |
            d x}x}}|j*                  }d}||k7  }|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}}y )NzLeBron JamesLALpointsznba-lal-bos-20260310nbazLos Angeles LakersBoston Celtics   hourstest123r   	prop_typeevent_idleague	home_team	away_team
game_startrun_idroster_entriesavailability_reportslineup_datamarket_props)in)z8%(py2)s
{%(py2)s = %(py0)s.validation_state
} in %(py5)seligpy0py2py5assert %(py7)spy7!=zf%(py2)s
{%(py2)s = %(py0)s.validation_state
} != %(py6)s
{%(py6)s = %(py4)s.SUPPRESSED_TEAM_MISMATCH
}r   r4   r5   py4py6assert %(py8)spy8SUPPRESSED_TEAM_MISMATCHz7%(py2)s
{%(py2)s = %(py0)s.suppress_reason
} != %(py5)s)r   r   r   	AVAILABLEr   r   nowr   validation_stater   VERIFIEDVERIFIED_PENDING_LINEUP
@pytest_ar_call_reprcompare@py_builtinslocals_should_repr_global_name	_safereprAssertionError_format_explanationrA   suppress_reason)rosteravailr2   @py_assert1@py_assert4@py_assert3@py_format6@py_format8@py_assert5@py_format7@py_format9s              r   test_fully_verified_playerr[      s   .%01F(:(D(DEFE%"'&"<<>IA$66"D   g_%=%=?f?f$gg $ggggg $ggggggg4ggg4ggg ggg$gggggggg  LO$L$LL $LLLLL $LLLLLLL4LLL4LLL LLLLLLOLLLOLLL$LLLLLLLL=#==#=====#=======4===4======#========r   c                     t        dd      g} t        dt        j                        g}t	        ddddddt        j                         t        d	      z   d
| |g g       }|j                  }t        j                  }||k(  }|st        j                  d|fd||f      dt        j                         v st        j                  |      rt        j                   |      ndt        j                   |      dt        j                         v st        j                  t              rt        j                   t              ndt        j                   |      dz  }dd|iz  }t#        t        j$                  |            d x}x}}|j&                  }| }|syddt        j                         v st        j                  |      rt        j                   |      ndt        j                   |      dz  }t#        t        j$                  |            d 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}}	y )NzKevin DurantPHXr   znba-phx-bos-20260310r   zPhoenix Sunsr    r!   r"   r$   r%   ==zd%(py2)s
{%(py2)s = %(py0)s.validation_state
} == %(py6)s
{%(py6)s = %(py4)s.SUPPRESSED_UNAVAILABLE
}r2   r   r<   r?   r@   7assert not %(py2)s
{%(py2)s = %(py0)s.publish_allowed
}r4   r5   SUPPRESSED_UNAVAILABLE)z7%(py2)s
{%(py2)s = %(py0)s.suppress_reason
} == %(py5)sr3   r7   r8   )r   r   r   OUTr   r   rD   r   rE   r   rc   rH   rI   rJ   rK   rL   rM   rN   rO   publish_allowedrP   )rQ   rR   r2   rS   rX   rU   rY   rZ   @py_format4rT   rV   rW   s               r   test_out_player_suppressedrg   7   s   .%01F(:(>(>?@E%"' "<<>IA$66"D   JO$J$JJ $JJJJJ $JJJJJJJ4JJJ4JJJ JJJJJJOJJJOJJJ$JJJJJJJJ############t###t##########;#;;#;;;;;#;;;;;;;4;;;4;;;;;;#;;;;;;;;r   c                     t        dd      g} t        dt        j                        g}t	        ddddddt        j                         t        d	      z   d
| |g g       }|j                  }t        j                  }||k(  }|st        j                  d|fd||f      dt        j                         v st        j                  |      rt        j                   |      ndt        j                   |      dt        j                         v st        j                  t              rt        j                   t              ndt        j                   |      dz  }dd|iz  }t#        t        j$                  |            dx}x}}|j&                  }| }|syddt        j                         v st        j                  |      rt        j                   |      ndt        j                   |      dz  }t#        t        j$                  |            dx}}y)z)Player traded but prop still on old team.zJimmy ButlerGSWr   znba-mia-bos-20260310r   z
Miami Heatr    r!   r"   r$   r%   r^   )zf%(py2)s
{%(py2)s = %(py0)s.validation_state
} == %(py6)s
{%(py6)s = %(py4)s.SUPPRESSED_TEAM_MISMATCH
}r2   r   r<   r?   r@   Nra   rb   )r   r   r   rC   r   r   rD   r   rE   r   rA   rH   rI   rJ   rK   rL   rM   rN   rO   re   	rQ   rR   r2   rS   rX   rU   rY   rZ   rf   s	            r   test_team_mismatch_suppressedrk   O   sS   .%01F(:(D(DEFE%"'"<<>IA$66"D   LO$L$LL $LLLLL $LLLLLLL4LLL4LLL LLLLLLOLLLOLLL$LLLLLLLL############t###t##########r   c                     t        dd      g} t        dt        j                        g}t	        ddddddt        j                  t        j                        t        d	      z   d
| |g g       }|j                  }t        j                  }||k7  }|st        j                  d|fd||f      dt        j                          v st        j"                  |      rt        j$                  |      ndt        j$                  |      dt        j                          v st        j"                  t              rt        j$                  t              ndt        j$                  |      dz  }dd|iz  }t'        t        j(                  |            d x}x}}|j*                  }d}||k7  }|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}}y )NzNikita KucherovTBLshots_on_goalznhl-nsh-tb-20260329nhlzTampa Bay LightningzNashville Predatorsr!   r"   r$   r%   r9   r;   r2   r   r<   r?   r@   rA   rB   r3   r7   r8   r   r   r   rC   r   r   rD   r   utcr   rE   r   rA   rH   rI   rJ   rK   rL   rM   rN   rO   rP   rQ   rR   r2   rS   rX   rU   rY   rZ   rT   rV   rW   s              r   8test_nhl_team_aliases_do_not_trigger_false_team_mismatchrs   g   s   +U34F)+=+G+GHIE%%!&''<<-	0BB"D   LO$L$LL $LLLLL $LLLLLLL4LLL4LLL LLLLLLOLLLOLLL$LLLLLLLL=#==#=====#=======4===4======#========r   c                     t        dd      g} t        dt        j                        g}t	        ddddddt        j                  t        j                        t        d	      z   d
| |g g       }|j                  }t        j                  }||k7  }|st        j                  d|fd||f      dt        j                          v st        j"                  |      rt        j$                  |      ndt        j$                  |      dt        j                          v st        j"                  t              rt        j$                  t              ndt        j$                  |      dz  }dd|iz  }t'        t        j(                  |            d x}x}}|j*                  }d}||k7  }|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}}y )NzJunior CamineroTBRhitszmlb-tb-stl-20260329mlbzSt. Louis CardinalszTampa Bay Raysr!   r"   r$   r%   r9   r;   r2   r   r<   r?   r@   rA   rB   r3   r7   r8   rp   rr   s              r   8test_mlb_team_aliases_do_not_trigger_false_team_mismatchrx   ~   s   +U34F)+=+G+GHIE%%&'"<<-	0BB"D   LO$L$LL $LLLLL $LLLLLLL4LLL4LLL LLLLLLOLLLOLLL$LLLLLLLL=#==#=====#=======4===4======#========r   c                     t        ddddddt        j                         t        d      z   d	g g g g 
      } | j                  }t
        j                  }||k(  }|st        j                  d|fd||f      dt        j                         v st        j                  |       rt        j                  |       ndt        j                  |      dt        j                         v st        j                  t
              rt        j                  t
              ndt        j                  |      dz  }dd|iz  }t        t        j                  |            d x}x}}| j                  }| }|syddt        j                         v st        j                  |       rt        j                  |       ndt        j                  |      dz  }t        t        j                  |            d x}}y )N r   znba-test-20260310r   zTeam AzTeam Br!   r"   r$   r%   r^   )zh%(py2)s
{%(py2)s = %(py0)s.validation_state
} == %(py6)s
{%(py6)s = %(py4)s.SUPPRESSED_NO_CANONICAL_ID
}r2   r   r<   r?   r@   ra   rb   )r   r   rD   r   rE   r   SUPPRESSED_NO_CANONICAL_IDrH   rI   rJ   rK   rL   rM   rN   rO   re   )r2   rS   rX   rU   rY   rZ   rf   s          r   test_empty_name_suppressedr|      s.   %$<<>IA$66D   NO$N$NN $NNNNN $NNNNNNN4NNN4NNN NNNNNNONNNONNN$NNNNNNNN############t###t##########r   c                     t        dd      g} t        dt        j                        g}t	        ddddddt        j                         t        d	      z   d
| |g g       }|j                  }t        j                  }||k(  }|st        j                  d|fd||f      dt        j                         v st        j                  |      rt        j                   |      ndt        j                   |      dt        j                         v st        j                  t              rt        j                   t              ndt        j                   |      dz  }dd|iz  }t#        t        j$                  |            d x}x}}|j&                  }| }|syddt        j                         v st        j                  |      rt        j                   |      ndt        j                   |      dz  }t#        t        j$                  |            d x}}y )NzDraymond Greenri   r   znba-gsw-bos-20260310r   zGolden State Warriorsr    r!   r"   r$   r%   r^   r`   r2   r   r<   r?   r@   ra   rb   )r   r   r   	SUSPENDEDr   r   rD   r   rE   r   rc   rH   rI   rJ   rK   rL   rM   rN   rO   re   rj   s	            r    test_suspended_player_suppressedr      sU   *E23F(*<*F*FGHE%$')"<<>IA$66"D   JO$J$JJ $JJJJJ $JJJJJJJ4JJJ4JJJ JJJJJJOJJJOJJJ$JJJJJJJJ############t###t##########r   __main__zAll eligibility tests passed!)#__doc__builtinsrJ   _pytest.assertion.rewrite	assertionrewriterH   sysospathinsertjoindirname__file__r   r   r    publishing_integrity.eligibilityr   publishing_integrity.enumsr   r   "publishing_integrity.normalizationr
   r   r   r[   rg   rk   rs   rx   r|   r   __name__print r   r   <module>r      s    5   
 	 277<< 9?K L 2 2 G J D>0<0$0>.>.$($. z  !# $&	
)* r   