
    8j                        d dl Zd dlmc mZ d dlZd dlZd dlZd dl	Z	ej                  j                  ej                  j                  ej                  j                  e      d            Ze	j                  j!                  d e       d dlmZmZmZmZmZmZmZmZmZ d Zd Zd Zd Zd Zd	 Z d
 Z!d Z"d Z#d Z$d Z%d Z&d Z'd Z(d Z)d Z*d Z+d Z,y)    Nz..)	PineParseErrorbuild_parsercopy_to_clipboardlatest_file
parse_pinerun_preflightslugifyverify_text_contentwrite_source_copyc                  	   t        t        j                  j                  t        d            } | 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	}||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}||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}||kD  }|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%        |      }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}}y )N#strategies/strategy_mlp_scores.pinestrategy==z,%(py2)s
{%(py2)s = %(py0)s.kind
} == %(py5)sinfopy0py2py5assert %(py7)spy7	MLPScoresz-%(py2)s
{%(py2)s = %(py0)s.title
} == %(py5)s   z/%(py2)s
{%(py2)s = %(py0)s.version
} == %(py5)sd   )>)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len)r   py1py3r   py8zassert %(py10)spy10)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_argrA      st   bggll4)NOPD99"
"9
""""9
""""""4"""4"""9"""
"""""""::$$:$$$$:$$$$$$4$$$4$$$:$$$$$$$$$$<<1<1<144<1?? S ?S    ?S      4   4   ?   S       {{!3{!r!r!!!!r!!!!!!3!!!3!!!!!!t!!!t!!!{!!!!!!r!!!!!!!    c                     t        t        j                  j                  t        d            } | 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	}||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}||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 )N)indicators/IndicatorActivationScores.pine	indicatorr   r   r   r   r   r   zIndicator: Activation Scoresr   r   r   )r   r%   r&   r'   r(   r)   r*   r+   r,   r-   r.   r/   r0   r1   r2   r3   )r   r6   r7   r8   r9   r:   s         r@   )test_parse_indicator_title_positional_argrF   !   sg   bggll4)TUVD99##9####9######4###4###9##########::777:77777:777777747774777:77777777777<<1<1<144<1rB   c                 j   | dz  }|j                  dd       t        |      }|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}||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custom.pinez[//@version=6
strategy(
    title="My Multi Line Strategy",
    overlay=false
)
plot(close)
utf-8encodingr   r   r   r   r   r   r   zMy Multi Line Strategyr   )
write_textr   r)   r*   r+   r,   r-   r.   r/   r0   r1   r2   )tmp_pathpiner   r6   r7   r8   r9   r:   s           r@    test_parse_multiline_named_titlerN   )   s   m#DOO	   	 dD99"
"9
""""9
""""""4"""4"""9"""
"""""""::111:11111:111111141114111:11111111111rB   c                    | dz  }|j                  dd       	 t        |       t        d      # t        $ r}d}t	        |      }||v }|st        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                  |      dz  }dd|iz  }t        t        j                  |            d x}x}}Y d }~y d }~ww xY w)Nzlibrary.pinez//@version=6
library("Nope")
rH   rI   zExpected PineParseErrorr   )in)z0%(py1)s in %(py6)s
{%(py6)s = %(py3)s(%(py4)s)
}strexc)r!   r"   py4py6assert %(py8)sr#   )rK   r   r0   r   rQ   r*   r+   r/   r,   r-   r.   r1   )rL   rM   rR   @py_assert0@py_assert5r;   @py_format7r>   s           r@   )test_parse_requires_strategy_or_indicatorrY   <   s    n$DOO7'OJ84 677  &%SX%zX%%%%zX%%%z%%%%%%S%%%S%%%%%%%%%%%%X%%%%%%%%&s   0 
EDEEc                  Z   ddl m}  ddlm} t        j
                  } |       t        _        	  | ddg      }t        j
                  j                         }|t        _        t        j                  |      }d}||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}|
|k(  }|slt        j                  d|fd|
|f      t        j                  |
      t        j                  |      dz  }dd|iz  }t        t        j                   |            d x}
