o
    i                     @   s  d dl mZ d dlmZ d dlmZ d dlmZ d dlm	Z	 d dlm
Z
 d dlmZ d dlmZ d d	lmZ d d
lmZ d dlmZ d dlmZ d dlmZ d dlmZ d dlmZ d dlmZ d dlmZ d dlmZ eeZG dd dee
ef ee	 ZdS )    )Path)Optional)test)ITR_SKIPPING_LEVEL)TestModuleId)TestSuiteId)TestVisibilityChildItem)TestVisibilityParentItem)TestVisibilitySessionSettings)TestVisibilitySuite)	MODULE_ID)MODULE_TYPE)SUITE)TEST)EVENT_TYPES)record_event_created)record_event_finished)
get_loggerc                       s   e Zd ZeZejZ		ddede	de
e de
eeef  f fddZdeeef fd	d
Zdef fddZdd Zdd Zdd Z  ZS )TestVisibilityModuleNnamesession_settingsmodule_pathinitial_tagsc                    s:   t  |||j| |r| nd | _| tj|j d S )N)	super__init__module_operation_nameabsolute_module_pathset_tagr   ITR_TEST_CODE_COVERAGE_ENABLEDcoverage_enabled)selfr   r   r   r   	__class__ ^/home/ubuntu/.local/lib/python3.10/site-packages/ddtrace/internal/ci_visibility/api/_module.pyr      s   zTestVisibilityModule.__init__returnc                 C   sn   | j r&| j | jjkrd}n| j | jjr t| j | jj}nt| j }nd}tt|  tj	|tj
| jiS )N )r   _session_settingsworkspace_pathis_relative_tostrrelative_tor   get_span_idr   MODULE_PATHMODULEr   )r!   r   r$   r$   r%   _get_hierarchy_tags+   s   z(TestVisibilityModule._get_hierarchy_tagsitr_enabledc                    s^   t  | | tj| jj |r-| tj| jjt	j
krt
nt | tj| jdk dS dS )z4Set module-level tags based in ITR enablement statusr   N)r   _set_itr_tagsr   r   ITR_TEST_SKIPPING_ENABLEDr(   itr_test_skipping_enabledITR_TEST_SKIPPING_TYPEitr_test_skipping_levelr   r   r   ITR_DD_CI_ITR_TESTS_SKIPPED_itr_skipped_count)r!   r1   r"   r$   r%   r2   ?   s   z"TestVisibilityModule._set_itr_tagsc                 C      t | j| jjd d S N)
event_typetest_framework)r   _event_type_metric_namer(   test_framework_metric_namer!   r$   r$   r%   _telemetry_record_event_createdK      
z4TestVisibilityModule._telemetry_record_event_createdc                 C   r9   r:   )r   r=   r(   r>   r?   r$   r$   r%    _telemetry_record_event_finishedQ   rA   z5TestVisibilityModule._telemetry_record_event_finishedc                 O   s   t d)Nz)Coverage data cannot be added to modules.)NotImplementedError)r!   argskwargsr$   r$   r%   add_coverage_dataW   s   z&TestVisibilityModule.add_coverage_data)NN)__name__
__module____qualname__r   _event_typer   r/   r=   r+   r
   r   r   dictr   r0   boolr2   r@   rB   rF   __classcell__r$   r$   r"   r%   r      s&    r   N) pathlibr   typingr   ddtrace.extr   ddtrace.ext.test_visibilityr   1ddtrace.ext.test_visibility._test_visibility_baser   r   (ddtrace.internal.ci_visibility.api._baser   r	   r
   )ddtrace.internal.ci_visibility.api._suiter   (ddtrace.internal.ci_visibility.constantsr   r   r   r   2ddtrace.internal.ci_visibility.telemetry.constantsr   /ddtrace.internal.ci_visibility.telemetry.eventsr   r   ddtrace.internal.loggerr   rG   logr   r$   r$   r$   r%   <module>   s,    
