
    8i                     r    d dl mZ d dlmZmZ d dlmZ d dlmZm	Z	m
Z
mZ d dlmZ d dlmZ  G d de      Zy	)
    )Decimal)IntegrityErrortransaction)TestCase)DepositGatewayCallbackLogPaymentAddressWithdrawalRequest)Transaction)Userc                   *    e Zd Zd Zd Zd Zd Zd Zy)PaymentsModelTestsc                 R    t         j                  j                  ddd      | _        y )Ni90  Alicealice)telegram_user_id
first_nameusername)r   objectscreate_useruser)selfs    P/home/cursorai/projects/telegram-earn/backend/apps/payments/tests/test_models.pysetUpzPaymentsModelTests.setUp   s&    LL,," - 
	    c                 d   t         j                  j                  | j                  dddddi      }| j	                  |j
                  t         j                         | j	                  |j                  d       | j                  dt        |             | j	                  |j                  d   d       | j                  t              5  t        j                         5  t         j                  j                  | j                  ddd       d d d        d d d        y # 1 sw Y   xY w# 1 sw Y   y xY w)NtronUSDTTRON_ADDR_1labelprimary)r   
blockchainassetaddressmetadatar   r"   r#   r$   )r	   r   creater   assertEqualstatusSTATUS_ACTIVEr#   assertInstrr%   assertRaisesr   r   atomic)r   r$   s     r   0test_payment_address_defaults_and_unique_addresszCPaymentsModelTests.test_payment_address_defaults_and_unique_address   s     ((//!y) 0 
 	)E)EF/fc'l+))'2I>~.##%&&--% )	 .  & /.%% /.s$   D&.D	D&D#	D&&D/c                    t         j                  j                  | j                  ddd      }t        j                  j                  | j                  |ddt        d      dddi	      }| j                  |j                  t        j                         | j                  |j                  d
       | j                  |j                  d   d       | j                  dt        |             | j                  t              5  t        j                          5  t        j                  j                  | j                  |ddt        d      d       d d d        d d d        t         j                  j                  | j                  ddd      }t        j                  j                  | j                  |ddt        d      d      }| j                  |j"                  d       y # 1 sw Y   xY w# 1 sw Y   xY w)Nr   r   TRON_ADDR_2r&   z10.00000000ztx-abcfromsender)r   r$   r"   r#   amounttransaction_hashraw_payloadr   r   z5.00r   r$   r"   r#   r4   r5   bnb
BSC_ADDR_1z3.00)r	   r   r'   r   r   r   r(   r)   STATUS_PENDINGconfirmationsr6   r+   r,   r-   r   r   r.   r"   )r   r$   depositother_addressdeposit_other_chains        r   *test_deposit_unique_per_chain_and_defaultsz=PaymentsModelTests.test_deposit_unique_per_chain_and_defaults/   s    ((//!	 0 
 //((=)%* ) 
 	)?)?@..2,,V4h?iW.~.##%&&#% "6?%- '  & / '..55 	 6 
 &oo44!6?% 5 
 	,77?3 &% /.s$   >G*9GG*G'	#G**G3c           
      H   t         j                  j                  | j                  t         j                  t        d      t         j                  t        d      t        d      d      }t        j                  j                  | j                  ddt        d      d|ddi	      }| j                  |j                  t        j                         | j                  |j                  |       | j                  |j                  d   d       | j                  d
t        |             y )Nz50.00000000z100.00000000r   )r   transaction_typer4   r)   balance_beforebalance_afterr"   r   TRON_DEST_1reasonpayout)r   r"   r#   r4   destination_addressr   r%   
Withdrawal)r   r   r'   r   TYPE_WITHDRAWALr   r:   r
   r(   r)   STATUS_REQUESTEDr   r%   r+   r,   )r   tx
withdrawals      r   .test_withdrawal_defaults_and_links_transactionzAPaymentsModelTests.test_withdrawal_defaults_and_links_transactionb   s      ''(88=)--">2!-0 ( 
 '..55=) -) 6 

 	**,=,N,NO//4,,X6AlC
O4r   c           	         t         j                  j                  | j                  ddd      }t        j                  j                  | j                  |ddt        d      d      }t        j                  j                  d|d	did
di      }| j                  |j                  t        j                         | j                  |j                  |       | j                  |j                         | j                  |j                  d	   d       | j                  |j                  d
   d       | j                  dt!        |             y )Nr   r   TRON_ADDR_3r&   z1.00ztx-callbackr7   zdeposit.detectedrK   zX-Signatureabc)
event_typerelated_depositpayloadheaders)r	   r   r'   r   r   r   r   r(   r)   r:   rR   assertIsNonerelated_withdrawalrS   rT   r+   r,   )r   r$   r<   logs       r   $test_callback_log_links_and_defaultsz7PaymentsModelTests.test_callback_log_links_and_defaults|   s!    ((//!	 0 
 //((6?* ) 
 !((//)#=)"E*	 0 
 	%7%F%FG,,g6#001T*M:]3U;(#c(3r   N)__name__
__module____qualname__r   r/   r?   rM   rX    r   r   r   r      s    
.1@f544r   r   N)decimalr   	django.dbr   r   django.testr   apps.payments.modelsr   r   r	   r
   apps.transactions.modelsr   apps.users.modelsr   r   r\   r   r   <module>rc      s.     1    1 "H4 H4r   