+
    8j  c                      ^ RI t^ RIHu Ht ^ RIt^ RIt^ RIt^ RI	t	]P                  P                  ]P                  P                  ]P                  P                  ]4      R4      4      t]	P                  P!                  ^ ]4       ^ RIHtHtHtHtHtHtHtHtHt R tR tR tR tR tR	 t R
 t!R t"R t#R t$R t%R t&R t'R t(R t)R t*R t+R t,R# )    Nz..)	PineParseErrorbuild_parsercopy_to_clipboardlatest_file
parse_pinerun_preflightslugifyverify_text_contentwrite_source_copyc                  <
   \        \        P                  P                  \        R 4      4      p V P
                  pRq!V8H  q3'       g   \        P                  ! RV3RW34      RR\        P                  ! 4       9   g   \        P                  ! V 4      '       d   \        P                  ! V 4      MRR\        P                  ! V4      R\        P                  ! V4      /,          pRRV/,          p\        \        P                  ! V4      4      hR;p;r2V P                  pR	q!V8H  q3'       g   \        P                  ! RV3RW34      RR\        P                  ! 4       9   g   \        P                  ! V 4      '       d   \        P                  ! V 4      MRR\        P                  ! V4      R\        P                  ! V4      /,          pRRV/,          p\        \        P                  ! V4      4      hR;p;r2V P                  p^q!V8H  q3'       g   \        P                  ! RV3RW34      RR\        P                  ! 4       9   g   \        P                  ! V 4      '       d   \        P                  ! V 4      MRR\        P                  ! V4      R\        P                  ! V4      /,          pRRV/,          p\        \        P                  ! V4      4      hR;p;r2V P                   p^dq!V8  q3'       g   \        P                  ! RV3RW34      RR\        P                  ! 4       9   g   \        P                  ! V 4      '       d   \        P                  ! V 4      MRR\        P                  ! V4      R\        P                  ! V4      /,          pRRV/,          p\        \        P                  ! V4      4      hR;p;r2V P"                  p\%        V4      p^@qrV8H  q'       Eg3   \        P                  ! RV3RW'34      RR
