
    3jS                     b   d Z ddlZddlZddlZddlZddlmZ ej                  j                  d e	 ee
      j                         j                               ddlZddlmZ  G d dej"                        Z G d de      Z G d	 d
e      Z G d de      Zedk(  r ej.                          yy)u   Pruebas de integración del blueprint RA2 CDT1 con Flask test client.

Usa archivos CSV temporales para no ensuciar el directorio del módulo.
    N)Path)respuestas_perfectasc                       e Zd Zd Z	 	 ddZy)BaseApic                    t        j                         | _        | j                  | j                  j                         t        | j                  j                        dz  t        _        t        | j                  j                        dz  t        _	        t        j                  5  t        j                  j                          d d d        ddlm}  |t        t!        t        t        j"                        j$                  dz              }|j'                  t        j(                         |j+                         | _        y # 1 sw Y   xY w)Nzresultados_ra2_cdt1.csvzincidencias_ra2_cdt1.csvr   )Flask	templates)template_folder)tempfileTemporaryDirectorytmp
addCleanupcleanupr   namemoduloCSV_RESULTADOSCSV_INCIDENCIAS_bloqueo	_sesionesclearflaskr   __name__str__file__parentregister_blueprintbptest_clientcliente)selfr   apps      C   /home/adonis/Público/Cursos/Quimica/evaluacion_ra2/test_ra2_api.pysetUpzBaseApi.setUp   s    ..0(() $TXX]] 36O O!%dhhmm!47Q!Q__ 	%""$	%Hc!((;6/8 9vyy)(	% 	%s   %EEc                 l    | j                   j                  d||||d      }|j                         d   S )N/iniciar-ra2	apellidosnombrescarreraclavejsontoken)r   postget_json)r    r'   r(   r)   r*   	respuestas         r"   _iniciarzBaseApi._iniciar    s@    LL%%n"w<0% 1	 !!#G,,    N)   Pérez García
   Ana María	   Mecánica9)r   
__module____qualname__r#   r1    r2   r"   r   r      s    ) <H,/-r2   r   c                   $    e Zd Zd Zd Zd Zd Zy)TestIniciarc                     | j                   j                  dddddd      j                         }| j                  |d          | j	                  t        |d	         d
       y )Nr%   LopezJuanu   Electrónica12r&   r+   okr-       )r   r.   r/   
assertTrueassertEquallen)r    datoss     r"   (test_identificacion_valida_entrega_tokenz4TestIniciar.test_identificacion_valida_entrega_token)   s_    !!. V%86! 77?xz 	 	d$U7^,b1r2   c                     | j                   j                  dddddd      j                  }| j                  |d       y )	Nr%   r=   r>   Admin1r&   r+     r   r.   status_coderC   r    codigos     r"   !test_carrera_no_permitida_rechazaz-TestIniciar.test_carrera_no_permitida_rechaza0   sD    ""> V9." //:{ 	 	%r2   c                     | j                   j                  dddddd      j                  }| j                  |d       y )	Nr%    Xr5   rI   r&   r+   rJ   rK   rM   s     r"   test_campos_vacios_rechazanz'TestIniciar.test_campos_vacios_rechazan6   sD    "">"S92" 33>; 	 	%r2   c                 ~    | j                   j                  ddddd      j                  }| j                  |d       y )Nr%   r=   r>   r5   )r'   r(   r)   r+   rJ   rK   rM   s     r"   test_clave_ausente_rechazaz&TestIniciar.test_clave_ausente_rechaza<   sB    ""> V"9$" %%0[ 	 	%r2   N)r   r7   r8   rF   rO   rS   rU   r9   r2   r"   r;   r;   (   s    2&&&r2   r;   c                       e Zd Zd Zd Zd Zy)TestIncidentec                     | j                         }| j                  j                  d|dd      j                         }| j	                  |d          | j                  |d   d       | j                  |d   d	       y )
N/incidente-ra2pestana_ocultar-   tipor+   r@   
incidentes   	descuento   )r1   r   r.   r/   rB   rC   )r    r-   rE   s      r"   test_incidente_valido_aceptaz*TestIncidente.test_incidente_valido_aceptaD   sv    !!"2$4:6! 77?xz 	d$|,a0{+Q/r2   c                     | j                         }| j                  j                  d|dd      j                  }| j	                  |d       y )NrY   hackeor[   r+   rJ   )r1   r   r.   rL   rC   )r    r-   rN   s      r"   test_tipo_invalido_rechazaz(TestIncidente.test_tipo_invalido_rechazaL   sI    ""UH#E # GGR{ 	%r2   c                 |    | j                   j                  dddd      j                  }| j                  |d       y )NrY   z	no-existepegarr[   r+   rJ   rK   rM   s     r"   test_token_invalido_rechazaz)TestIncidente.test_token_invalido_rechazaR   sB    ""[,3$5 # 66Ak 	 	%r2   N)r   r7   r8   ra   rd   rg   r9   r2   r"   rW   rW   C   s    0&&r2   rW   c                   >    e Zd Zd
dZd Zd Zd Zd Zd Zd Z	d	 Z
y)TestGuardarNc                 Z    | j                   j                  d||xs
 t               d      S )Nz/guardar-ra2)r-   
