
     hU                         d Z ddlZddlZddlZddlZddlmZmZm	Z	m
Z
mZmZ ddlmZ dddd	d
ZdZej"                  j%                  de      d        Zd Zd Zd Zd Zy)zI
CairoSVG API test suite.

These tests can be used as deployment tests.

    N   )SURFACESVERSIONparsersurfacesvg2pdfsvg2png)mains   <?xmls   PNG

s   %PDFs   %!)SVGPNGPDFPSs   <?xml version="1.0"?>
<svg xmlns="http://www.w3.org/2000/svg" version="1.1" width="4in" height="5in">
  <rect x="5" y="10" width="13" height="15"
        fill="lime" stroke="black" stroke-width="1" />
</svg>
format_namec                 p    t         |    j                  t              }|j                  t        |          sJ y)z;Convert to a given format and test that output looks right.N)r   convert
SVG_SAMPLE
startswithMAGIC_NUMBERS)r   contents     m/home/developers/rajanand/mypropertyqr-fmb-refixing-v2/venv/lib/python3.12/site-packages/cairosvg/test_api.pytest_formatsr   !   s2     {#++J7GmK8999    c                 f    t        | d      5 }|j                         cddd       S # 1 sw Y   yxY w)z@Shortcut to return the whole content of a file as a byte string.rbN)openread)filenamefile_objects     r   	read_filer   (   s/    	h	 "!" " "s   '0c                    t        t              }|j                  t        d         sJ t        t              |k(  sJ t        t              |k(  sJ t	        j
                  t              }t        |      |k(  sJ t	        j
                         }t        t        |       |j                         |k(  sJ | dz  }|j                  t               t        t        |            |k(  sJ t        d|       |k(  sJ |j                  d      5 }t        |      |k(  sJ 	 d	d	d	       | d
z  }|j                  d      5 }t        t        |       d	d	d	       t        t        |            |k(  sJ | dz  }t        t        t        |             t        t        |            |k(  sJ t	        j
                         }	 t        |       t        d      # 1 sw Y   xY w# 1 sw Y   xY w# t        $ r Y y	w xY w)z,Test the Python API with various parameters.r   
bytestring)file_obj)write_tozsample_0.svg)urlzfile://r   Nzresult_1.pngwbresult_2.pngzTypeError not raised)r	   r   r   r   ioBytesIOgetvaluewrite_bytesstrr   r   	Exception	TypeError)tmp_pathexpected_content	file_liketemp_0r   temp_1temp_2s          r   test_apir5   .   s   z*&&}U';<<< :"2222j)-====

:&II&*::::

IJ+#3333&F
z" s6{#'7777)*.>>>>	T	 Ak,0@@@@A &F	T	 2k
[12 S[!%5555&FJV-S[!%5555

I0# .//+A A
2 2  s*   GG$G0 G!$G-0	G<;G<c                  N   t        t              } t        j                  t              }t	        j
                         }t        j                  ||d      }|j                          |j                         | k(  sJ t        j                  j                  t	        j
                  |             }|j                         }|j                         }t        j                  |dd      }|j                  |k(  sJ |j                   |k(  sJ t        j"                  |j                        sJ y)z6Test the low-level Python API with various parameters.r!   `   N)r	   r   r   Treer(   r)   r   
PNGSurfacefinishr*   cairoImageSurfacecreate_from_png	get_width
get_heightwidthheightSurfacePattern)r0   treer1   png_surface
png_resultexpected_widthexpected_heights          r   test_low_level_apirH   `   s    z* ;;*-D

I$$T9b9K#3333##33


#$&J))+N ++-O $$T44K...000 1 1222r   c                    t        t              dd }t        t              dd }dd}| dz  }|j                  t               t	        |      } |dgd      j                  d      sJ  |d	gd      j                         t        j                  d
      k(  sJ  ||g      |k(  sJ  ||ddddg      |k(  sJ  ||ddg      |k(  sJ  |dg|      |k(  sJ  ||ddddgd      }t        j                  j                  t        j                  |            }|j                         dk(  sJ |j                         dk(  sJ | dz  } ||dt	        |      g      rJ t!        |      dd |k(  sJ | dz  }	 ||dt	        |	      g      rJ t!        |	      dd |k(  sJ | dz  }
 ||dt	        |
      ddg      rJ t!        t	        |
            dd |k(  sJ y)z7Test the ``cairosvg`` script and the ``main`` function.Nd   c                 6   dg| z   t         _        t         j                  t         j                  }}t	        j
                         }t	        j                  |      t         _        |r8t        |d      t         _        t         j                  t         j                  _        |r	 t                t        d      t                t         j                  j                          |j                         }||ct         _        t         _        |r|S |dd S # t        $ r Y Yw xY w)zTest main called with given ``args``.

        If ``exit_`` is ``True``, check that ``SystemExit`` is raised. We then
        assume that the program output is an unicode string.

        If ``input_`` is given, use this stream as input stream.

        cairosvgr   zCairoSVG did not exitNrJ   )sysargvstdinstdoutr(   r)   TextIOWrapperr   bufferr
   r-   
SystemExitflushr*   )argsexit_input_full	old_stdin
old_stdoutoutput_bufferoutputs           r   	test_mainztest_script.<locals>.test_main|   s     <$& #		3:::	

%%m4
VT*CI"yyCII9   788F

'') ):	3:v/6$3</  s   
D 	DDztest.svgz--helpT)rV   s   usage: z	--versionasciiz-d96z-fpdfpng-)rW   10)rX   (   2   result_1z-or'   zresult_3.png)FNF)r	   r   r   r+   r,   r   stripr   encoder;   r<   r=   r(   r)   r>   r?   r   )r/   expected_pngexpected_pdfr]   svg_pathsvg_filenamer\   imager3   r4   temp_3s              r   test_scriptro   w   s#   :&t,L:&t,L 0D *$H$x=LhZt,77
CCCk]$/557w! ! ! l^$444lD$e<=MMMlD%01\AAAcU<0L@@@ dD$>TJF..rzz&/ABE??"""###
"F,c&k:;;;VTc"l222&F,c&k:;;;VTc"l222&F,c&k4GHHHS[!$3'<777r   )__doc__r(   rM   	cairocffir;   pytest r   r   r   r   r   r	   __main__r
   r   r   markparametrizer   r   r5   rH   ro    r   r   <module>rx      sx    
 
   B B  
	
 6: 7:"/0d3.G8r   