\        P                  ! 4       9   g!   \        P                  ! \$        4      '       d   \        P                  ! \$        4      MR
RR\        P                  ! 4       9   g   \        P                  ! V 4      '       d   \        P                  ! V 4      MRR\        P                  ! V4      R\        P                  ! V4      R\        P                  ! V4      /,          p	RRV	/,          p
\        \        P                  ! V
4      4      hR;p;p;rR# )#strategies/strategy_mlp_scores.pinestrategypy0infopy2py5assert %(py7)spy7N	MLPScoreslenpy1py3py8zassert %(py10)spy10==z,%(py2)s
{%(py2)s = %(py0)s.kind
} == %(py5)sz-%(py2)s
{%(py2)s = %(py0)s.title
} == %(py5)sz/%(py2)s
{%(py2)s = %(py0)s.version
} == %(py5)s)>)z1%(py2)s
{%(py2)s = %(py0)s.line_count
} > %(py5)s)zL%(py5)s
{%(py5)s = %(py0)s(%(py3)s
{%(py3)s = %(py1)s.sha256
})
} == %(py8)s)r   ospathjoinREPOkind
@pytest_ar_call_reprcompare@py_builtinslocals_should_repr_global_name	_safereprAssertionError_format_explanationtitleversion
line_countsha256r   )r   @py_assert1@py_assert4@py_assert3@py_format6@py_format8@py_assert2@py_assert7@py_assert6@py_format9@py_format11s              H/Users/jameslopez/projects/TradingBot25/tests/test_tradingview_update.py#test_parse_strategy_title_named_argr<      s   bggll4)NOPD99"
"
"""""9""""""4""""4"""9"""
""""""""::$$$$$$$:$$$$$$4$$$$4$$$:$$$$$$$$$$$<<11<44<1?? S S     ?      4    4   ?   S        {{!3{!r!r!!!!!!!!!!!3!!!!3!!!!!!!t!!!!t!!!{!!!!!!r!!!!!!!!    c            	         \        \        P                  P                  \        R 4      4      p V P
                  pRq!V8H  q3'       g   \        P                  ! R
V3RW34      RR\        P                  ! 4       9   g   \        P                  ! V 4      '       d   \        P                  ! V 4      MRR\        P                  ! V4      R\        P                  ! V4      /,          pRRV/,          p\        \        P                  ! V4      4      hR;p;r2V P                  pR	q!V8H  q3'       g   \        P                  ! R
V3RW34      RR\        P                  ! 4       9   g   \        P                  ! V 4      '       d   \        P                  ! V 4      MRR\        P                  ! V4      R\        P                  ! V4      /,          pRRV/,          p\        \        P                  ! V4      4      hR;p;r2V P                  p^q!V8H  q3'       g   \        P                  ! R
V3RW34      RR\        P                  ! 4       9   g   \        P                  ! V 4      '       d   \        P                  ! V 4      MRR\        P                  ! V4      R\        P                  ! V4      /,          pRRV/,          p\        \        P                  ! V4      4      hR;p;r2R# ))indicators/IndicatorActivationScores.pine	indicatorr   r   r   r   r   r   NzIndicator: Activation Scoresr   r   r   r   )r   r    r!   r"   r#   r$   r%   r&   r'   r(   r)   r*   r+   r,   r-   r.   )r   r1   r2   r3   r4   r5   s         r;   )test_parse_indicator_title_positional_argrA   !   su   bggll4)TUVD99#######9######4####4###9###########::777777777:777777477774777:777777777777<<11<44<1r=   c           	         V R ,          pVP                  RRR7       \        V4      pVP                  pRqCV8H  qU'       g   \        P                  ! RV3RW434      RR\
        P                  ! 4       9   g   \        P                  ! V4      '       d   \        P                  ! V4      MRR\        P                  ! V4      R\        P                  ! V4      /,          pR	R
V/,          p\        \        P                  ! V4      4      hR;p;rTVP                  pRqCV8H  qU'       g   \        P                  ! RV3RW434      RR\
        P                  ! 4       9   g   \        P                  ! V4      '       d   \        P                  ! V4      MRR\        P                  ! V4      R\        P                  ! V4      /,          pR	R
V/,          p\        \        P                  ! V4      4      hR;p;rTR# )zcustom.pinez[//@version=6
strategy(
    title="My Multi Line Strategy",
    overlay=false
)
plot(close)
utf-8encodingr   r   r   r   r   r   r   NzMy Multi Line Strategyr   r   r   )
write_textr   r$   r%   r&   r'   r(   r)   r*   r+   r,   r-   )tmp_pathpiner   r1   r2   r3   r4   r5   s   &       r;    test_parse_multiline_named_titlerI   )   s   m#DOO	   	 dD99"
"
"""""9""""""4""""4"""9"""
""""""""::111111111:111111411114111:111111111111r=   c                    V R ,          pVP                  RRR7        \        V4       \        R4      h  \         EdF   pRp\	        T4      qCT9   qU'       Eg   \
        P                  ! RT3RY434      R\
        P                  ! T4      RR\        P                  ! 4       9   g!   \
        P                  ! \        4      '       d   \
        P                  ! \        4      MRR	R
\        P                  ! 4       9   g   \
        P                  ! T4      '       d   \
        P                  ! T4      MR
R\
        P                  ! T4      /,          pRRT/,          p\        \
        P                  ! T4      4      hR;p;rT Rp?R# Rp?ii ; i)zlibrary.pinez//@version=6
library("Nope")
rC   rD   zExpected PineParseErrorr   r   r   strpy4excpy6assert %(py8)sr   N)in)z0%(py1)s in %(py6)s
{%(py6)s = %(py3)s(%(py4)s)
})rF   r   r+   r   rK   r%   r&   r*   r'   r(   r)   r,   )rG   rH   rM   @py_assert0@py_assert5r6   @py_format7r9   s   &       r;   )test_parse_requires_strategy_or_indicatorrT   <   s    n$DOO7'OJ84 677  &%SX%X%%%%%z%%%z%%%%%%S%%%%S%%%%%%%%%%%%%%X%%%%%%%%%&s$   4 F BF AF A$F  Fc                     ^ RI Hp  ^ RIHp \        P
                  pV! 4       \        n         V ! RR.4      p\        P
                  P                  4       pV\        n        \        P                  ! V4      p^ qcV8H  qw'       g   \        P                  ! RV3RW634      RR\        P                  ! 4       9   g   \        P                  ! V4      '       d   \        P                  ! V4      MRR\        P                  ! V4      /,          pRR	V/,          p	\        \        P                   ! V	4      4      hR
;rvVR,          p
RqV8H  qf'       gy   \        P                  ! RV3RW34      R\        P                  ! V
4      R\        P                  ! V4      /,          pRRV/,          p\        \        P                   ! V4      4      hR
;p
;rkR
#   T\        n        i ; i)r   )main)StringIOinspectr   r   rcr   zassert %(py5)sr   Nr-   r   r   rL   assert %(py6)srN   r   )z%(py0)s == %(py3)sz%(py1)s == %(py4)s)tools.tradingview_updaterV   iorW   sysstdoutgetvaluejsonloadsr%   r&   r'   r(   r)   r*   r+   r,   )rV   rW   
old_stdoutrY   outputpayloadr6   r1   @py_format4r4   rQ   r3   @py_format5rS   s                 r;   !test_inspect_command_outputs_jsonrh   H   s    -JCJ 9CDE$$&
jj GN7NNNN2NNNNNN2NNNN2NNNNNNNNNNN7*{*{***********{********	  
s   (G Gc                     \        \        P                  P                  \        R 4      4      p \        V 4      p^q!V8H  q3'       Eg   \        P                  ! RV3RW34      RR\        P                  ! 4       9   g!   \        P                  ! \
        4      '       d   \        P                  ! \
        4      MRRR\        P                  ! 4       9   g   \        P                  ! V 4      '       d   \        P                  ! V 4      MRR\        P                  ! V4      R\        P                  ! V4      /,          pRRV/,          p\        \        P                  ! V4      4      hR	;p;r2V ^ ,          P                  RR	 pR
R .qvV8H  q'       gy   \        P                  ! RV3RWg34      R\        P                  ! V4      R\        P                  ! V4      /,          pRRV/,          p\        \        P                  ! V4      4      hR	;p;rR	# )r   r   r   r   checksr   rN   rO   r   Nztools/check_pine_duplicates.pyrL   rZ   r   )z0%(py3)s
{%(py3)s = %(py0)s(%(py1)s)
} == %(py6)sr[   )r   r    r!   r"   r#   r   r%   r&   r'   r(   r)   r*   r+   r,   command)	rj   r6   rR   r2   rS   r9   rQ   r3   rg   s	            r;   0test_preflight_runs_duplicate_check_for_any_pinerm   Y   s   277<<.STUFv;!!;33vv;!!9RS!n&FHm%nn%nnnnnn!nnn!nnn%nnnnnnnnnr=   c                 ^   V P                  R R 4       R pV P                  RV4       Rp\        V4      pRqCVJ qU'       g   \        P                  ! RV3RW434      RR\        P
                  ! 4       9   g!   \        P                  ! \        4      '       d   \        P                  ! \        4      MRR\        P                  ! V4      R	\        P                  ! V4      R
\        P                  ! V4      /,          pRRV/,          p\        \        P                  ! V4      4      hR;p;p;rTR# )z%tools.tradingview_update.shutil.whichc                     R # )z/usr/bin/pbcopy )names   &r;   <lambda>Htest_copy_to_clipboard_returns_false_when_pbcopy_fails.<locals>.<lambda>a   s    N_r=   c                  2    \         P                  ! ^R.4      h)   pbcopy)
subprocessCalledProcessError)argskwargss   *,r;   failDtest_copy_to_clipboard_returns_false_when_pbcopy_fails.<locals>.failc   s    ++Az::r=   z'tools.tradingview_update.subprocess.runcodeFr   r   r   rL   r   assert %(py9)spy9Nisz0%(py4)s
{%(py4)s = %(py0)s(%(py2)s)
} is %(py7)s)
setattrr   r%   r&   r'   r(   r)   r*   r+   r,   )monkeypatchr{   r1   r3   r8   rR   r5   @py_format10s   &       r;   6test_copy_to_clipboard_returns_false_when_pbcopy_failsr   `   s    ?A_`; A4H#-V$-------$-------------V---$-----------r=   c                     R p \        V 4      pRq!V8H  q3'       g   \        P                  ! RV3RW34      RR\        P                  ! 4       9   g!   \        P
                  ! \         4      '       d   \        P                  ! \         4      MRR\        P                  ! V 4      R\        P                  ! V4      R\        P                  ! V4      /,          pRRV/,          p\        \        P                  ! V4      4      hR	;p ;p;r2R
p \        V 4      pRq!V8H  q3'       g   \        P                  ! RV3RW34      RR\        P                  ! 4       9   g!   \        P
                  ! \         4      '       d   \        P                  ! \         4      MRR\        P                  ! V 4      R\        P                  ! V4      R\        P                  ! V4      /,          pRRV/,          p\        \        P                  ! V4      4      hR	;p ;p;r2R	# )z0https://www.tradingview.com/chart/?symbol=BTCUSDz-https_www.tradingview.com_chart_symbol_BTCUSDr   r   r   rL   r   r~   r   Nz   capturer   )z0%(py4)s
{%(py4)s = %(py0)s(%(py2)s)
} == %(py7)s)	r   r%   r&   r'   r(   r)   r*   r+   r,   )r1   r3   r8   rR   r5   r   s         r;   &test_slugify_produces_filesystem_labelr   k   s   Ey7EFyJyyJyyyyyyFyyyyyy7yyyy7yyyEyyyFyyyJyyyyyyyyy&75>&Y&Y&&&&&>&&&&&&7&&&&7&&&5&&&>&&&Y&&&&&&&&r=   c            	         \        4       p V P                  R .4      pVP                  pRq2V8H  qD'       g   \        P                  ! R
V3RW#34      RR\
        P                  ! 4       9   g   \        P                  ! V4      '       d   \        P                  ! V4      MRR\        P                  ! V4      R\        P                  ! V4      /,          pRRV/,          p\        \        P                  ! V4      4      hR;p;rCVP                  pR	q2VJ qD'       g   \        P                  ! RV3RW#34      RR\
        P                  ! 4       9   g   \        P                  ! V4      '       d   \        P                  ! V4      MRR\        P                  ! V4      R\        P                  ! V4      /,          pRRV/,          p\        \        P                  ! V4      4      hR;p;rCVP                  pR	q2VJ qD'       g   \        P                  ! RV3RW#34      RR\
        P                  ! 4       9   g   \        P                  ! V4      '       d   \        P                  ! V4      MRR\        P                  ! V4      R\        P                  ! V4      /,          pRRV/,          p\        \        P                  ! V4      4      hR;p;rCR# )r   "https://www.tradingview.com/chart/r   ry   r   r   r   r   NFr   z+%(py2)s
{%(py2)s = %(py0)s.url
} == %(py5)sr   z.%(py2)s
{%(py2)s = %(py0)s.headed
} is %(py5)s)z1%(py2)s
{%(py2)s = %(py0)s.save_text
} is %(py5)s)r   
parse_argsurlr%   r&   r'   r(   r)   r*   r+   r,   headed	save_textparserry   r1   r2   r3   r4   r5   s          r;   1test_capture_parser_defaults_to_tradingview_chartr   p   st   ^Fi[)D88;;;;;;;;;8;;;;;;4;;;;4;;;8;;;;;;;;;;;;;;%%;44;%>>"U"U""""">""""""4""""4""">"""U""""""""r=   c                    \        \        P                  P                  \        R 4      4      p\        WR4      pVP                  q3! 4       qD'       g   RRR\        P                  ! 4       9   g   \        P                  ! V4      '       d   \        P                  ! V4      MRR\        P                  ! V4      R\        P                  ! V4      /,          p\        \        P                  ! V4      4      hR;r4VP                  pRqC! VR	7      pRqvV8H  q'       g   \        P                  ! RV3RWg34      RR\        P                  ! 4       9   g   \        P                  ! V4      '       d   \        P                  ! V4      MRR\        P                  ! V4      R\        P                  ! V4      R
\        P                  ! V4      R\        P                  ! V4      /,          p	RRV	/,          p
\        \        P                  ! V
4      4      hR;p;p;p;rV R,          R,          pVP                  q3! 4       qD'       g   RRR\        P                  ! 4       9   g   \        P                  ! V4      '       d   \        P                  ! V4      MRR\        P                  ! V4      R\        P                  ! V4      /,          p\        \        P                  ! V4      4      hR;r4VP                  pRqC! VR	7      pRqvV8H  q'       g   \        P                  ! RV3RWg34      RR\        P                  ! 4       9   g   \        P                  ! V4      '       d   \        P                  ! V4      MRR\        P                  ! V4      R\        P                  ! V4      R
\        P                  ! V4      R\        P                  ! V4      /,          p	RRV	/,          p
\        \        P                  ! V
4      4      hR;p;p;p;rR# )r?   z// pine source
zAassert %(py4)s
{%(py4)s = %(py2)s
{%(py2)s = %(py0)s.exists
}()
}r   source_pathr   rL   NrC   rD   rN   r   zassert %(py11)spy11sourcez'latest_Indicator_Activation_Scores.pinelatestr   )zX%(py6)s
{%(py6)s = %(py2)s
{%(py2)s = %(py0)s.read_text
}(encoding=%(py4)s)
} == %(py9)s)r   r    r!   r"   r#   r
   existsr'   r(   r%   r)   r*   r+   r,   	read_textr&   )rG   r   r   r1   r3   rg   rR   @py_assert8r7   r   @py_format12r   s   &           r;   ;test_write_source_copy_creates_timestamped_and_latest_filesr   y   s=   bggll4)TUVD#H4FGK;;  H'H '2H6HH6HHHHHH2HHHHHH;HHHH;HHH HHH'HHH2HHH6HHHHHHHHH #LLF===??66=?CWCW-C1CC1CCCCCC-CCCCCC6CCCC6CCCCCCWCCC-CCC1CCCCCCCCCCr=   c                     \        R R.RR.R7      p V R,          pRq!VJ q3'       gy   \        P                  ! RV3RW34      R\        P                  ! V4      R\        P                  ! V4      /,          pR	R
V/,          p\	        \        P
                  ! V4      4      hR;p;r2V R,          p. q!V8H  q3'       gy   \        P                  ! RV3RW34      R\        P                  ! V4      R\        P                  ! V4      /,          pR	R
V/,          p\	        \        P
                  ! V4      4      hR;p;r2V R,          p. q!V8H  q3'       gy   \        P                  ! RV3RW34      R\        P                  ! V4      R\        P                  ! V4      /,          pR	R
V/,          p\	        \        P
                  ! V4      4      hR;p;r2R# )zPine Editor
MLPScores
No errorsr   Compilation errorzUndeclared identifierexpectedrejectedokTr   rL   rZ   rN   Nmissing_expectedfound_rejectedr   z%(py1)s is %(py4)sr   r[   r	   r%   r&   r*   r+   r,   resultrQ   r3   r6   rg   rS   s         r;   =test_verify_text_content_requires_expected_and_rejects_errorsr      s    +%'>?F $<44<<4$%+++++++%+++%+++++++++++"#)r)r)))))#)))#)))r))))))))r=   c                     \        R R.R.R7      p V R,          pRq!VJ q3'       gy   \        P                  ! RV3RW34      R\        P                  ! V4      R\        P                  ! V4      /,          pRR	V/,          p\	        \        P
                  ! V4      4      hR
;p;r2V R,          pR.q!V8H  q3'       gy   \        P                  ! RV3RW34      R\        P                  ! V4      R\        P                  ! V4      /,          pRR	V/,          p\	        \        P
                  ! V4      4      hR
;p;r2V R,          pR.q!V8H  q3'       gy   \        P                  ! RV3RW34      R\        P                  ! V4      R\        P                  ! V4      /,          pRR	V/,          p\	        \        P
                  ! V4      4      hR
;p;r2R
# )zPine Editor
Compilation error
r   r   r   r   Fr   rL   rZ   rN   Nr   r   r   r   r   r[   r   r   s         r;   5test_verify_text_content_reports_missing_and_rejectedr      s    *%&F $< 5 5     <   <   5        $%6+666666%666%66666666666"#<(;'<<'<<<<<<#<<<#<<<'<<<<<<<<<r=   c            	         \        4       p V P                  . RO4      pVP                  pRq2V8H  qD'       g   \        P                  ! RV3RW#34      RR\
        P                  ! 4       9   g   \        P                  ! V4      '       d   \        P                  ! V4      MRR\        P                  ! V4      R\        P                  ! V4      /,          pRR	V/,          p\        \        P                  ! V4      4      hR
;p;rCVP                  pRR.q2V8H  qD'       g   \        P                  ! RV3RW#34      RR\
        P                  ! 4       9   g   \        P                  ! V4      '       d   \        P                  ! V4      MRR\        P                  ! V4      R\        P                  ! V4      /,          pRR	V/,          p\        \        P                  ! V4      4      hR
;p;rCR
# )verify-text
screen.txtr   Pine Editorr   ry   r   r   r   r   N)r   z--textr   --expectr   r   r   r   )z,%(py2)s
{%(py2)s = %(py0)s.text
} == %(py5)sz.%(py2)s
{%(py2)s = %(py0)s.expect
} == %(py5)s)r   r   textr%   r&   r'   r(   r)   r*   r+   r,   expectr   s          r;   6test_verify_text_parser_collects_repeated_expectationsr      s   ^FxyD99$$$$$$$9$$$$$$4$$$$4$$$9$$$$$$$$$$$;;6;66666666;666666466664666;666666666666r=   c            	      (	   \        4       p V P                  R R.4      pVP                  pRq2V8H  qD'       g   \        P                  ! RV3RW#34      RR\
        P                  ! 4       9   g   \        P                  ! V4      '       d   \        P                  ! V4      MRR\        P                  ! V4      R\        P                  ! V4      /,          pRRV/,          p\        \        P                  ! V4      4      hR;p;rCVP                  pR	q2V8H  qD'       g   \        P                  ! RV3RW#34      RR\
        P                  ! 4       9   g   \        P                  ! V4      '       d   \        P                  ! V4      MRR\        P                  ! V4      R\        P                  ! V4      /,          pRRV/,          p\        \        P                  ! V4      4      hR;p;rCVP                  p. q2V8H  qD'       g   \        P                  ! RV3RW#34      RR\
        P                  ! 4       9   g   \        P                  ! V4      '       d   \        P                  ! V4      MRR\        P                  ! V4      R\        P                  ! V4      /,          pRRV/,          p\        \        P                  ! V4      4      hR;p;rCVP                  p. q2V8H  qD'       g   \        P                  ! RV3RW#34      RR\
        P                  ! 4       9   g   \        P                  ! V4      '       d   \        P                  ! V4      MRR\        P                  ! V4      R\        P                  ! V4      /,          pRRV/,          p\        \        P                  ! V4      4      hR;p;rCVP                  pR
q2V8H  qD'       g   \        P                  ! RV3RW#34      RR\
        P                  ! 4       9   g   \        P                  ! V4      '       d   \        P                  ! V4      MRR\        P                  ! V4      R\        P                  ! V4      /,          pRRV/,          p\        \        P                  ! V4      4      hR;p;rCR# )zmanual-updater   r   ry   r   r   r   r   Nr   i  r   z,%(py2)s
{%(py2)s = %(py0)s.pine
} == %(py5)sr   r   )z.%(py2)s
{%(py2)s = %(py0)s.reject
} == %(py5)sz/%(py2)s
{%(py2)s = %(py0)s.wait_ms
} == %(py5)s)r   r   rH   r%   r&   r'   r(   r)   r*   r+   r,   r   r   rejectwait_msr   s          r;   Etest_manual_update_parser_defaults_to_script_title_verification_laterr      s_   ^Fo/TUVD99=========9======4====4===9============88;;;;;;;;;8;;;;;;4;;;;4;;;8;;;;;;;;;;;;;;"";44;";;"";44;"<<44<44<4r=   c            	      Z   \        4       p V P                  R .4      pVP                  pRq2V8H  qD'       g   \        P                  ! RV3RW#34      RR\
        P                  ! 4       9   g   \        P                  ! V4      '       d   \        P                  ! V4      MRR\        P                  ! V4      R\        P                  ! V4      /,          pRRV/,          p\        \        P                  ! V4      4      hR;p;rCVP                  pR	q2VJ qD'       g   \        P                  ! RV3RW#34      RR\
        P                  ! 4       9   g   \        P                  ! V4      '       d   \        P                  ! V4      MRR\        P                  ! V4      R\        P                  ! V4      /,          pRRV/,          p\        \        P                  ! V4      4      hR;p;rCVP                  pR	q2VJ qD'       g   \        P                  ! RV3RW#34      RR\
        P                  ! 4       9   g   \        P                  ! V4      '       d   \        P                  ! V4      MRR\        P                  ! V4      R\        P                  ! V4      /,          pRRV/,          p\        \        P                  ! V4      4      hR;p;rCVP                  pR
q2V8H  qD'       g   \        P                  ! RV3RW#34      RR\
        P                  ! 4       9   g   \        P                  ! V4      '       d   \        P                  ! V4      MRR\        P                  ! V4      R\        P                  ! V4      /,          pRRV/,          p\        \        P                  ! V4      4      hR;p;rCR# )doctorr   r   ry   r   r   r   r   NF  r   r   r   )z/%(py2)s
{%(py2)s = %(py0)s.browser
} is %(py5)s)z3%(py2)s
{%(py2)s = %(py0)s.tradingview
} is %(py5)sr   )r   r   rH   r%   r&   r'   r(   r)   r*   r+   r,   browsertradingviewr   r   s          r;   ,test_doctor_parser_defaults_to_static_checksr      s   ^FhZ(D99=========9======4====4===9============<< 5 5     <      4    4   <   5        $u$u$$$$$$$$$$$4$$$$4$$$$$$u$$$$$$$$<<44<44<4r=   c                 `   V R ,          pV R,          pVP                  RRR7       VP                  RRR7       \        P                  ! VR4       \        P                  ! VR4       W.p\        V4      qDV8H  qU'       Eg   \        P
                  ! RV3RWB34      RR\        P                  ! 4       9   g!   \        P                  ! \        4      '       d   \        P                  ! \        4      MRR\        P                  ! V4      R\        P                  ! V4      R	R
\        P                  ! 4       9   g   \        P                  ! V4      '       d   \        P                  ! V4      MR
/,          pRRV/,          p\        \        P                  ! V4      4      hR;p;rEV R,          .p\        V4      pRqVJ qU'       g   \        P
                  ! RV3RWH34      RR\        P                  ! 4       9   g!   \        P                  ! \        4      '       d   \        P                  ! \        4      MRR\        P                  ! V4      R\        P                  ! V4      R\        P                  ! V4      /,          p	RRV	/,          p
\        \        P                  ! V
4      4      hR;p;p;rXR# )zold.jsonznew.jsonz{}rC   rD   r   r   r   rL   rN   newrO   r   Nzmissing.jsonr   r~   r   )ru   ru   )   r   r   )z0%(py4)s
{%(py4)s = %(py0)s(%(py2)s)
} == %(py6)sr   r   )rF   r    utimer   r%   r&   r'   r(   r)   r*   r+   r,   )rG   oldr   r1   r3   rR   rS   r9   r8   r5   r   s   &          r;   $test_latest_file_returns_newest_pathr      sz   
Z
C
Z
CNN4'N*NN4'N*HHS&HHS&z);z")c)))))"))))));))));)))z)))"))))))c))))c)))))))) >12;;23;t;t;;;;;3;;;;;;;;;;;;;;;2;;;3;;;t;;;;;;;;r=   c            	         \        4       p V P                  R .4      pVP                  pRq2V8H  qD'       g   \        P                  ! R	V3R
W#34      RR\
        P                  ! 4       9   g   \        P                  ! V4      '       d   \        P                  ! V4      MRR\        P                  ! V4      R\        P                  ! V4      /,          pRRV/,          p\        \        P                  ! V4      4      hR;p;rCR# )statusz.tradingview_e2er   ry   r   r   r   r   Nr   )z/%(py2)s
{%(py2)s = %(py0)s.out_dir
} == %(py5)s)r   r   out_dirr%   r&   r'   r(   r)   r*   r+   r,   r   s          r;   +test_status_parser_defaults_to_artifact_dirr      s    ^FhZ(D<<---------<------4----4---<------------r=   c            	      Z   \        4       p V P                  R .4      pVP                  pRq2V8H  qD'       g   \        P                  ! RV3RW#34      RR\
        P                  ! 4       9   g   \        P                  ! V4      '       d   \        P                  ! V4      MRR\        P                  ! V4      R\        P                  ! V4      /,          pRRV/,          p\        \        P                  ! V4      4      hR;p;rCVP                  pR	q2VJ qD'       g   \        P                  ! RV3RW#34      RR\
        P                  ! 4       9   g   \        P                  ! V4      '       d   \        P                  ! V4      MRR\        P                  ! V4      R\        P                  ! V4      /,          pRRV/,          p\        \        P                  ! V4      4      hR;p;rCVP                  pR	q2VJ qD'       g   \        P                  ! RV3RW#34      RR\
        P                  ! 4       9   g   \        P                  ! V4      '       d   \        P                  ! V4      MRR\        P                  ! V4      R\        P                  ! V4      /,          pRRV/,          p\        \        P                  ! V4      4      hR;p;rCVP                  pR
q2V8H  qD'       g   \        P                  ! RV3RW#34      RR\
        P                  ! 4       9   g   \        P                  ! V4      '       d   \        P                  ! V4      MRR\        P                  ! V4      R\        P                  ! V4      /,          pRRV/,          p\        \        P                  ! V4      4      hR;p;rCR# )zprofile-statusr   r   ry   r   r   r   r   NFr   r   r   r   r   )z5%(py2)s
{%(py2)s = %(py0)s.wait_for_user
} is %(py5)sr   )r   r   r   r%   r&   r'   r(   r)   r*   r+   r,   r   wait_for_userr   r   s          r;   @test_profile_status_parser_defaults_to_persistent_headless_checkr      s   ^F./0D88;;;;;;;;;8;;;;;;4;;;;4;;;8;;;;;;;;;;;;;;%%;44;%&&&&&&&&&&&&&4&&&&4&&&&&&&&&&&&&&<<44<44<4r=   )-builtinsr'   _pytest.assertion.rewrite	assertionrewriter%   ra   r    rw   r^   r!   abspathr"   dirname__file__r#   insertr\   r   r   r   r   r   r   r   r	   r
   r<   rA   rI   rT   rh   rm   r   r   r   r   r   r   r   r   r   r   r   r   rp   r=   r;   <module>r      s       	  
 
wwrww||BGGOOH$=tDE 4 
 
 
"2&	8+"o.'
#D	*	=7  	<. r=   