
    M.jw                        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
 d dlmZ d dlmZmZ  G d d          Zdd
ZddZdS )    )annotationsN)Path)HyperliquidVaultCollector)CopyResearchPathsensure_runtime_dirsc                      e Zd Zd
ddZd	S )FakeVaultTransport
   urlstrpayloaddict[str, object]timeoutintc                \   ddi}||k    }|st          j        d|fd||f          dt          j                    v st          j        |          rt          j        |          ndt          j        |          dz  }dd|iz  }t          t          j        |                    d x}}d	d
dgS )NtypevaultSummaries==)z%(py0)s == %(py3)sr   )py0py3zassert %(py5)spy5zVault A0xabc)namevaultAddress)
@pytest_ar_call_reprcompare@py_builtinslocals_should_repr_global_name	_safereprAssertionError_format_explanation)selfr   r   r   @py_assert2@py_assert1@py_format4@py_format6s           W/home/agent/projects/CryptoTradingBot/Crypto_Agent/tests/test_ctb_copy_runtime_paths.pypostzFakeVaultTransport.post   s    !#344w44444444444w4444444444444w44444w44444444444444444444444444444444"G<<==    N)r
   )r   r   r   r   r   r   )__name__
__module____qualname__r*    r+   r)   r	   r	   
   s-        > > > > > > >r+   r	   returnNonec                 (
   t                      } | j        }t          |          }d}||k    }|st          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        |          t          j        |          dz  }dd|iz  }t          t          j
        |                    d x}x}x}}d	}| j        }t          |          }||v}|st          j        d
|fd||f          t          j        |          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}x}}| j        }	d}
d} |	|
|          }|j        } |            }|j        }d} ||          }|sddt          j                    v st          j        |           rt          j        |           ndt          j        |	          t          j        |
          t          j        |          t          j        |          t          j        |          t          j        |          t          j        |          t          j        |          t          j        |          d
z  }t          t          j
        |                    d x}	x}
x}x}x}x}x}x}}| j        }	d}
 |	|
          }|j        } |            }|j        }d} ||          }|sddt          j                    v st          j        |           rt          j        |           ndt          j        |	          t          j        |
          t          j        |          t          j        |          t          j        |          t          j        |          t          j        |          t          j        |          d	z  }t          t          j
        |                    d x}	x}
x}x}x}x}x}}d S )Nz7/home/agent/.local/state/CryptoTradingBot/copy_researchr   )zJ%(py5)s
{%(py5)s = %(py0)s(%(py3)s
{%(py3)s = %(py1)s.root
})
} == %(py8)sr   paths)r   py1r   r   py8zassert %(py10)spy10Crypto_Agent)not in)zN%(py1)s not in %(py8)s
{%(py8)s = %(py3)s(%(py6)s
{%(py6)s = %(py4)s.root
})
})r4   r   py4py6r5   vaults
2026-06-14z+snapshots/vaults/2026-06-14/snapshots.jsonlzassert %(py18)s
{%(py18)s = %(py14)s
{%(py14)s = %(py12)s
{%(py12)s = %(py10)s
{%(py10)s = %(py8)s
{%(py8)s = %(py2)s
{%(py2)s = %(py0)s.snapshot_file
}(%(py4)s, %(py6)s)
}.as_posix
}()
}.endswith
}(%(py16)s)
})
r   py2r9   r:   r5   r6   py12py14py16py18zreports/daily/2026-06-14.mdzassert %(py16)s
{%(py16)s = %(py12)s
{%(py12)s = %(py10)s
{%(py10)s = %(py8)s
{%(py8)s = %(py6)s
{%(py6)s = %(py2)s
{%(py2)s = %(py0)s.daily_report_file
}(%(py4)s)
}.as_posix
}()
}.endswith
}(%(py14)s)
})	r   r=   r9   r:   r5   r6   r>   r?   r@   )r   rootr   r   r   r   r   r    r!   r"   r#   snapshot_fileas_posixendswithdaily_report_file)r3   r%   @py_assert4@py_assert7@py_assert6@py_format9@py_format11@py_assert0@py_assert5r&   @py_assert3@py_assert9@py_assert11@py_assert13@py_assert15@py_assert17@py_format19@py_format17s                     r)   4test_copy_research_paths_are_outside_repo_by_defaultrV      sp   EzW3z??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W3WWWWW3WWWWWWWWWWWWWuWWWWWuWWWWWWz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WWWWWWWWWW0UZ0Z0>0000000000>00000>00000000000000000000000000000U00000U000000Z000000000000000000000000000000000yxyyx66y6?y??AAyAJyKxyJJKxyyyyyyyyyyyyyyy5yyyyy5yyyyyyyyyyxyyyyyyyy6yyyy?yyyyAyyyyJyyyyKxyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyy"c<c""<00c09c99;;c;DcEbcDDEbccccccccccccccc5ccccc5cccccc"cccc<cccc0cccc9cccc;ccccDccccEb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           
     D   t          | dz            }t          |d           t          t                                                    d          }t          t                                                    ||                    dd                    }d}| |z  }d}||z  }d}||z  }	d}
