o
     Loj—  ã                   @   sX   d dl Z d dlZd dlmZ G dd„ dejƒZG dd„ dejƒZedkr*e ¡  dS dS )é    N)ÚPathc                   @   s0   e Zd ZdZdd„ Zdd„ Zdd„ Zdd	„ Zd
S )ÚTestSourcesManifestz'Validate the source manifest structure.c                 C   ó.   t tƒ ¡ jd | _t | jd  ¡ ¡| _d S )Né   zdata/sources.json)	r   Ú__file__ÚresolveÚparentsÚrootÚjsonÚloadsÚ	read_textÚsources©Úself© r   ú//root/openrights-assistant/tests/test_ingest.pyÚsetUp	   ó   zTestSourcesManifest.setUpc                 C   ó   |   t| jƒd¡ d S )Nr   )ÚassertGreaterÚlenr   r   r   r   r   Útest_sources_not_empty   ó   z*TestSourcesManifest.test_sources_not_emptyc                 C   sH   | j D ]}|  d|¡ |  d|¡ |  d|¡ |  |d  d¡¡ qd S )NÚidÚtitleÚurlÚhttp)r   ÚassertInÚ
assertTrueÚ
startswith)r   Úsourcer   r   r   Ú$test_each_source_has_required_fields   s   
üz8TestSourcesManifest.test_each_source_has_required_fieldsc                 C   s,   dd„ | j D ƒ}|  t|ƒtt|ƒƒ¡ d S )Nc                 S   s   g | ]}|d  ‘qS )r   r   )Ú.0Úsr   r   r   Ú
<listcomp>   s    z7TestSourcesManifest.test_unique_ids.<locals>.<listcomp>)r   ÚassertEqualr   Úset)r   Úidsr   r   r   Útest_unique_ids   s   z#TestSourcesManifest.test_unique_idsN)Ú__name__Ú
__module__Ú__qualname__Ú__doc__r   r   r!   r(   r   r   r   r   r      s    r   c                   @   s(   e Zd ZdZdd„ Zdd„ Zdd„ ZdS )	ÚTestEvalsManifestz%Validate the evaluation question set.c                 C   r   )Nr   zevals/questions.json)	r   r   r   r   r	   r
   r   r   Ú	questionsr   r   r   r   r      r   zTestEvalsManifest.setUpc                 C   r   )Né   )r   r   r.   r   r   r   r   Útest_questions_not_empty#   r   z*TestEvalsManifest.test_questions_not_emptyc                 C   s>   | j D ]}|  d|¡ |  d|¡ |  t|d ƒdk¡ qd S )NÚquestionÚexpected_sourceé
   )r.   r   r   r   )r   Úqr   r   r   Ú&test_each_question_has_required_fields&   s
   
ýz8TestEvalsManifest.test_each_question_has_required_fieldsN)r)   r*   r+   r,   r   r0   r5   r   r   r   r   r-      s
    r-   Ú__main__)	r
   ÚunittestÚpathlibr   ÚTestCaser   r-   r)   Úmainr   r   r   r   Ú<module>   s    ÿ