3
b`?                 @   s@   d dl mZ d dlZddlmZ ddlmZ G dd deZdS )	    )unicode_literalsN   )InfoExtractor   )ExtractorErrorc               @   s    e Zd ZdZdZdZdd ZdS )	TestURLIEz8 Allows addressing of the test cases as test:yout.*be_1 Fz=test(?:url)?:(?P<id>(?P<extractor>.+?)(?:_(?P<num>[0-9]+))?)$c                s  ddl m} tj| j|}|jd}|jd | }tj tjdfdd|D }t|dkrtt	d	  d
dnft|dkryt
 fdd|D }W q tk
r   t	ddjdd |D  d
dY qX n|d }|jd}|rt|nd}	g }
t|dd }|r|
j| |
jt|dg  y|
|	 }W n. tk
r`   t	d|	t|
f d
dY nX | jd|d   | j|d |dS )Nr   )gen_extractorsid	extractor)flagsc                s   g | ]} j |jr|qS  )searchIE_NAME).0e)rexr   HC:\Users\Broad\Desktop\All-Down\binaries\youtube_dl\extractor\testurl.py
<listcomp>   s    z+TestURLIE._real_extract.<locals>.<listcomp>r   zNo extractors matching %r foundT)expectedr   c             3   s$   | ]}|j j  j kr|V  qd S )N)r   lower)r   ie)extractor_idr   r   	<genexpr>#   s    z*TestURLIE._real_extract.<locals>.<genexpr>z&Found multiple matching extractors: %s c             s   s   | ]}|j V  qd S )N)r   )r   r   r   r   r   r   (   s    num_TEST_TESTSz)Test case %d not found, got only %d testszTest URL: %surl)video_id)r
   r   rematch
_VALID_URLgroupcompile
IGNORECASElenr   nextStopIterationjoinintgetattrappendextend
IndexError	to_screen
url_result)selfr   r   mobjr   Zall_extractorsZmatching_extractorsr
   num_strr   Z	testcasesttcr   )r   r   r   _real_extract   sJ    




zTestURLIE._real_extractN)__name__
__module____qualname____doc__IE_DESCr!   r5   r   r   r   r   r   	   s   r   )
__future__r   r   commonr   utilsr   r   r   r   r   r   <module>   s   