
    jl6                     ^    d dl mZ d dlmZ d dlZd dlmZmZmZm	Z	 d dl
mZ  G d de      Zy)    )TestCase)	MagicMockN)YouTubeTranscriptApiVideoUnavailableFetchedTranscriptFetchedTranscriptSnippet)YouTubeTranscriptClic                       e Zd Zd Zd Zd Zd Zd Zd Zd Z	d Z
d	 Zd
 Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zy)TestYouTubeTranscriptClic                 p   t               | _        t        t        t        ddd      t        ddd      t        ddd	      gd
ddd            | j                  _        t        | j                        | j                  _        t               | _        t        | j                        | j                  _        t        | j                        | j                  _        t        | j                        | j                  _	        t        d       t        _        t        | j                        t        _        y )NzHey, this is just a testg        gp=
ף?)textstartdurationz*this is <i>not</i> the original transcriptgp=
ף@z-just something shorter, I made up for testingg@gx	@EnglishenTGJLlxj_dtq8)snippetslanguagelanguage_codeis_generatedvideo_id)return_value)r   transcript_mockr   r   fetch	translatetranscript_list_mockfind_generated_transcript find_manually_created_transcriptfind_transcriptr   __init__listselfs    e/root/aria/tools/markitdown-venv/lib/python3.12/site-packages/youtube_transcript_api/test/test_cli.pysetUpzTestYouTubeTranscriptCli.setUp   s   ({%.*,7!!%
 -I"!%
 -L!!&" #"!&+&
"2 *3@T@T)U&$-K!>G--?
!!; FO--F
!!B 5>--5
!!1 )2t(D%$-4;T;T$U!    c                 
   t        dj                               j                         }| j                  |j                  ddg       | j                  |j
                  d       | j                  |j                  ddg       | j                  |j                  d       | j                  |j                  d       t        dj                               j                         }| j                  |j                  ddg       | j                  |j
                  d       | j                  |j                  ddg       | j                  |j                  d       | j                  |j                  d       t        d	j                               j                         }| j                  |j                  ddg       | j                  |j
                  d       | j                  |j                  ddg       | j                  |j                  d       | j                  |j                  d       t        d
j                               j                         }| j                  |j                  ddg       | j                  |j
                  d       | j                  |j                  ddg       | j                  |j                  d       | j                  |j                  d       t        dj                               j                         }| j                  |j                  ddg       | j                  |j
                  d       | j                  |j                  ddg       | j                  |j                  d       | j                  |j                  d       t        dj                               j                         }| j                  |j                  ddg       | j                  |j
                  d       | j                  |j                  ddg       | j                  |j                  d       | j                  |j                  d       t        dj                               j                         }| j                  |j                  ddg       | j                  |j
                  d       | j                  |j                  ddg       | j                  |j                  d       | j                  |j                  d       y )Nz%v1 v2 --format json --languages de env1v2jsonder    %v1 v2 --languages de en --format jsonz& --format json v1 v2 --languages de enz{v1 v2 --languages de en --format json --http-proxy http://user:pass@domain:port --https-proxy https://user:pass@domain:porthttp://user:pass@domain:porthttps://user:pass@domain:portzkv1 v2 --languages de en --format json --webshare-proxy-username username --webshare-proxy-password passwordusernamepasswordzOv1 v2 --languages de en --format json --http-proxy http://user:pass@domain:portzQv1 v2 --languages de en --format json --https-proxy https://user:pass@domain:port)r	   split_parse_argsassertEqual	video_idsformat	languages
http_proxyhttps_proxywebshare_proxy_usernamewebshare_proxy_passwordr#   parsed_argss     r$   test_argument_parsingz.TestYouTubeTranscriptCli.test_argument_parsing;   s2   *399;

+- 	 	..t=++V4..t=//400"5*399;

+- 	 	..t=++V4..t=//400"5*4::<

+- 	 	..t=++V4..t=//400"5*::?%'
 +-	 	
 	..t=++V4..t=//1OP002QR*116
 +-	 	
 	..t=++V4..t=<<jI<<jI*]cce

+- 	 	..t=++V4..t=//1OP00"5*_eeg

+- 	 	..t=++V4..t=002QR//4r&   c                     t        dj                               j                         }| j                  |j                  ddg       | j                  |j
                  d       | j                  |j                  dg       y )Nv1 v2r(   r)   prettyr   r	   r2   r3   r4   r5   r6   r7   r<   s     r$   %test_argument_parsing__only_video_idsz>TestYouTubeTranscriptCli.test_argument_parsing__only_video_ids   sc    *7==?;GGI..t=++X6..7r&   c                     t        dj                               j                         }| j                  |j                  g d       | j                  |j
                  d       | j                  |j                  dg       y )Nz\-v1 \-\-v2 \--v3)z-v1z--v2z--v3rA   r   rB   r<   s     r$   3test_argument_parsing__video_ids_starting_with_dashzLTestYouTubeTranscriptCli.test_argument_parsing__video_ids_starting_with_dash   sd    *+?+E+E+GHTTV..0GH++X6..7r&   c                     | j                  t              5  t        dj                               j	                          d d d        y # 1 sw Y   y xY w)Nz--format json)assertRaises
