
    z%iD                        d dl Z d dlZd dlZd dlZd dlmZ d dlmZ  ej                  d        ej                  d      Z
d Z ee
j                        Z ee
j                        Z ee
j                         Z G d dej$                        Z G d	 d
ej$                        Z G d dej*                        Z G d dej$                        Zedk(  r ej2                          yy)    N)support)import_helperaudiowinsoundc                 B     t        j                          fd       }|S )Nc                      	  | i |}t         j                  rt        j                  d       |S # t        $ r6}t         j                  rt        j                  d|       Y d }~y Y d }~y d }~ww xY w)Nreturnedzfailed:)r   verboseprint__name__RuntimeError)argskwargsretefuncs       F/home/uftp/.pyenv/versions/3.12.0/lib/python3.12/test/test_winsound.pywrapperzsound_func.<locals>.wrapper   sd    	''C
 dmmZ0J  	3dmmY22 	3s   3 	A2'A--A2)	functoolswraps)r   r   s   ` r   
sound_funcr      s%    __T	 	 N    c                   $    e Zd Zd Zd Zd Zd Zy)BeepTestc                     | j                  t        t        j                         | j                  t        t        j                  dd       | j                  t        t        j                  dd       y )N$   K   i   )assertRaises	TypeErrorr   Beep
ValueErrorselfs    r   test_errorszBeepTest.test_errors*   sF    )X]]3*hmmR<*hmmUB?r   c                 4    t        dd       t        dd       y )N%   r   i  	safe_Beepr"   s    r   test_extremeszBeepTest.test_extremes/   s    "b%r   c                 @    t        ddd      D ]  }t        |d        y )Nd     r   )ranger(   )r#   is     r   test_increasingfrequencyz!BeepTest.test_increasingfrequency3   s$    sD#& 	Aa	r   c                     t        dd       y )Nr   r,   )duration	frequencyr'   r"   s    r   test_keyword_argszBeepTest.test_keyword_args7   s    2.r   N)r   
__module____qualname__r$   r)   r/   r3    r   r   r   r   (   s    @
/r   r   c                   <    e Zd Zd Zd Zd Zd Zd Zd Zd Z	d Z
y	)
MessageBeepTestc                 .    t        j                  d       y )N      ?)timesleepr"   s    r   tearDownzMessageBeepTest.tearDown=   s    

3r   c                     | j                  t        t        j                  d       | j                  t        t        j                  dd       t	                y )Nbad*   )r   r   r   MessageBeepsafe_MessageBeepr"   s    r   test_defaultzMessageBeepTest.test_default@   s:    )X%9%95A)X%9%92rBr   c                 6    t        t        j                         y NrB   r   MB_OKr"   s    r   test_okzMessageBeepTest.test_okE   s    (r   c                 6    t        t        j                         y rE   )rB   r   MB_ICONASTERISKr"   s    r   test_asteriskzMessageBeepTest.test_asteriskH       112r   c                 6    t        t        j                         y rE   )rB   r   MB_ICONEXCLAMATIONr"   s    r   test_exclamationz MessageBeepTest.test_exclamationK   s    445r   c                 6    t        t        j                         y rE   )rB   r   MB_ICONHANDr"   s    r   	test_handzMessageBeepTest.test_handN   s    --.r   c                 6    t        t        j                         y rE   )rB   r   MB_ICONQUESTIONr"   s    r   test_questionzMessageBeepTest.test_questionQ   rL   r   c                 8    t        t        j                         y )N)typerF   r"   s    r   r3   z!MessageBeepTest.test_keyword_argsT   s    hnn-r   N)r   r4   r5   r=   rC   rH   rK   rO   rR   rU   r3   r6   r   r   r8   r8   ;   s*    
)36/3.r   r8   c                        e Zd Z fdZ xZS )	BytesPathc                 4    t        t        | 	         d      S )NzUTF-8)bytessuper
__fspath__)r#   	__class__s    r   r]   zBytesPath.__fspath__[   s    UW')733r   )r   r4   r5   r]   __classcell__)r^   s   @r   rY   rY   Z   s    4 4r   rY   c                   H    e Zd Zd Zd Zd Zd Zd Zd Zd Z	d Z
d	 Zd
 Zy)PlaySoundTestc                 n   | j                  t        t        j                         | j                  t        t        j                  dd       | j                  t        t        j                  dt        j
                  t        j                  z         | 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       y )Nr?   nones   badr      zbad )r   r   r   	PlaySoundr   	SND_ASYNC
