a
    œcl_m
  ã                   @   sP   d Z ddlZddlZddlZddlmZ ddlmZ dZdZ	G dd„ deƒZ
dS )	z!Blackbox tests for traffic_leaneré    N)Útraffic)ÚBlackboxTestCasezscript/traffic_learnerz$python/samba/tests/blackbox/testdatac                   @   s   e Zd Zdd„ Zdd„ ZdS )ÚTrafficLearnerTestsc                 C   s   |   td¡ dS )z:Run the script with no output file specified. Should fail.é   N)Zcheck_exit_codeÚLEARNER)Úself© r   úF/usr/lib/python3/dist-packages/samba/tests/blackbox/traffic_learner.pyÚtest_no_output_file!   s    z'TrafficLearnerTests.test_no_output_filec              
   C   s¤  |   ¡ „}tj td¡}dt||f }|  |¡ tj td¡}t ¡ }t	|ƒ}| 
|¡ | ¡  t	|ƒ}t ¡ }| 
|¡ | ¡  dd„ |j ¡ D ƒ}dd„ |j ¡ D ƒ}	|  |	|¡ dd„ |j ¡ D ƒ}
dd„ |j ¡ D ƒ}|  ||
¡ |  |j|j¡ |  |j|j¡ t	|ƒZ}t	|ƒ0}t 
|¡}t 
|¡}|  ||¡ W d	  ƒ n1 sV0    Y  W d	  ƒ n1 sv0    Y  W d	  ƒ n1 s–0    Y  d	S )
zLEnsure a model is generated from a summary file and it is
           correctztraffic-sample-very-short.txtz%s %s --out %sztraffic_learner.expectedc                 S   s   i | ]\}}|t |ƒ“qS r   ©Úsorted©Ú.0ÚkÚvr   r   r	   Ú
<dictcomp>9   ó    z=TrafficLearnerTests.test_model_generation.<locals>.<dictcomp>c                 S   s   i | ]\}}|t |ƒ“qS r   r   r   r   r   r	   r   :   r   c                 S   s   i | ]\}}|t |ƒ“qS r   r   r   r   r   r	   r   >   r   c                 S   s   i | ]\}}|t |ƒ“qS r   r   r   r   r   r	   r   ?   r   N)ZmktempÚosÚpathÚjoinÚDATA_DIRr   Z	check_runr   ZTrafficModelÚopenÚloadÚcloseZngramsÚitemsZassertEqualZquery_detailsZcumulative_durationZpacket_rateÚjson)r   ÚoutputZsummaryZcommandZexpected_fnZexpectedÚfZactualZactual_ngramsZexpected_ngramsZactual_detailsZexpected_detailsÚf1Úf2Zexpected_jsonZactual_jsonr   r   r	   Útest_model_generation%   s2    




z)TrafficLearnerTests.test_model_generationN)Ú__name__Ú
__module__Ú__qualname__r
   r    r   r   r   r	   r      s   r   )Ú__doc__r   r   ZtempfileZsamba.emulater   Zsamba.testsr   r   r   r   r   r   r   r	   Ú<module>   s   