SystemExitr	   r2   r3   r"   s    r$   -test_argument_parsing__fail_without_video_idszFTestYouTubeTranscriptCli.test_argument_parsing__fail_without_video_ids   sC    z* 	H !6!6!89EEG	H 	H 	Hs   (AAc                    t        dj                               j                         }| j                  |j                  ddg       | j                  |j
                  d       | j                  |j                  dg       t        dj                               j                         }| j                  |j                  ddg       | j                  |j
                  d       | j                  |j                  dg       y )Nzv1 v2 --format jsonr(   r)   r*   r   z--format json v1 v2rB   r<   s     r$   test_argument_parsing__jsonz4TestYouTubeTranscriptCli.test_argument_parsing__json   s    *+@+F+F+HIUUW..t=++V4..7*+@+F+F+HIUUW..t=++V4..7r&   c                    t        dj                               j                         }| j                  |j                  ddg       | j                  |j
                  d       | j                  |j                  ddg       y )Nv1 v2 --languages de enr(   r)   rA   r+   r   rB   r<   s     r$    test_argument_parsing__languagesz9TestYouTubeTranscriptCli.test_argument_parsing__languages   sn    *%++-

+- 	 	..t=++X6..t=r&   c                    t        dj                               j                         }| j                  |j                  d       t        dj                               j                         }| j                  |j
                  d       t        dj                               j                         }| j                  |j                  d       | j                  |j
                  d       t        dj                               j                         }| j                  |j                  d       | j                  |j
                  d       y )Nz/v1 v2 --http-proxy http://user:pass@domain:portr.   z1v1 v2 --https-proxy https://user:pass@domain:portr/   z[v1 v2 --http-proxy http://user:pass@domain:port --https-proxy https://user:pass@domain:portr@   r,   )r	   r2   r3   r4   r8   r9   r<   s     r$   test_argument_parsing__proxiesz7TestYouTubeTranscriptCli.test_argument_parsing__proxies   s	   *=CCE

+- 	 	//1OP*?EEG

+- 	 	002QR*iooq

+- 	 	//1OP002QR*7==?;GGI//400"5r&   c                    t        dj                               j                         }| j                  |j                  ddg       | j                  |j                         t        dj                               j                         }| j                  |j                  ddg       | j                  |j                         y )N--list-transcripts v1 v2r(   r)   zv1 v2 --list-transcripts)r	   r2   r3   r4   r5   
assertTruelist_transcriptsr<   s     r$   'test_argument_parsing__list_transcriptsz@TestYouTubeTranscriptCli.test_argument_parsing__list_transcripts   s    *&,,.

+- 	 	..t=445*&,,.

+- 	 	..t=445r&   c                 p   t        dj                               j                         }| j                  |j                  ddg       | j                  |j
                  d       | j                  |j                  ddg       | j                  |j                  d       t        dj                               j                         }| j                  |j                  ddg       | j                  |j
                  d       | j                  |j                  ddg       | j                  |j                  d       y )	N&v1 v2 --languages de en --translate czr(   r)   rA   r+   r   czz&v1 v2 --translate cz --languages de en)r	   r2   r3   r4   r5   r6   r7   r   r<   s     r$    test_argument_parsing__translatez9TestYouTubeTranscriptCli.test_argument_parsing__translate   s   *4::<

+- 	 	..t=++X6..t=..5*4::<

+- 	 	..t=++X6..t=..5r&   c                    t        dj                               j                         }| j                  |j                  ddg       | j                  |j                         | j                  |j                         t        dj                               j                         }| j                  |j                  ddg       | j                  |j                         | j                  |j                         t        dj                               j                         }| j                  |j                  ddg       | j                  |j                         | j                  |j                         y )Nz v1 v2 --exclude-manually-createdr(   r)   zv1 v2 --exclude-generatedz4v1 v2 --exclude-manually-created --exclude-generated)	r	   r2   r3   r4   r5   rS   exclude_manually_createdassertFalseexclude_generatedr<   s     r$   ,test_argument_parsing__manually_or_generatedzETestYouTubeTranscriptCli.test_argument_parsing__manually_or_generated   s&   *.446

+- 	 	..t=<<=667*'--/

+- 	 	..t===>556*BHHJ

