o
    ›Þ‹j
  ã                   @  sf   d dl mZ d dlZd dlm  mZ d dlZd dl	m
Z
mZmZ dd„ Zdd„ Zdd	„ Zd
d„ ZdS )é    )ÚannotationsN)Úprepare_headless_uiÚreset_module_registryÚshutdown_test_appc                  C  sŽ   t ƒ  ddlm}  tƒ  | ƒ }| d¡ t ¡ d }t ¡ |k r=| ¡  t|j	j
ƒdkr2|j	jjr2nt d¡ t ¡ |k s | ¡  | ¡  |S )Nr   )ÚAutoRemasterAppz1200x900+0+0g      @é   g{®Gázt?)r   Zui.appr   r   ZgeometryÚtimeÚ	monotonicÚupdateÚlenÚprocessing_sidebarÚmodulesÚregistryÚ_initializedÚsleepÚupdate_idletasks)r   ÚappÚdeadline© r   ú:/home/user/Projects/AutoRemaster/tests/test_ui_contract.pyÚ
_build_app   s   

ür   c               
   C  s	  t ƒ } z€| j}|ƒ }d}||k}|sKt d|fd||f¡dt ¡ v s(t | ¡r-t | ¡ndt |¡t |¡t |¡dœ }dd|i }tt 	|¡ƒ‚d  } } }}| j
}|ƒ }d}||k}|s™t d|fd	||f¡dt ¡ v svt | ¡r{t | ¡ndt |¡t |¡t |¡dœ }dd|i }tt 	|¡ƒ‚d  } } }}| j}|j}d
}||k}|sçt d|fd||f¡dt ¡ v sÄt | ¡rÉt | ¡ndt |¡t |¡t |¡dœ }dd|i }tt 	|¡ƒ‚d  } } }}| j}|j}d}||k}|s8t d|fd||f¡dt ¡ v st | ¡rt | ¡ndt |¡t |¡t |¡dœ }dd|i }tt 	|¡ƒ‚d  } } }}| j}|j}|j}d}||ƒ}d}	||	k}
|
sžt d|
fd||	f¡dt ¡ v sot | ¡rtt | ¡ndt |¡t |¡t |¡t |¡t |¡t |	¡dœ }dd|i }tt 	|¡ƒ‚d  } } } } } }
}	| j}|j}|j}d}||ƒ}d}	||	k}
|
s
t d|
fd||	f¡dt ¡ v sÛt | ¡ràt | ¡ndt |¡t |¡t |¡t |¡t |¡t |	¡dœ }dd|i }tt 	|¡ƒ‚d  } } } } } }
}	| j}|j}|j}d}||ƒ}d}	||	k}
|
svt d|
fd||	f¡dt ¡ v sGt | ¡rLt | ¡ndt |¡t |¡t |¡t |¡t |¡t |	¡dœ }dd|i }tt 	|¡ƒ‚d  } } } } } }
}	| j}|j}|j}d}||ƒ}d}	||	k}
|
sât d|
fd||	f¡dt ¡ v s³t | ¡r¸t | ¡ndt |¡t |¡t |¡t |¡t |¡t |	¡dœ }dd|i }tt 	|¡ƒ‚d  } } } } } }
}	| j}|j}|j}d}||ƒ}d}	||	k}
|
sNt d|
fd||	f¡dt ¡ v st | ¡r$t | ¡ndt |¡t |¡t |¡t |¡t |¡t |	¡dœ }dd|i }tt 	|¡ƒ‚d  } } } } } }
}	| j}|j}t|ƒ}d}||k}|sÀt d|fd||f¡dt ¡ v s†t t¡r‹t t¡nddt ¡ v s™t | ¡ržt | ¡ndt |¡t |¡t |¡t |¡dœ }d d!|i }tt 	|¡ƒ‚d  } } } }}| j}|j}|ƒ }| j}|j}
||
k}|s5t d|fd"||
f¡dt ¡ v s÷t | ¡rüt | ¡ndt |¡t |¡t |¡dt ¡ v st | ¡rt | ¡ndt |¡t |
¡d#œ }d$d%|i }tt 	|¡ƒ‚d  } } } } }}
d&d'„ | jj ¡ D ƒ}t|ƒ}|szd(d)t ¡ v sat t¡rft t¡nd)t |¡t |¡d*œ }tt 	|¡ƒ‚d  }}W t| ƒ d S t| ƒ w )+Ni°  ©ú==)zJ%(py4)s
{%(py4)s = %(py2)s
{%(py2)s = %(py0)s.winfo_width
}()
} == %(py7)sr   )Úpy0Úpy2Úpy4Úpy7zassert %(py9)sÚpy9i„  )zK%(py4)s
{%(py4)s = %(py2)s
{%(py2)s = %(py0)s.winfo_height
}()
} == %(py7)szORIGINAL AUDIO)zS%(py4)s
{%(py4)s = %(py2)s
{%(py2)s = %(py0)s.original_section
}.title
} == %(py7)szMASTERED AUDIO)zS%(py4)s
{%(py4)s = %(py2)s
{%(py2)s = %(py0)s.mastered_section
}.title
} == %(py7)sÚtextZPROCESS)zŽ%(py10)s
{%(py10)s = %(py6)s
{%(py6)s = %(py4)s
{%(py4)s = %(py2)s
{%(py2)s = %(py0)s.bottom_bar
}.process_btn
}.cget
}(%(py8)s)
} == %(py13)s)r   r   r   Úpy6Úpy8Úpy10Zpy13zassert %(py15)sZpy15ZEXPORT)z%(py10)s
{%(py10)s = %(py6)s
{%(py6)s = %(py4)s
{%(py4)s = %(py2)s
{%(py2)s = %(py0)s.bottom_bar
}.export_btn
}.cget
}(%(py8)s)
} == %(py13)su   ðŸ“‚ Load File)zŒ%(py10)s
{%(py10)s = %(py6)s
{%(py6)s = %(py4)s
{%(py4)s = %(py2)s
{%(py2)s = %(py0)s.top_toolbar
}.load_btn
}.cget
}(%(py8)s)
} == %(py13)su   ðŸ¤– AI Optimize)zŠ%(py10)s
{%(py10)s = %(py6)s
{%(py6)s = %(py4)s
{%(py4)s = %(py2)s
{%(py2)s = %(py0)s.top_toolbar
}.ai_btn
}.cget
}(%(py8)s)
} == %(py13)su
   ðŸ“¦ Batch)z%(py10)s
{%(py10)s = %(py6)s
{%(py6)s = %(py4)s
{%(py4)s = %(py2)s
{%(py2)s = %(py0)s.top_toolbar
}.batch_btn
}.cget
}(%(py8)s)
} == %(py13)sr   )zv%(py7)s
{%(py7)s = %(py0)s(%(py5)s
{%(py5)s = %(py3)s
{%(py3)s = %(py1)s.processing_sidebar
}.modules
})
} == %(py10)sr   )r   Úpy1Úpy3Úpy5r   r!   zassert %(py12)sÚpy12)zÆ%(py6)s
{%(py6)s = %(py4)s
{%(py4)s = %(py2)s
{%(py2)s = %(py0)s.processing_sidebar
}.get_module_order
}()
} == %(py12)s
{%(py12)s = %(py10)s
{%(py10)s = %(py8)s.processing_sidebar
}.default_order
})r   r   r   r   r    r!   r%   úassert %(py14)sÚpy14c                 s  s    | ]}|  ¡  V  qd S )N)Zis_expanded)Ú.0Úrowr   r   r   Ú	<genexpr>'   s   € z8test_visible_ui_contract_is_unchanged.<locals>.<genexpr>z,assert %(py4)s
{%(py4)s = %(py0)s(%(py2)s)
}Úall)r   r   r   )r   Zwinfo_widthÚ
@pytest_arÚ_call_reprcompareÚ@py_builtinsÚlocalsÚ_should_repr_global_nameÚ	_safereprÚAssertionErrorÚ_format_explanationZwinfo_heightZoriginal_sectionÚtitleZmastered_sectionZ
bottom_barZprocess_btnZcgetZ
export_btnÚtop_toolbarZload_btnZai_btnZ	batch_btnr   r   r   Zget_module_orderÚdefault_orderÚvaluesr+   r   )r   Ú@py_assert1Ú@py_assert3Ú@py_assert6Ú@py_assert5Ú@py_format8Ú@py_format10Ú@py_assert7Ú@py_assert9Z@py_assert12Ú@py_assert11Z@py_format14Z@py_format16Ú@py_assert2Ú@py_assert4Z@py_assert8Z@py_format11Ú@py_format13Ú@py_format15Ú@py_format5r   r   r   Ú%test_visible_ui_contract_is_unchanged   s   œœœ¢ØØØØØÜî|rF   c                  C  s¬  t ƒ } zL| j ¡ }t|ƒ}| j}|j}t|ƒ}||k}|st d|fd||f¡dt ¡ v s3t 	t¡r8t 
t¡nddt ¡ v sDt 	|¡rIt 
|¡ndt 
|¡dt ¡ v sYt 	t¡r^t 
t¡nddt ¡ v sjt 	| ¡rot 
| ¡ndt 
|¡t 
|¡t 
|¡dœ }dd|i }tt |¡ƒ‚d  } } } }}| j}	| j}
|	|
u }|sèt d	|fd
|	|
f¡dt ¡ v s¸t 	| ¡r½t 
| ¡ndt 
|	¡dt ¡ v sÍt 	| ¡rÒt 
| ¡ndt 
|
¡dœ }dd|i }tt |¡ƒ‚d  }	 }}
| j}	| j}
|	|
u }|sDt d	|fd|	|
f¡dt ¡ v st 	| ¡rt 
| ¡ndt 
|	¡dt ¡ v s)t 	| ¡r.t 
| ¡ndt 
|
¡dœ }dd|i }tt |¡ƒ‚d  }	 }}
W t| ƒ d S t| ƒ w )Nr   )z%(py3)s
{%(py3)s = %(py0)s(%(py1)s)
} == %(py12)s
{%(py12)s = %(py5)s(%(py10)s
{%(py10)s = %(py8)s
{%(py8)s = %(py6)s.processing_sidebar
}.default_order
})
}ÚsetÚactiver   )r   r"   r#   r$   r   r    r!   r%   r&   r'   )Úis)z^%(py2)s
{%(py2)s = %(py0)s.controls_frame
} is %(py6)s
{%(py6)s = %(py4)s.processing_sidebar
}©r   r   r   r   úassert %(py8)sr    )zU%(py2)s
{%(py2)s = %(py0)s.header_frame
} is %(py6)s
{%(py6)s = %(py4)s.top_toolbar
})r   r   Zget_active_checkboxesrG   r6   r,   r-   r.   r/   r0   r1   r2   r3   Zcontrols_frameZheader_framer5   r   )r   rH   rA   r>   r?   r@   rB   rC   rD   r8   r;   r9   Ú@py_format7Ú@py_format9r   r   r   Ú"test_module_default_state_contract,   s   
þ ®ºrN   c                  C  s2  t ƒ } z| j}|j}tƒ }||k}|sYt d|fd||f¡dt ¡ v s)t |¡r.t 	|¡ndt 	|¡dt ¡ v s>t t¡rCt 	t¡ndt 	|¡dœ }dd|i }t
t |¡ƒ‚d  } }}| dd	i¡ | ¡ d }d
}| }||k}|sšt d|fd||f¡t 	|¡t 	|¡dœ }	dd|	i }
t
t |
¡ƒ‚d  } } }}|j}tƒ }||k}|sót d|fd||f¡dt ¡ v sÃt |¡rÈt 	|¡ndt 	|¡dt ¡ v sØt t¡rÝt 	t¡ndt 	|¡dœ }dd|i }t
t |¡ƒ‚d  } }}|jd  d¡ |  ¡  d}|j}||v }|sGt d|fd||f¡t 	|¡dt ¡ v s,t |¡r1t 	|¡ndt 	|¡dœ }	dd|	i }
t
t |
¡ƒ‚d  } }}|jd  ¡ d }d
}| }||k}|s…t d|fd||f¡t 	|¡t 	|¡dœ }	dd|	i }
t
t |
¡ƒ‚d  } } }}W t| ƒ d S t| ƒ w )Nr   )zT%(py2)s
{%(py2)s = %(py0)s._materialized_modules
} == %(py6)s
{%(py6)s = %(py4)s()
}ÚsidebarrG   rJ   rK   r    Ztarget_lufsg      'Àg      '@)z%(py1)s == -%(py4)s)r"   r   zassert %(py7)sr   Zfinal_limitingT)Úin)z=%(py1)s in %(py5)s
{%(py5)s = %(py3)s._materialized_modules
})r"   r#   r$   )r   r   Z_materialized_modulesrG   r,   r-   r.   r/   r0   r1   r2   r3   Z
set_valuesZ
get_valuesr   Zset_expandedr   Zmodule_instancesr   )r   rO   r8   r;   r9   rL   rM   Z@py_assert0rA   Ú@py_format6r<   rB   r   r   r   Ú;test_collapsed_module_controls_are_lazy_and_preserve_values7   s   ®x®‚rR   )Ú
__future__r   Úbuiltinsr.   Ú_pytest.assertion.rewriteÚ	assertionÚrewriter,   r   Zui_test_supportr   r   r   r   rF   rN   rR   r   r   r   r   Ú<module>   s    "