x}}y # |t        _        w xY w)Nr   )main)StringIOinspectr   r   )z%(py0)s == %(py3)src)r   r"   zassert %(py5)sr   r2   r   z%(py1)s == %(py4)sr!   rS   assert %(py6)srT   )tools.tradingview_updater[   ior\   sysstdoutgetvaluejsonloadsr*   r+   r,   r-   r.   r/   r0   r1   )r[   r\   
old_stdoutr^   outputpayloadr;   r6   @py_format4r9   rV   r8   @py_format5rX   s                 r@   !test_inspect_command_outputs_jsonrn   H   s    -JCJ 9CDE$$&
jj GN27NNN2NNNNNN2NNN2NNNNNNNNNN7*{*{****{******{*******	  
s   (F F*c                     t        t        j                  j                  t        d            } 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d  }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}}y )Nr      r   )z0%(py3)s
{%(py3)s = %(py0)s(%(py1)s)
} == %(py6)sr    checks)r   r!   r"   rT   rU   r#   r   ztools/check_pine_duplicates.pyr_   r`   ra   rT   )r   r%   r&   r'   r(   r    r*   r+   r,   r-   r.   r/   r0   r1   command)	rq   r;   rW   r7   rX   r>   rV   r8   rm   s	            r@   0test_preflight_runs_duplicate_check_for_any_pinert   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nrB   c                     | j                  dd        d }| j                  d|       d}t        |      }d}||u }|st        j                  d|fd||f      d	t	        j
                         v st        j                  t              rt        j                  t              nd	t        j                  |      t        j                  |      t        j                  |      d
z  }dd|iz  }t        t        j                  |            d x}x}x}}y )Nz%tools.tradingview_update.shutil.whichc                      y)Nz/usr/bin/pbcopy )names    r@   <lambda>zHtest_copy_to_clipboard_returns_false_when_pbcopy_fails.<locals>.<lambda>a   s    N_rB   c                  0    t        j                  ddg      )Nrp   pbcopy)
subprocessCalledProcessError)argskwargss     r@   failzDtest_copy_to_clipboard_returns_false_when_pbcopy_fails.<locals>.failc   s    ++Az::rB   z'tools.tradingview_update.subprocess.runcodeFisz0%(py4)s
{%(py4)s = %(py0)s(%(py2)s)
} is %(py7)sr   r   r   rS   r   assert %(py9)spy9)
setattrr   r*   r+   r,   r-   r.   r/   r0   r1   )monkeypatchr   r6   r8   r=   rW   r:   @py_format10s           r@   6test_copy_to_clipboard_returns_false_when_pbcopy_failsr   `   s    ?A_`; A4H#-V$--$----$------------V---$----------rB   c                     d} t        |       }d}||k(  }|st        j                  d|fd||f      dt        j                         v st        j
                  t               rt        j                  t               ndt        j                  |       t        j                  |      t        j                  |      dz  }dd|iz  }t        t        j                  |            d x} x}x}}d	} t        |       }d
}||k(  }|st        j                  d|fd||f      dt        j                         v st        j
                  t               rt        j                  t               ndt        j                  |       t        j                  |      t        j                  |      dz  }dd|iz  }t        t        j                  |            d x} x}x}}y )Nz0https://www.tradingview.com/chart/?symbol=BTCUSDz-https_www.tradingview.com_chart_symbol_BTCUSDr   )z0%(py4)s
{%(py4)s = %(py0)s(%(py2)s)
} == %(py7)sr	   r   r   r   z   capture)	r	   r*   r+   r,   r-   r.   r/   r0   r1   )r6   r8   r=   rW   r:   r   s         r@   &test_slugify_produces_filesystem_labelr   k   s   Ey7EFyJyyFJyyyyyFJyyyyyyy7yyy7yyyEyyyFyyyJyyyyyyyy&75>&Y&>Y&&&&>Y&&&&&&7&&&7&&&5&&&>&&&Y&&&&&&&rB   c                     t               } | j                  dg      }|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	}||u }|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	}||u }|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 )Nr   "https://www.tradingview.com/chart/r   z+%(py2)s
{%(py2)s = %(py0)s.url
} == %(py5)sr~   r   r   r   Fr   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/   r0   r1   headed	save_textparserr~   r6   r7   r8   r9   r:   s          r@   1test_capture_parser_defaults_to_tradingview_chartr   p   sf   ^Fi[)D88;;;8;;;;;8;;;;;;;4;;;4;;;8;;;;;;;;;;;;;%;%;%44;%>>"U">U"""">U""""""4"""4""">"""U"""""""rB   c                    t        t        j                  j                  t        d            }t        | |d      }|j                  } |       }|sddt        j                         v st        j                  |      rt        j                  |      ndt        j                  |      t        j                  |      dz  }t        t        j                  |            d x}}|j                  }d} ||      }d}||k(  }|st        j                  d|fd	||f      dt        j                         v st        j                  |      rt        j                  |      ndt        j                  |      t        j                  |      t        j                  |      t        j                  |      d
z  }	dd|	iz  }
t        t        j                  |
            d x}x}x}x}}| dz  dz  }|j                  } |       }|sddt        j                         v st        j                  |      rt        j                  |      ndt        j                  |      t        j                  |      dz  }t        t        j                  |            d x}}|j                  }d} ||      }d}||k(  }|st        j                  d|fd	||f      dt        j                         v st        j                  |      rt        j                  |      ndt        j                  |      t        j                  |      t        j                  |      t        j                  |      d