|	|
z  }d}||z  }||k    }|s!t          j        d	|fd
||f          dt          j
                    v st          j        |          rt          j        |          nddt          j
                    v st          j        |           rt          j        |           ndt          j        |          t          j        |          t          j        |          t          j        |
          t          j        |          dz  }dd|iz  }t          t          j        |                    d x}x}x}x}x}x}x}	x}
x}x}}d |                                                                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}t#          |          }|j        } |            }| }|sddt          j
                    v st          j        t"                    rt          j        t"                    ndt          j        |          t          j        |          t          j        |          t          j        |          dz  }t          t          j        |                    d x}x}x}x}}d S )Ncopy_researchr<   )	transport{   )observed_at_msr;   	snapshotszsnapshots.jsonlr   )zQ%(py0)s == (((((%(py2)s / %(py4)s) / %(py7)s) / %(py10)s) / %(py13)s) / %(py16)s)targettmp_path)r   r=   r9   py7r6   py13r@   zassert %(py19)spy19c                6    g | ]}t          j        |          S r/   )jsonloads).0lines     r)   
<listcomp>zVtest_snapshot_jsonl_write_uses_runtime_path_without_repo_pollution.<locals>.<listcomp>    s"    IIIDJtIIIr+   r   vault_idr   )z%(py1)s == %(py4)s)r4   r9   zassert %(py6)sr:   zruntime/copy_researchzcassert not %(py8)s
{%(py8)s = %(py6)s
{%(py6)s = %(py4)s
{%(py4)s = %(py0)s(%(py2)s)
}.exists
}()
}r   )r   r=   r9   r:   r5   )r   r   r   r	   collect_vault_summarieswrite_jsonlrC   r   r   r   r   r    r!   r"   r#   	read_text
splitlinesr   exists)r^   r3   r\   r]   rN   rM   rI   @py_assert8rO   rP   @py_assert12@py_assert14rR   rS   r&   @py_format18@py_format20rowsrL   r%   @py_format5@py_format7rH   @py_format10s                           r)   Btest_snapshot_jsonl_write_uses_runtime_path_without_repo_pollutionrw      s*   h899E|,,,)4F4H4HIIIaaqtauuI&1C1E1EFFFRRS\^c^q^qrz  }I  _J  _J  K  KF /kX/k+k/+=kk=Hk<kH<WkZkkWZkkk6kkkkkkkkkkk6kkkkkkkkkkkkk6kkkkk6kkkkkkkkkkkkkXkkkkkXkkkkkkkkkk+kkkkkkkk<kkkkZk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kkkkkkkkkkkkkkkkII)9)9););)F)F)H)HIIID7:)')'))))))))))')))))))))')))))))))))))))))))))))))))+5t+,,5,3533555555555555555555t55555t555555+5555,5555355555555555555555555555555555555r+   )r0   r1   )
__future__r   builtinsr   _pytest.assertion.rewrite	assertionrewriter   rc   pathlibr   3src.ctb_copy.collectors.hyperliquid_vault_collectorr   src.ctb_copy.runtime_pathsr   r   r	   rV   rw   r/   r+   r)   <module>r      s    " " " " " "                     Y Y Y Y Y Y M M M M M M M M> > > > > > > >d d d d
6 
6 
6 
6 
6 
6r+   