o
    IXhs                     @   s   d dl Z d dlZd dlZd dlm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rZe  dS dS )    N)support)import_helperZaudiowinsoundc                    s   t   fdd}|S )Nc               
      sr   z	 | i |}W n$ t y- } ztjr"t jd| W Y d }~d S W Y d }~d S d }~ww tjr7t jd |S )Nzfailed:Zreturned)RuntimeErrorr   verboseprint__name__)argskwargsretefunc </opt/python-3.10.19/usr/lib/python3.10/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_increasingfrequency2   s   z!BeepTest.test_increasingfrequencyc                 C   s   t ddd d S )Nr   r$   )ZdurationZ	frequencyr    r   r   r   r   test_keyword_args6      zBeepTest.test_keyword_argsN)r   
__module____qualname__r   r"   r'   r(   r   r   r   r   r   '   s
    r   c                   @   L   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<      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      t tj d S Nr6   r   ZMB_OKr   r   r   r   test_okD   r2   zMessageBeepTest.test_okc                 C   r8   r9   )r6   r   ZMB_ICONASTERISKr   r   r   r   test_asteriskG   r2   zMessageBeepTest.test_asteriskc                 C   r8   r9   )r6   r   ZMB_ICONEXCLAMATIONr   r   r   r   test_exclamationJ   r2   z MessageBeepTest.test_exclamationc                 C   r8   r9   )r6   r   ZMB_ICONHANDr   r   r   r   	test_handM   r2   zMessageBeepTest.test_handc                 C   r8   r9   )r6   r   ZMB_ICONQUESTIONr   r   r   r   test_questionP   r2   zMessageBeepTest.test_questionc                 C   s   t tjd d S )N)typer:   r   r   r   r   r(   S   r)   z!MessageBeepTest.test_keyword_argsN)r   r*   r+   r1   r7   r;   r<   r=   r>   r?   r(   r   r   r   r   r-   :   s    r-   c                   @   r,   )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 )Nr3   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_ALIASr   r   r   r   r(   h   s   zPlaySoundTest.test_keyword_argsc                 C   s`   t tjdddd}| }W d    n1 sw   Y  t|tj t|}t|tj d S )Npluck-pcm8.wav	audiodataZsubdirrb)openr   findfilereadrI   r   rE   	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 )NrK   rL   rM   )r   rP   rI   r   ZSND_FILENAMESND_NODEFAULT)r   fnr   r   r   test_snd_filenames   s   zPlaySoundTest.test_snd_filenamec              	   C   sN   g d}|D ]}| j |d t|tj W d    n1 sw   Y  qd S )N)ZSystemAsteriskZSystemExclamationrF   Z
SystemHandSystemQuestion)alias)ZsubTestrI   r   rJ   )r   aliasesrY   r   r   r   test_aliasesw   s   zPlaySoundTest.test_aliasesc                 C   s   t dtj d S Nz
!"$%&/(#+*rH   r   r   r   r   test_alias_fallback   r)   z!PlaySoundTest.test_alias_fallbackc                 C   s   t dtjtjB  d S r\   )rI   r   rJ   rU   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 )NrX   r.   )
rI   r   rJ   rD   ZSND_LOOPr/   r0   Z
SND_NOSTOPrC   Z	SND_PURGEr   r   r   r   test_stopasync   s   
zPlaySoundTest.test_stopasyncN)r   r*   r+   r   r(   rT   rW   r[   r]   r^   r_   r   r   r   r   rA   W   s    rA   __main__)r   r/   Zunittesttestr   Ztest.supportr   Zrequiresimport_moduler   r   r   r!   r5   r6   rC   rI   ZTestCaser   r-   rA   r   mainr   r   r   r   <module>   s"   




>