z  }	dd|	iz  }
t        t        j                  |
            d x}x}x}x}}y )NrD   z// pine source
zAassert %(py4)s
{%(py4)s = %(py2)s
{%(py2)s = %(py0)s.exists
}()
}source_path)r   r   rS   rH   rI   r   )zX%(py6)s
{%(py6)s = %(py2)s
{%(py2)s = %(py0)s.read_text
}(encoding=%(py4)s)
} == %(py9)s)r   r   rS   rT   r   zassert %(py11)spy11sourcez'latest_Indicator_Activation_Scores.pinelatest)r   r%   r&   r'   r(   r   existsr,   r-   r*   r.   r/   r0   r1   	read_textr+   )rL   r   r   r6   r8   rm   rW   @py_assert8r<   r   @py_format12r   s               r@   ;test_write_source_copy_creates_timestamped_and_latest_filesr   y   s-   bggll4)TUVD#Hd4FGK;;  H'H '2H6HH26HHHHH26H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 #LLF===??66=?CWCW-C1CC-1CCCCC-1CCCCCCC6CCC6CCCCCCWCCC-CCC1CCCCCCCCCrB   c                  $   t        ddgddg      } | d   }d}||u }|slt        j                  d|fd	||f      t        j                  |      t        j                  |      d
z  }dd|iz  }t	        t        j
                  |            d x}x}}| 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}}| 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}}y )NzPine Editor
MLPScores
No errorsr   Compilation errorzUndeclared identifierexpectedrejectedokTr   z%(py1)s is %(py4)sr`   ra   rT   missing_expectedr   r_   found_rejectedr
   r*   r+   r/   r0   r1   resultrV   r8   r;   rm   rX   s         r@   =test_verify_text_content_requires_expected_and_rejects_errorsr      s    +%'>?F $<4<4<4<4$%++%++++%+++%++++++++++"#)r)#r))))#r)))#)))r)))))))rB   c                  &   t        ddgdg      } | d   }d}||u }|slt        j                  d|fd||f      t        j                  |      t        j                  |      d	z  }d
d|iz  }t	        t        j
                  |            d x}x}}| 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}}| 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}}y )NzPine Editor
Compilation error
r   r   r   r   Fr   r   r`   ra   rT   r   r   r_   r   r   r   s         r@   5test_verify_text_content_reports_missing_and_rejectedr      s    *%&F $< 5 <5    <5   <   5       $%6+6%6666%666%6666666666"#<(;'<<#'<<<<<#'<<<<#<<<'<<<<<<<<rB   c                  b   t               } | j                  g d      }|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
g}||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 )N)zverify-textz--text
screen.txt--expectr   r   Pine Editorr   r   )z,%(py2)s
{%(py2)s = %(py0)s.text
} == %(py5)sr~   r   r   r   r   r   z.%(py2)s
{%(py2)s = %(py0)s.expect
} == %(py5)s)r   r   textr*   r+   r,   r-   r.   r/   r0   r1   expectr   s          r@   6test_verify_text_parser_collects_repeated_expectationsr      s    ^FxyD99$$9$$$$9$$$$$$4$$$4$$$9$$$$$$$$$$;;6;66;66666;666666646664666;66666666666rB   c                     t               } | j                  ddg      }|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	}||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                  }g }||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                  }g }||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}||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manual-updater   r   z,%(py2)s
{%(py2)s = %(py0)s.pine
} == %(py5)sr~   r   r   r   r   r   r   )z.%(py2)s
{%(py2)s = %(py0)s.reject
} == %(py5)si  z/%(py2)s
{%(py2)s = %(py0)s.wait_ms
} == %(py5)s)r   r   rM   r*   r+   r,   r-   r.   r/   r0   r1   r   r   rejectwait_msr   s          r@   Etest_manual_update_parser_defaults_to_script_title_verification_laterr      sH   ^Fo/TUVD99===9=====9=======4===4===9===========88;;;8;;;;;8;;;;;;;4;;;4;;;8;;;;;;;;;;;;;";";"44;";;";";"44;"<<4<4<444<4rB   c                  x   t               } | j                  dg      }|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	}||u }|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	}||u }|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}||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 )Ndoctorr   r   r   r~   r   r   r   Fr   )z/%(py2)s
{%(py2)s = %(py0)s.browser
} is %(py5)s)z3%(py2)s
{%(py2)s = %(py0)s.tradingview
} is %(py5)s  r   )r   r   rM   r*   r+   r,   r-   r.   r/   r0   r1   browsertradingviewr   r   s          r@   ,test_doctor_parser_defaults_to_static_checksr      s   ^FhZ(D99===9=====9=======4===4===9===========<< 5 <5    <5      4   4   <   5       $u$u$$$$u$$$$$$4$$$4$$$$$$u$$$$$$$<<4<4<444<4rB   c                    | dz  }| dz  }|j                  dd       |j                  dd       t        j                  |d       t        j                  |d       ||g}t        |      }||k(  }|st	        j
                  d|fd	||f      d