+- 	 	..t=<<=556r&   c                    t        dj                               j                          t        j                  j                  d       t        j                  j                  d       | j                  j                  j                  ddg       y )NrM   r(   r)   r+   r   )r	   r2   runr   r!   assert_any_callr   r   r"   s    r$   test_runz!TestYouTubeTranscriptCli.test_run   sc    6<<>?CCE!!11$7!!11$7!!11AA4,Or&   c                     t        t        d            t        _        t	        dj                               j                         }| j                  |t        t        d                   y )Nr   )side_effectzv1 --languages de en)	r   r   r   r!   r	   r2   r`   r4   strr#   outputs     r$   test_run__failing_transcriptsz6TestYouTubeTranscriptCli.test_run__failing_transcripts   sN    $-:J::V$W!%&<&B&B&DEIIK%5j%A!BCr&   c                     t        dj                               j                          | j                  j                  j                  ddg       y )Nz+v1 v2 --languages de en --exclude-generatedr+   r   )r	   r2   r`   r   r   ra   r"   s    r$   test_run__exclude_generatedz4TestYouTubeTranscriptCli.test_run__exclude_generated   s>    9??A	

#%!!BBRR4L	
r&   c                     t        dj                               j                          | j                  j                  j                  ddg       y )Nz2v1 v2 --languages de en --exclude-manually-createdr+   r   )r	   r2   r`   r   r   ra   r"   s    r$   "test_run__exclude_manually_createdz;TestYouTubeTranscriptCli.test_run__exclude_manually_created  s>    @FFH	

#%!!;;KK4L	
r&   c                 r    | j                  t        dj                               j                         d       y )NzFv1 v2 --languages de en --exclude-manually-created --exclude-generatedr,   )r4   r	   r2   r`   r"   s    r$   0test_run__exclude_manually_created_and_generatedzITestYouTubeTranscriptCli.test_run__exclude_manually_created_and_generated  s.     X^^`ce		
r&   c                     t        dj                               j                         f | j                  j                  j                  d       y )NrW   rX   )r	   r2   r`   r   r   ra   r"   s    r$   test_run__translatez,TestYouTubeTranscriptCli.test_run__translate  s:    	FLLN	O	S	S	UW&&66t<r&   c                     t        dj                               j                          t        j                  j                  d       t        j                  j                  d       y )NrR   r(   r)   )r	   r2   r`   r   r!   ra   r"   s    r$   test_run__list_transcriptsz3TestYouTubeTranscriptCli.test_run__list_transcripts  sE    7==?@DDF!!11$7!!11$7r&   c                 |    t        dj                               j                         }t        j                  |       y )Nr-   )r	   r2   r`   r*   loadsrf   s     r$   test_run__json_outputz.TestYouTubeTranscriptCli.test_run__json_output  s0    %399;

#% 	
 	

6r&   c                 J   t        dj                               j                          t        j                  j
                  j                  j                  d      }| j                  |       | j                  |j                  d       | j                  |j                  d       y )Nz]v1 v2 --languages de en --webshare-proxy-username username --webshare-proxy-password passwordproxy_configr0   r1   )r	   r2   r`   r   r    	call_argskwargsgetassertIsNotNoner4   proxy_usernameproxy_passwordr#   rw   s     r$   test_run__webshare_proxy_configz8TestYouTubeTranscriptCli.test_run__webshare_proxy_config'  s    5 eg	
 #%+44>>EEII
 	\*44jA44jAr&   c                 J   t        dj                               j                          t        j                  j
                  j                  j                  d      }| j                  |       | j                  |j                  d       | j                  |j                  d       y )Nzmv1 v2 --languages de en --http-proxy http://user:pass@domain:port --https-proxy https://user:pass@domain:portrw   r.   r/   )r	   r2   r`   r   r    rx   ry   rz   r{   r4   http_url	https_urlr~   s     r$   test_run__generic_proxy_configz7TestYouTubeTranscriptCli.test_run__generic_proxy_config8  s    > eg	
 #%+44>>EEII
 	\*..0NO//1PQr&   c                     t        dj                               j                          t        j                  j                  d d       y )Nz.v1 v2 --languages de en --cookies blahblah.txtzblahblah.txt)rw   cookie_path)r	   r2   r`   r   r    ra   r"   s    r$   test_run__cookiesz*TestYouTubeTranscriptCli.test_run__cookiesI  s<    @GGI	

#%%%55& 	6 	
r&   N)__name__
__module____qualname__r%   r>   rC   rE   rI   rK   rN   rP   rU   rY   r^   rb   rh   rj   rl   rn   rp   rr   ru   r   r   r    r&   r$   r   r      sy    )VVB5H88H	8>6*66"7,PD


=
8B"R"
r&   r   )unittestr   unittest.mockr   r*   youtube_transcript_apir   r   r   r   youtube_transcript_api._clir	   r   r   r&   r$   <module>r      s+     #   =B
x B
r&   