
    l.j                    z    d dl mZ d dlZd dlmc mZ d dlm	Z	 d dl
mZ d dlmZ  G d d          Zdd
ZddZdS )    )annotationsN)Any)HyperliquidVaultCollector)HyperliquidWalletCollectorc                       e Zd ZddZdddZdS )FakeTransportreturnNonec                    g | _         d S )N)calls)selfs    T/home/agent/projects/CryptoTradingBot/Crypto_Agent/tests/test_ctb_copy_collectors.py__init__zFakeTransport.__init__
   s    +-


    
   urlstrpayloaddict[str, Any]timeoutintr   c                    | j                             |           |d         xdk    r	 ddddd gS xdk    r g dd	id
S xdk    r g S xdk    r dg ggS dk    rg S t          d|           )NtypevaultSummarieszVault A0xabc1000)namevaultAddresstvlclearinghouseStateaccountValue100)assetPositionsmarginSummary
openOrders	portfolioaccountValueHistoryuserFillsByTimezunexpected payload )r   appendAssertionError)r   r   r   r   s       r   postzFakeTransport.post   s    
'"""fo!!!!!!*GFSSUYZZ%%%%%*,PU?VWWW	.344"""	<7<<===r   Nr	   r
   )r   )r   r   r   r   r   r   r	   r   )__name__
__module____qualname__r   r+    r   r   r   r   	   sA        . . . .> > > > > > >r   r   r	   r
   c                 h   t                      } t          |                               d          }d | j        D             }dg}||k    }|slt	          j        d|fd||f          t	          j        |          t	          j        |          dz  }d	d
|iz  }t          t	          j        |                    d x}x}}t          |          }d}||k    }|st	          j        d|fd||f          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  }dd|iz  }	t          t	          j        |	                    d x}x}}|d         }|j        }d}||k    }|st	          j        d|fd||f          t	          j        |          t	          j        |          t	          j        |          dz  }dd|iz  }	t          t	          j        |	                    d x}x}x}}|d         }|j        }d}||k    }|st	          j        d|fd||f          t	          j        |          t	          j        |          t	          j        |          dz  }dd|iz  }	t          t	          j        |	                    d x}x}x}}|d         }|j        }d}||k    }|st	          j        d|fd||f          t	          j        |          t	          j        |          t	          j        |          dz  }dd|iz  }	t          t	          j        |	                    d x}x}x}}d S )N	transport{   )observed_at_msc                    g | ]
}|d          S r   r0   .0calls     r   
<listcomp>zLtest_vault_collector_uses_readonly_info_endpoint_payload.<locals>.<listcomp>!       555TDL555r   r   ==z%(py1)s == %(py4)spy1py4assert %(py6)spy6   )z0%(py3)s
{%(py3)s = %(py0)s(%(py1)s)
} == %(py6)slen	snapshots)py0rA   py3rD   zassert %(py8)spy8r   r   )z0%(py3)s
{%(py3)s = %(py1)s.vault_id
} == %(py6)s)rA   rI   rD   )z6%(py3)s
{%(py3)s = %(py1)s.observed_at_ms
} == %(py6)szhyperliquid_info:vaultSummaries)z.%(py3)s
{%(py3)s = %(py1)s.source
} == %(py6)s)r   r   collect_vault_summariesr   
@pytest_ar_call_reprcompare	_safereprr*   _format_explanationrF   @py_builtinslocals_should_repr_global_namevault_idr5   source)
r3   rG   @py_assert0@py_assert3@py_assert2@py_format5@py_format7@py_assert5@py_assert4@py_format9s
             r   8test_vault_collector_uses_readonly_info_endpoint_payloadr]      sY   I)I>>>VVfiVjjI55Y_555K:J9KK59KKKKKKKKKKK59KKKKKK5KKKK9KKKKKKKKKKKKKKKKKKKKKKKKKKKKy>>Q>Q>Q33yy>QQ<+< +G+ G++++++++++ G+++++<++++ ++++G+++++++++++++++++++++++++++++Q<-<&-#-&#----------&#-----<----&----#-----------------------------Q<C<C"CC"CCCCCCCCCCC"CCCCCC<CCCCCCCC"CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCr   c                 8   t                      } t          |                               ddd          }d | j        D             }g d}||k    }|slt	          j        d|fd	||f          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         d         d         }d}||k    }|slt	          j        d|fd	||f          t	          j        |          t	          j        |          d
z  }dd|iz  }t          t	          j        |                    d x}x}}d S )Nr2   r   d      )start_time_msr5   c                    g | ]
}|d          S r7   r0   r8   s     r   r;   z\test_wallet_collector_captures_state_orders_portfolio_and_optional_fills.<locals>.<listcomp>,   r<   r   )r    r%   r&   r(   r=   r?   r@   rC   rD   )z6%(py2)s
{%(py2)s = %(py0)s.wallet_address
} == %(py5)ssnapshot)rH   py2py5zassert %(py7)spy7r    r$   r!   r"   )r   r   collect_wallet_snapshotr   rL   rM   rN   r*   rO   wallet_addressrP   rQ   rR   raw)r3   rc   rU   rV   rW   rX   rY   @py_assert1r[   @py_format6@py_format8s              r   Htest_wallet_collector_captures_state_orders_portfolio_and_optional_fillsrm   (   s   I)I>>>VVW^nq  CFV  G  GH55Y_555}9}9}9}}59}}}}}}}}}}}59}}}}}}5}}}}9}}}}}}}}}}}}}}}}}}}}}}}}}}}}"-g-"g----------"g------------8-----8------"----g---------------------------<,-o>~NWRWWNRWWWWWWWWWWWNRWWWWWWNWWWWRWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWr   r,   )
__future__r   builtinsrP   _pytest.assertion.rewrite	assertionrewriterL   typingr   3src.ctb_copy.collectors.hyperliquid_vault_collectorr   4src.ctb_copy.collectors.hyperliquid_wallet_collectorr   r   r]   rm   r0   r   r   <module>rv      s    " " " " " "                     Y Y Y Y Y Y [ [ [ [ [ [> > > > > > > >(D D D DX X X X X Xr   