U
    y^?                     @   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|}|d}|d | }tj tjdfdd|D }t|dkrtt	d	  d
dnft|dkrzt
 fdd|D }W q tk
r   t	dddd |D  d
dY qX n|d }|d}|rt|nd}	g }
t|dd }|r|
| |
t|dg  z|
|	 }W n. tk
r`   t	d|	t|
f d
dY nX | d|d   | j|d |dS )Nr   )gen_extractorsid	extractor)flagsc                    s   g | ]}  |jr|qS  )searchIE_NAME).0e)rexr   OC:\Users\TaGoRe\Desktop\beinconnect-dl\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    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 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   sZ    





zTestURLIE._real_extractN)__name__
__module____qualname____doc__IE_DESCr#   r7   r   r   r   r   r   	   s   r   )
__future__r   r!   commonr   utilsr   r   r   r   r   r   <module>   s   