
    Pi                         d dl Z d dlZd dlmZmZ d dlZd dlmZ dZ	dee
ef         dee
ef         fdZdedee
ef         fd	Zdee
ef         defd
Zd Zd Zd Zd Zedk    r e             dS dS )    N)AnyDict)_xmls	  <?xml version="1.0" encoding="utf-8"?>  
<EnumerationResults ContainerName="https://myaccount.blob.core.windows.net/mycontainer">  
  <MaxResults>4</MaxResults>  
  <Blobs>  
    <Blob>  
      <Name>blob1.txt</Name>  
      <Url>https://myaccount.blob.core.windows.net/mycontainer/blob1.txt</Url>  
      <Properties>  
        <Last-Modified>Sun, 27 Sep 2009 18:41:57 GMT</Last-Modified>  
        <Etag>0x8CAE7D55D050B8B</Etag>  
        <Content-Length>8</Content-Length>  
        <Content-Type>text/html</Content-Type>  
        <Content-Encoding />  
        <Content-Language>en-US</Content-Language>  
        <Content-MD5 />  
        <Cache-Control>no-cache</Cache-Control>  
        <BlobType>BlockBlob</BlobType>  
        <LeaseStatus>unlocked</LeaseStatus>  
      </Properties>  
    </Blob>  
    <Blob>  
      <Name>blob2.txt</Name>  
      <Url>https://myaccount.blob.core.windows.net/mycontainer/blob2.txt</Url>  
      <Properties>  
        <Last-Modified>Sun, 27 Sep 2009 12:18:50 GMT</Last-Modified>  
        <Etag>0x8CAE7D55CF6C339</Etag>  
        <Content-Length>100</Content-Length>  
        <Content-Type>text/html</Content-Type>  
        <Content-Encoding />  
        <Content-Language>en-US</Content-Language>  
        <Content-MD5 />  
        <Cache-Control>no-cache</Cache-Control>  
        <BlobType>BlockBlob</BlobType>  
        <LeaseStatus>unlocked</LeaseStatus>  
      </Properties>  
    </Blob>  
    <BlobPrefix>  
      <Name>myfolder/</Name>  
    </BlobPrefix>  
    <Blob>  
      <Name>newblob1.txt</Name>  
      <Url>https://myaccount.blob.core.windows.net/mycontainer/newblob1.txt</Url>  
      <Properties>  
        <Last-Modified>Sun, 27 Sep 2009 16:31:57 GMT</Last-Modified>  
        <Etag>0x8CAE7D55CF6C339</Etag>  
        <Content-Length>25</Content-Length>  
        <Content-Type>text/html</Content-Type>  
        <Content-Encoding />  
        <Content-Language>en-US</Content-Language>  
        <Content-MD5 />  
        <Cache-Control>no-cache</Cache-Control>  
        <BlobType>BlockBlob</BlobType>  
        <LeaseStatus>unlocked</LeaseStatus>  
      </Properties>  
    </Blob>  
    <BlobPrefix>  
      <Name>myfolder2/</Name>  
    </BlobPrefix>  
  </Blobs>  
  <NextMarker>newblob2.txt</NextMarker>  
</EnumerationResults>  
dreturnc                     i }|                                  D ]D\  }}|                    d          rt          |t                    rt	          |          }|||<   E|S )N@)items
startswith
isinstancedictremove_attributes)r   resultkvs       f/home/jaya/work/projects/VOICE-AGENT/VIET/agent-env/lib/python3.11/site-packages/blobfile/_xml_test.pyr   r   J   sh    F		  1<< 	a 	%!!$$Aq		M    datac                 n    t          j        |                     d                    }t          |          S Nutf8)	xmltodictparsedecoder   )r   parseds     r   xmltodict_parser   U   s+    _T[[0011FV$$$r   c                 P    t          j        |                               d          S r   )r   unparseencode)r   s    r   xmltodict_unparser    [   s!    Q&&v...r   c                     t          t                    } t          j        t          ddh          }t	          j        | dd          }t	          j        |dd          }t          |           t          |           ||k    sJ d S )NBlob
BlobPrefixrepeated_tagsT )	sort_keysindent)r   respxmlr   jsondumpsprint)refactualjson_refjson_actuals       r   
test_parser2   _   s    
$

CYtFL+ABBBFz#c:::H*VtC@@@K	(OOO	+{""""""r   c                      ddd t          d          D             ii} t          |           }t          j        |           }t	          |           t	          |           ||k    sJ d S )N	BlockListLatestc                 ,    g | ]}t          |          S  )str).0is     r   
<listcomp>z test_unparse.<locals>.<listcomp>j   s    $@$@$@SVV$@$@$@r   d   )ranger    r*   r   r-   )bodyr.   r/   s      r   test_unparser?   i   si    ($@$@U3ZZ$@$@$@ABD
D
!
!C[F	#JJJ	&MMM&======r   c                     t          t                    } t          |           }t          j        |ddh          }| |k    sJ t          j        |           }t                       t          |           t          |           ||k    sJ |t          j        t          j        t          j        |           ddh                    k    sJ d S )Nr"   r#   r$   )r   r)   r    r*   r   r   r-   )
ref_parsedref_unparsedactual_parsedactual_unparseds       r   test_roundtriprE   r   s     &&J$Z00LIl6<:PQQQM&&&&k*--O	GGG	,	/?****3;	#+j))&,9OPPP       r   c                     t          t                    } |                                 }|d         d         d         dz  |d         d         d<   t          |          }t	          j                    }t          d          D ]}t          j        t                     t	          j                    }t          d||z
              t	          j                    }t          d          D ]}t          |ddh           t	          j                    }t          d	||z
              t	          j                    }t          d          D ]}t          j        |           t	          j                    }t          d
||z
              t	          j                    }t          d          D ]}t          |           t	          j                    }t          d||z
              d S )NEnumerationResultsBlobsr"   i,  r<   zxmltodict parse elapsed r#   r$   zlxml parse elapsed zxmltodict unparse elapsed zlxml unparse elapsed )r   r)   copyr    timeperf_counterr=   r   r   expanded_respr-   
lxml_parser   lxml_unparse)docdoc2expanded_resp_utf8start_ends         r   mainrU      s   
$

C88::D267K2LW2UV\2]`c2cD	w'/*400E3ZZ ' '&&&&



C	
2S5[
2
2333E3ZZ M M%fl5KLLLLL



C	
-e
-
-...E3ZZ    $



C	
4sU{
4
4555E3ZZ  T



C	
/#+
/
/00000r   __main__)r+   rJ   typingr   r   r   blobfiler   r*   r)   r8   r   bytesr   r    r2   r?   rE   rU   __name__r7   r   r   <module>r[      s<                            >Bc3h DcN    %% %DcN % % % %/c3h /E / / / /# # #    $1 1 1@ zDFFFFF r   