t        j                         v st	        j                  t              rt	        j                  t              nd
t	        j                  |      t	        j                  |      dt        j                         v st	        j                  |      rt	        j                  |      nddz  }dd|iz  }t        t	        j                  |            d x}x}}| dz  g}t        |      }d }||u }|st	        j
                  d|fd||f      d
t        j                         v st	        j                  t              rt	        j                  t              nd
t	        j                  |      t	        j                  |      t	        j                  |      dz  }	dd|	iz  }
t        t	        j                  |
            d x}x}x}}y )Nzold.jsonznew.jsonz{}rH   rI   )rp   rp   )   r   r   )z0%(py4)s
{%(py4)s = %(py0)s(%(py2)s)
} == %(py6)sr   new)r   r   rS   rT   rU   r#   zmissing.jsonr   r   r   r   r   )rK   r%   utimer   r*   r+   r,   r-   r.   r/   r0   r1   )rL   oldr   r6   r8   rW   rX   r>   r=   r:   r   s              r@   $test_latest_file_returns_newest_pathr      sq   
Z
C
Z
CNN4'N*NN4'N*HHS&HHS&Sz);z")"c))))"c))))));)));)))z)))"))))))c)))c))))))) >12;;23;t;3t;;;;3t;;;;;;;;;;;;;;2;;;3;;;t;;;;;;;rB   c                     t               } | j                  dg      }|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 )	Nstatusz.tradingview_e2er   )z/%(py2)s
{%(py2)s = %(py0)s.out_dir
} == %(py5)sr~   r   r   r   )r   r   out_dirr*   r+   r,   r-   r.   r/   r0   r1   r   s          r@   +test_status_parser_defaults_to_artifact_dirr      s    ^FhZ(D<<---<-----<-------4---4---<-----------rB   c                  x   t               } | j                  dg      }|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	}||u }|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	}||u }|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}||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profile-statusr   r   r   r~   r   r   r   Fr   r   )z5%(py2)s
{%(py2)s = %(py0)s.wait_for_user
} is %(py5)sr   r   )r   r   r   r*   r+   r,   r-   r.   r/   r0   r1   r   wait_for_userr   r   s          r@   @test_profile_status_parser_defaults_to_persistent_headless_checkr      s   ^F./0D88;;;8;;;;;8;;;;;;;4;;;4;;;8;;;;;;;;;;;;;%;%;%44;%&&&&&&&&&&&&4&&&4&&&&&&&&&&&&&<<4<4<444<4rB   )-builtinsr,   _pytest.assertion.rewrite	assertionrewriter*   rg   r%   r|   rd   r&   abspathr'   dirname__file__r(   insertrb   r   r   r   r   r   r   r	   r
   r   rA   rF   rN   rY   rn   rt   r   r   r   r   r   r   r   r   r   r   r   r   rw   rB   r@   <module>r      s       	  
 
wwrww||BGGOOH$=tDE 4 
 
 
"2&	8+"o.'
#D	*	=7  	<. rB   