a
    zeE                     @   s   d dl Z d dlZd dlZd dlmZ ed edZdd Zeej	Z
eejZeejZG dd dejZG d	d
 d
ejZG dd dejZedkre  dS )    N)supportZaudiowinsoundc                    s   t   fdd}|S )Nc               
      sf   z | i |}W n8 t yJ } z tjr6t jd| W Y d }~n d }~0 0 tjr^t jd |S d S )Nzfailed:Zreturned)RuntimeErrorr   verboseprint__name__)argskwargsretefunc (/usr/lib/python3.9/test/test_winsound.pywrapper   s    $zsound_func.<locals>.wrapper)	functoolswraps)r   r   r   r   r   
sound_func   s    
r   c                   @   s,   e Zd Zdd Zdd Zdd Zdd Zd	S )
BeepTestc                 C   s6   |  ttj |  ttjdd |  ttjdd d S )N$   K   i   )assertRaises	TypeErrorr   Beep
ValueErrorselfr   r   r   test_errors'   s    zBeepTest.test_errorsc                 C   s   t dd t dd d S )N%   r   i  	safe_Beepr   r   r   r   test_extremes,   s    
zBeepTest.test_extremesc                 C   s    t dddD ]}t|d qd S )Nd     r   )ranger    )r   ir   r   r   test_increasingfrequency0   s    z!BeepTest.test_increasingfrequencyc                 C   s   t ddd d S )Nr   r#   )ZdurationZ	frequencyr   r   r   r   r   test_keyword_args4   s    zBeepTest.test_keyword_argsN)r   
__module____qualname__r   r!   r&   r'   r   r   r   r   r   %   s   r   c                   @   sL   e Zd Zdd Zdd Zdd Zdd Zd	d
 Zdd Zdd Z	dd Z
dS )MessageBeepTestc                 C   s   t d d S )N      ?)timesleepr   r   r   r   tearDown:   s    zMessageBeepTest.tearDownc                 C   s,   |  ttjd |  ttjdd t  d S )Nbad*   )r   r   r   MessageBeepsafe_MessageBeepr   r   r   r   test_default=   s    zMessageBeepTest.test_defaultc                 C   s   t tj d S Nr2   r   ZMB_OKr   r   r   r   test_okB   s    zMessageBeepTest.test_okc                 C   s   t tj d S r4   )r2   r   ZMB_ICONASTERISKr   r   r   r   test_asteriskE   s    zMessageBeepTest.test_asteriskc                 C   s   t tj d S r4   )r2   r   ZMB_ICONEXCLAMATIONr   r   r   r   test_exclamationH   s    z MessageBeepTest.test_exclamationc                 C   s   t tj d S r4   )r2   r   ZMB_ICONHANDr   r   r   r   	test_handK   s    zMessageBeepTest.test_handc                 C   s   t tj d S r4   )r2   r   ZMB_ICONQUESTIONr   r   r   r   test_questionN   s    zMessageBeepTest.test_questionc                 C   s   t tjd d S )N)typer5   r   r   r   r   r'   Q   s    z!MessageBeepTest.test_keyword_argsN)r   r(   r)   r.   r3   r6   r7   r8   r9   r:   r'   r   r   r   r   r*   8   s   r*   c                   @   sL   e Zd Zdd Zdd Zdd Zdd Zd	d
 Zdd Zdd Z	dd Z
dS )PlaySoundTestc                 C   s   |  ttj |  ttjdd |  ttjdtjtjB  |  ttjdd |  ttjdtj |  ttjdd |  ttjdd d S )Nr/   Znones   badr      zbad )r   r   r   	PlaySoundr   	SND_ASYNC
SND_MEMORYr   r   r   r   r   r   W   s    zPlaySoundTest.test_errorsc                 C   s   t tjdd d S )N
SystemExit)flagsZsoundsafe_PlaySoundr   	SND_ALIASr   r   r   r   r'   f   s    zPlaySoundTest.test_keyword_argsc                 C   s`   t tjdddd}| }W d    n1 s20    Y  t|tj t|}t|tj d S )Npluck-pcm8.wav	audiodataZsubdirrb)openr   findfilereadrD   r   r@   	bytearray)r   fZ
audio_datar   r   r   test_snd_memoryi   s    &zPlaySoundTest.test_snd_memoryc                 C   s$   t jddd}t|tjtjB  d S )NrF   rG   rH   )r   rK   rD   r   ZSND_FILENAMESND_NODEFAULT)r   fnr   r   r   test_snd_filenameq   s    zPlaySoundTest.test_snd_filenamec              	   C   sN   g d}|D ]<}| j |d t|tj W d    q1 s>0    Y  qd S )N)ZSystemAsteriskZSystemExclamationrA   Z
SystemHandSystemQuestion)alias)ZsubTestrD   r   rE   )r   aliasesrT   r   r   r   test_aliasesu   s    zPlaySoundTest.test_aliasesc                 C   s   t dtj d S Nz
!"$%&/(#+*rC   r   r   r   r   test_alias_fallback   s    z!PlaySoundTest.test_alias_fallbackc                 C   s   t dtjtjB  d S rW   )rD   r   rE   rP   r   r   r   r   test_alias_nofallback   s    z#PlaySoundTest.test_alias_nofallbackc                 C   sF   t dtjtjB tjB  td t dtjtjB  td tj	 d S )NrS   r+   )
rD   r   rE   r?   ZSND_LOOPr,   r-   Z
SND_NOSTOPr>   Z	SND_PURGEr   r   r   r   test_stopasync   s    
zPlaySoundTest.test_stopasyncN)r   r(   r)   r   r'   rO   rR   rV   rX   rY   rZ   r   r   r   r   r<   U   s   r<   __main__)r   r,   Zunittesttestr   Zrequiresimport_moduler   r   r   r    r1   r2   r>   rD   ZTestCaser   r*   r<   r   mainr   r   r   r   <module>   s   




>