B
    18\E                 @   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)supportaudiowinsoundc                s   t   fdd}|S )Nc           
      s`   y | |}W n6 t k
rD } ztjr4t jd| W d d }~X Y nX tjrXt jd |S d S )Nzfailed:Zreturned)RuntimeErrorr   verboseprint__name__)argskwargsrete)func V/oak/stanford/groups/akundaje/marinovg/programs/Python-3.7.3/Lib/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_Beep)r   r   r   r   test_extremes,   s    
zBeepTest.test_extremesc             C   s$   xt dddD ]}t|d qW d S )Nd   i  r   )ranger   )r   ir   r   r   test_increasingfrequency0   s    z!BeepTest.test_increasingfrequencyc             C   s   t ddd d S )Nr   i  )durationZ	frequency)r   )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 )Ng      ?)timesleep)r   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_MessageBeep)r   r   r   r   test_default=   s    zMessageBeepTest.test_defaultc             C   s   t tj d S )N)r/   r   MB_OK)r   r   r   r   test_okB   s    zMessageBeepTest.test_okc             C   s   t tj d S )N)r/   r   ZMB_ICONASTERISK)r   r   r   r   test_asteriskE   s    zMessageBeepTest.test_asteriskc             C   s   t tj d S )N)r/   r   ZMB_ICONEXCLAMATION)r   r   r   r   test_exclamationH   s    z MessageBeepTest.test_exclamationc             C   s   t tj d S )N)r/   r   ZMB_ICONHAND)r   r   r   r   	test_handK   s    zMessageBeepTest.test_handc             C   s   t tj d S )N)r/   r   ZMB_ICONQUESTION)r   r   r   r   test_questionN   s    zMessageBeepTest.test_questionc             C   s   t tjd d S )N)type)r/   r   r1   )r   r   r   r   r%   Q   s    z!MessageBeepTest.test_keyword_argsN)r   r&   r'   r+   r0   r2   r3   r4   r5   r6   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,   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_ALIAS)r   r   r   r   r%   f   s    zPlaySoundTest.test_keyword_argsc          	   C   sL   t tjdddd}| }W d Q R X t|tj t|}t|tj d S )Nzpluck-pcm8.wav	audiodata)subdirrb)openr   findfilereadr@   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 )Nzpluck-pcm8.wavrB   )rC   )r   rF   r@   r   ZSND_FILENAMESND_NODEFAULT)r   fnr   r   r   test_snd_filenameq   s    zPlaySoundTest.test_snd_filenamec          
   C   sD   dddddg}x0|D ](}| j |d t|tj W d Q R X qW d S )NZSystemAsteriskZSystemExclamationr>   Z
SystemHandSystemQuestion)alias)subTestr@   r   rA   )r   aliasesrO   r   r   r   test_aliasesu   s    
zPlaySoundTest.test_aliasesc             C   s   t dtj d S )Nz
!"$%&/(#+*)r@   r   rA   )r   r   r   r   test_alias_fallback   s    z!PlaySoundTest.test_alias_fallbackc             C   s   t dtjtjB  d S )Nz
!"$%&/(#+*)r@   r   rA   rK   )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 )NrN   g      ?)
r@   r   rA   r<   ZSND_LOOPr)   r*   Z
SND_NOSTOPr;   Z	SND_PURGE)r   r   r   r   test_stopasync   s    
zPlaySoundTest.test_stopasyncN)r   r&   r'   r   r%   rJ   rM   rR   rS   rT   rU   r   r   r   r   r8   U   s   r8   __main__)r   r)   unittesttestr   requiresimport_moduler   r   r   r   r.   r/   r;   r@   TestCaser   r(   r8   r   mainr   r   r   r   <module>   s   




>