a
    7ñ»j	  ã                   @   s4   d Z ddlZddlZddlmZ G dd„ deƒZdS )zIS3 Logging Plugin for SeleniumBase tests that run with pynose / nosetestsé    N)ÚPluginc                       s4   e Zd ZdZdZ‡ fdd„Zdd„ Zdd„ Z‡  ZS )	Ú	S3Loggingz>The plugin for uploading test logs to the S3 bucket specified.Z
s3_loggingc                    s   t ƒ  ||¡ || _d| _dS )zGet the options.N)ÚsuperÚ	configureÚoptionsÚtest_id)Úselfr   Zconf©Ú	__class__© úLE:\soccer\ml_env\Lib\site-packages\seleniumbase/plugins/s3_logging_plugin.pyr      s    zS3Logging.configurec                 C   s>   ddl m} tj | jj| j¡}t|ƒ}|}| 	|||¡ d S )Nr   )Ú
page_utils)
Zseleniumbase.fixturesr   ÚosÚpathÚjoinr   Úlog_pathr   ÚstrZ_save_data_as)r   ÚdataÚ	file_namer   Ztest_logpathZdestination_folderr   r   r   Úsave_data_to_logs   s
    zS3Logging.save_data_to_logsc                 C   s  ddl m} |j ¡ | _|ƒ }tt ¡ jƒ}t	j
 | jj| j¡}g }t	 |¡D ]>}d|| j| |¡d f }| |t	j
 ||¡¡ | |¡ qN| |¡ | | ¡ ||| j¡}	td|	 ƒ t|jdƒ�rddlm}
m} || jjƒ| _|
ƒ }|jj|_|	|_| j |¡ dS )	z2Upload logs to the S3 bucket after tests complete.r   )ÚS3LoggingBucketz%s/%s/%séÿÿÿÿz 
*** Log files uploaded: ***
%s
Útestcase_guid)ÚTestcaseDataPayloadÚTestcaseManagerN) Zseleniumbase.core.s3_managerr   ÚtestÚidr   r   ÚuuidÚuuid4Úhexr   r   r   r   r   ÚlistdirÚsplitZupload_fileÚappendZsave_uploaded_file_namesZupload_index_filer   ÚprintÚhasattrZ"seleniumbase.core.testcase_managerr   r   Zdatabase_envZtestcase_managerr   ÚguidZlog_urlZupdate_testcase_log_url)r   r   r   Z	s3_bucketr%   r   Zuploaded_filesZlogfileZlogfile_nameZ
index_filer   r   Zdata_payloadr   r   r   Ú	afterTest   s4    ý
ÿ
zS3Logging.afterTest)	Ú__name__Ú
__module__Ú__qualname__Ú__doc__Únamer   r   r&   Ú__classcell__r   r   r	   r   r      s
   r   )r*   r   r   Znose.pluginsr   r   r   r   r   r   Ú<module>   s   