respuestasr+   )r   r.   r   )r    r-   rk   s      r"   _enviarzTestGuardar._enviarZ   s4    ||  **N8L8N7P  Q 	Qr2   c                     | j                         }| j                  |      j                         d   }| j                  |d   d       | j                  |d   |d   fd       y )N	resultado	academicod   
nota_finalincidentes_trampa)rp   r   r1   rl   r/   rC   r    r-   rs      r"   ,test_examen_perfecto_sin_incidentes_nota_100z8TestGuardar.test_examen_perfecto_sin_incidentes_nota_100^   s\    LL((*;7;-!L/1-@+ABHMr2   c                     | j                         }| j                  j                  d|dd       | j                  |      j	                         d   }| j                  |d   d       y )NrY   pantalla_completar[   r+   rn   rq   _   )r1   r   r.   rl   r/   rC   rt   s      r"   test_un_incidente_resta_cincoz)TestGuardar.test_un_incidente_resta_cincod   s`    *$729 	:LL((*;7<"-r2   c                    | j                         }| j                  |       | j                  ddd      }| j                  j                  d|dd       | j                  |       t	        t
        j                  d	
      5 }t        t        j                  |            }d d d        | j                  d   g d       | j                  |d   d d g d       | j                  |d   g d       y # 1 sw Y   RxY w)N   RamírezLuis15)r'   r(   r*   rY   rx   r[   r+   	utf-8-sigencodingr   )NoClave	ApellidosNombresCarreraNota
Incidentes	Descuentor^   r`   )rI   r6   r3   r4   r5      )2r~   r|   r}   r5   95rI   5)r1   rl   r   r.   openr   r   listcsvreaderrC   )r    token1token2ffilass        r"   test_csv_resultados_formatoz'TestGuardar.test_csv_resultados_formatok   s    VV4P*%82: 	;V&''+> 	(!A'E	(q $R 	Sq"1'^_q#_`	( 	(s   C22C;c                     | j                         }| j                  |       | j                  | j                  |      j                  d       y )Ni  )r1   rl   rC   rL   )r    r-   s     r"   test_envio_duplicado_bloqueadoz*TestGuardar.test_envio_duplicado_bloqueadoy   s8    Ue,88#>r2   c                     | j                  d      }| j                  |       t        t        j                        j                  d      }| j                  d|       y )Nz=HIPERVINCULO("malo"))r'   r   r   z'=HIPERVINCULO)r1   rl   r   r   r   	read_textassertIn)r    r-   	contenidos      r"   test_inyeccion_csv_neutralizadaz+TestGuardar.test_inyeccion_csv_neutralizada~   sL    (?@U../99;9O	&	2r2   c                     | j                         }dddd}| j                  ||      j                         d   }| j                  |d   d       y )Nz<script>hack  xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx)0993rn   ro   r   rs   )r    r-   trampasru   s       r"   $test_respuestas_tamperadas_ignoradasz0TestGuardar.test_respuestas_tamperadas_ignoradas   sK    "&yALL(113K@;+r2   c                     | j                   j                  d      }| j                  |j                  d       |j	                  d      }dD ]  }| j                  ||        y )Nz	/ra2-cdt1   T)as_text)zbtn-iniciarz
btn-enviarfullscreenchangeziniciar-ra2zincidente-ra2zguardar-ra2registrarAntiTrampa)r   getrC   rL   get_datar   )r    paginacuerpoesperados       r"   test_pagina_sirve_htmlz"TestGuardar.test_pagina_sirve_html   s]    !!+.++S1.0 	,H MM(F+	,r2   )N)r   r7   r8   rl   rv   rz   r   r   r   r   r   r9   r2   r"   ri   ri   Y   s-    QN.a?
3,,r2   ri   __main__)__doc__r   sysr   unittestpathlibr   pathinsertr   r   resolver   ra2_cdt1r   test_ra2_graderr   TestCaser   r;   rW   ri   r   mainr9   r2   r"   <module>r      s   
  
    3tH~--/667 8  0-h -,&' &6&G &,8,' 8,v zHMMO r2   