3
sY]a                 @   s   d dl Z d dlZd dlZd dlZd dlZd dlmZ ejd ej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j  dS )    N)supportZaudiowinsoundc                s   t j  fdd}|S )Nc                 s`   y | |}W n6 t k
rD } ztjr4t jd| W Y d d }~X nX tjrXt jd |S d S )Nzfailed:Zreturned)RuntimeErrorr   verboseprint__name__)argskwargsZrete)func #lib/python3.6/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   | j ttj | j ttjdd | j 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_increasingfrequency2   s    z!BeepTest.test_increasingfrequencyc             C   s   t ddd d S )Nr   i  )ZdurationZ	frequency)r   )r   r   r   r   test_keyword_args6   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 jd d S )Ng      ?)timesleep)r   r   r   r   tearDown<   s    zMessageBeepTest.tearDownc             C   s,   | j ttjd | j 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_okD   s    zMessageBeepTest.test_okc             C   s   t tj d S )N)r,   r   ZMB_ICONASTERISK)r   r   r   r   test_asteriskG   s    zMessageBeepTest.test_asteriskc             C   s   t tj d S )N)r,   r   ZMB_ICONEXCLAMATION)r   r   r   r   test_exclamationJ   s    z MessageBeepTest.test_exclamationc             C   s   t tj d S )N)r,   r   ZMB_ICONHAND)r   r   r   r   	test_handM   s    zMessageBeepTest.test_handc             C   s   t tj d S )N)r,   r   ZMB_ICONQUESTION)r   r   r   r   test_questionP   s    zMessageBeepTest.test_questionc             C   s   t tjd d S )N)type)r,   r   r.   )r   r   r   r   r"   S   s    z!MessageBeepTest.test_keyword_argsN)r   r#   r$   r(   r-   r/   r0   r1   r2   r3   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 )PlaySoundTestc             C   s   | j ttj | j ttjdd | j ttjdtjtjB  | j ttjdd | j ttjdtj | j ttjdd | j 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   Y   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"   h   s    zPlaySoundTest.test_keyword_argsc          
   C   sL   t tjdddd}|j }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   r9   	bytearray)r   fZ
audio_datar   r   r   test_snd_memoryk   s    zPlaySoundTest.test_snd_memoryc             C   s$   t jddd}t|tjtjB  d S )Nzpluck-pcm8.wavr>   )r?   )r   rB   r<   r   ZSND_FILENAMESND_NODEFAULT)r   fnr   r   r   test_snd_filenames   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)ZsubTestr<   r   r=   )r   aliasesrK   r   r   r   test_aliasesw   s    
zPlaySoundTest.test_aliasesc             C   s   t dtj d S )Nz
!"$%&/(#+*)r<   r   r=   )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   r=   rG   )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jd t dtjtjB  tjd tj	 d S )NrJ   g      ?)
r<   r   r=   r8   ZSND_LOOPr&   r'   Z
SND_NOSTOPr7   Z	SND_PURGE)r   r   r   r   test_stopasync   s    
zPlaySoundTest.test_stopasyncN)r   r#   r$   r   r"   rF   rI   rM   rN   rO   rP   r   r   r   r   r5   W   s   r5   __main__)r   os
subprocessr&   ZunittestZtestr   Zrequiresimport_moduler   r   r   r   r+   r,   r7   r<   ZTestCaser   r%   r5   r   mainr   r   r   r   <module>   s    




>