SND_MEMORYr!   r"   s    r   r$   zPlaySoundTest.test_errorsa   s    )X%7%78)X%7%7FH&&)<)<<	

 	)X%7%7C)X%7%7"--	/)X%7%7A>*h&8&8'1Er   c                 :    t        t        j                  d       y )N
SystemExit)flagssoundsafe_PlaySoundr   	SND_ALIASr"   s    r   r3   zPlaySoundTest.test_keyword_argsp   s    X//|Dr   c                    t        t        j                  dd      d      5 }|j                         }d d d        t	        t
        j                         t        |      }t	        |t
        j                         y # 1 sw Y   IxY w)Npluck-pcm8.wav	audiodatasubdirrb)openr   findfilereadrm   r   rg   	bytearray)r#   f
audio_datas      r   test_snd_memoryzPlaySoundTest.test_snd_memorys   so    '""#3*578<> 	"ABJ	" 	z8#6#67z*
z8#6#67	" 	"s   A;;Bc                     t        j                  dd      }t        |t        j                  t        j
                  z         y Nrp   rq   rr   )r   rv   rm   r   SND_FILENAMESND_NODEFAULTr#   fns     r   test_snd_filenamezPlaySoundTest.test_snd_filename{   s0    .{Cr80083I3IIJr   c                     t        j                  dd      }t        j                  |      }t	        |t
        j                  t
        j                  z         y r}   )r   rv   pathlibPathrm   r   r~   r   )r#   r   paths      r   test_snd_filepathzPlaySoundTest.test_snd_filepath   s>    .{C||BtX22X5K5KKLr   c                     t        j                  dd      }| j                  t        t        j
                  t        |      t        j                  t        j                  z         y r}   )	r   rv   r   r   r   re   rY   r~   r   r   s     r   test_snd_filepath_as_bytesz(PlaySoundTest.test_snd_filepath_as_bytes   sJ    .{CbM!!H$:$::		
r   c                     g d}|D ]7  }| j                  |      5  t        |t        j                         d d d        9 y # 1 sw Y   DxY w)N)SystemAsteriskSystemExclamationri   
SystemHandSystemQuestion)alias)subTestrm   r   rn   )r#   aliasesr   s      r   test_aliaseszPlaySoundTest.test_aliases   sR    
  	:EE* :uh&8&89: :	:: :s   AA	c                 8    t        dt        j                         y Nz
!"$%&/(#+*rl   r"   s    r   test_alias_fallbackz!PlaySoundTest.test_alias_fallback   s    |X%7%78r   c                 Z    t        dt        j                  t        j                  z         y r   )rm   r   rn   r   r"   s    r   test_alias_nofallbackz#PlaySoundTest.test_alias_nofallback   s    |X%7%7(:P:P%PQr   c                 D   t        dt        j                  t        j                  z  t        j                  z         t        j                  d       t        dt        j                  t        j                  z         t        j                  d t        j                         y )Nr   r:   )
rm   r   rn   rf   SND_LOOPr;   r<   
SND_NOSTOPre   	SND_PURGEr"   s    r   test_stopasynczPlaySoundTest.test_stopasync   sm    !3!33h6G6GG	
 	

3'););h>Q>Q)QR 	4!3!34r   N)r   r4   r5   r$   r3   r{   r   r   r   r   r   r   r   r6   r   r   ra   ra   _   s9    FE8KM


:9R	5r   ra   __main__)r   r   r;   unittesttestr   test.supportr   requiresimport_moduler   r   r    r(   rA   rB   re   rm   TestCaser   r8   WindowsPathrY   ra   r   mainr6   r   r   <module>r      s         &    &=&&z2 x}}%	h223 H..//x   /&.h'' .>4## 4
I5H%% I5X zHMMO r   