
    V5hF                     T    d dl Z d dlZd dlZd dlmZ d dlmZmZmZm	Z	  G d d      Z
y)    N)BeautifulSoup)AZURE_DEVOPS_URLAZURE_DEVOPS_ORGAZURE_DEVOPS_PROJECTAZURE_DEVOPS_PATc                       e Zd ZddZddZy)AzureClientNc                    |r|j                  dt              nt        | _        |r|j                  dt              nt        | _        |r|j                  dt
              nt
        | _        |r|j                  dt              nt        | _        | j                  rP| j                  j                  d      sd| j                  z   | _        | j                  j                  d      | _        y y )Nurlorgprojectpat)zhttp://https://r   /)getr   	azure_urlr   	azure_orgr   azure_projectr   	azure_pat
startswithrstrip)selfazure_configs     {D:\Onedrive\OneDrive - Evince Development Pvt. Ltd\automation\ui-based-testcase-generator\azure_integration\azure_client.py__init__zAzureClient.__init__   s    FR))%1ABXhFR))%1ABXhR^\--i9MNdxFR))%1ABXh >>>>,,-DE!+dnn!< "^^2237DN     c           
      H   |sSt        j                  dd      j                  d      }|D cg c]#  }|j                         s|j                         % }}|st	        d       y | j
                  st	        d       y | j                  st	        d       y | j                  st	        d       y g }|D ]8  }| j
                   d| j                   d| j                   d	| d
}ddt        j                  d| j                   j                               j                          d}	 t        j                  ||      }|j                  dk(  r|j!                         }d }	|j                  di       j                  dd      }
 |	|
      }|j                  di       j                  dd      }|j#                  |||d       t	        d|        nt	        d| d|j                          ; |S c c}w # t$        $ r%}t	        d| dt'        |              Y d }~ld }~ww xY w)NAZURE_DEVOPS_WORKITEM_IDS ,uW   ⚠️ Work item IDs not found. Please set AZURE_DEVOPS_WORKITEM_IDS in your .env file.u$   ❌ Azure DevOps URL cannot be emptyu-   ❌ Azure DevOps organization cannot be emptyu(   ❌ Azure DevOps project cannot be emptyr   z/_apis/wit/workitems/z?api-version=6.0zapplication/jsonzBasic :)AcceptAuthorization)headers   c                 :    t        | d      }|j                         S )Nzhtml.parser)r   get_text)textsoups     r   
clean_htmlz6AzureClient.fetch_azure_work_items.<locals>.clean_html<   s    ,T=A#}}.r   fieldszSystem.DescriptionzNo Description FoundzSystem.TitlezNo Title Found)idtitledescriptionu#   ✅ Successfully fetched work item u   ❌ Failed to fetch work item z: u   ❌ Error processing work item )osgetenvsplitstripprintr   r   r   base64	b64encoder   encodedecoderequestsr   status_codejsonappend	Exceptionstr)r   work_item_idsr,   resultswork_item_idr   r$   response	work_itemr*   r.   description_cleanedr-   es                 r   fetch_azure_work_itemsz"AzureClient.fetch_azure_work_items   s   II&A2FLLSQM2?NB288:RXXZNMNkl ~~89~~AB!!<=) 	RL^^$Adnn%5Qt7I7I6JJ_`l_mm}~C,#)&*:*:Qt~~>N;O;V;V;X*Y*`*`*b)c!dG
R#<<W=''3. (I/ #,--""="A"ABVXn"oK*4[*A'%MM(B7;;NL\]ENN*!&':$ 
 ?~NO:<.8K_K_J`ab9	R@ i Ob  R7~RAxPQQRs$   G.G.%CG33	H!<HH!)N)__name__
__module____qualname__r   rE    r   r   r	   r	      s    8 7r   r	   )r/   r8   r4   bs4r   config.settingsr   r   r   r   r	   rI   r   r   <module>rL      s#    	    f fH Hr   