
    :Qge                     <    d Z ddlmZ ddlZddlmZ  G d d      Zy)z2Test suite for `unstructured.file_utils.filetype`.    )annotationsN)FileTypec                     e Zd ZdZd Zej                  j                  ddej                  fdej                  fdej                  fdej                  fdej                  fg      dDd       Zej                  j                  d	g d      dEd       Zej                  j                  ddej                  fdej                  fdej                   fdej                  fdej                  fdej                  fdej"                  fdej"                  fdej$                  fg	      	 	 	 	 dFd       Zej                  j                  dg d      	 	 dGd       Zej                  j                  dej                  dfej                   dfej*                  dfej                  d fej$                  d fej,                  d!fej.                  d"fej0                  d#fej2                  d fej4                  d fej6                  d fg      	 	 	 	 dHd$       Zej                  j                  dej                  d%fej                  d&fej                   d'fej$                  d(fej                  d(fej:                  d)fej.                  d*fej2                  d(fej4                  d(fej6                  d(fg
      	 	 	 	 dId+       Zej                  j                  dej                  d,fej                  d,fej                   d,fej                  d,fej>                  d,fej.                  d,fej@                  d,fej4                  d-fej6                  d-fej$                  d-fej2                  d-fg      	 	 	 	 dJd.       Z!ej                  j                  d/ej                  dfej                  d0fej                   dfej                  dfej                  d1fej>                  d2fej.                  d3fej                  dfej"                  dfej$                  dfej2                  d4fg      dKd5       Z"ej                  j                  dej                  d6fej                  d7fej                   d8fej*                  d9fej>                  d6fejF                  d6fejH                  d6fg      dJd:       Z%ej                  j                  d
ej4                  ej6                  ej$                  ej2                  g      	 	 dLd;       Z&ej                  j                  dej                  d<fej                  d=fej                   d>fej*                  d?fej>                  d<fejF                  d<fejH                  d<fg      	 	 	 	 dJd@       Z'ej                  j                  d
ej4                  ej6                  ej$                  ej2                  g      	 	 dLdA       Z(ej                  j                  dej                  dfej                  dBfej                   dfej*                  dfej>                  dfejF                  dfejH                  dfej0                  d#fejR                  d#fg	      	 	 	 	 dJdC       Z*y )MDescribeFileTypez=Unit-test suite for `unstructured.file_utils.model.Filetype`.c                x    t         j                  t         j                  cxk  rt         j                  k  sJ  J y)z@FileType is a total order on name, e.g. FileType.A < FileType.B.N)r   EMLHTMLXML)selfs    d/var/www/html/answerous/venv/lib/python3.12/site-packages/test_unstructured/file_utils/test_model.py4it_is_a_collection_ordered_by_name_and_can_be_sortedzEDescribeFileType.it_is_a_collection_ordered_by_name_and_can_be_sorted   s'    ||hmm:hll:::::    )ext	file_typez.bmpz.htmlz.emlz.p7sz.javar   r   c                6    t        j                  |      |u sJ y Nr   from_extension)r   r   r   s      r   .it_can_recognize_a_file_type_from_an_extensionz?DescribeFileType.it_can_recognize_a_file_type_from_an_extension   s     &&s+y888r   )z.foobarz.xyzz.mdx .Nc                2    t        j                  |      J y r   r   )r   r   s     r   >but_not_when_that_extension_is_empty_or_None_or_not_registeredzODescribeFileType.but_not_when_that_extension_is_empty_or_None_or_not_registered"   s    &&s+333r   )	mime_typer   z	image/bmpz
text/x-csvzapplication/mswordzmessage/rfc822z
text/plainz	text/yamlzapplication/xmlztext/xmlzinode/x-emptyr   c                6    t        j                  |      |u sJ y r   r   from_mime_type)r   r   r   s      r   -it_can_recognize_a_file_type_from_a_mime_typez>DescribeFileType.it_can_recognize_a_file_type_from_a_mime_type(   s    " &&y1Y>>>r   )ztext/cssz	image/gifz
audio/mpegzfoo/barNc                2    t        j                  |      J y r   r   )r   r   s     r   Dbut_not_when_that_mime_type_is_not_registered_by_a_file_type_or_NonezUDescribeFileType.but_not_when_that_mime_type_is_not_registered_by_a_file_type_or_None;   s     &&y1999r   )r   expected_valueimagedocdocxNmsgpdfxlsxc                &    |j                   |k(  sJ y r   )
extra_namer   r   r!   s      r   Land_it_knows_which_pip_extra_needs_to_be_installed_to_get_those_dependenciesz]DescribeFileType.and_it_knows_which_pip_extra_needs_to_be_installed_to_get_those_dependenciesC   s    & ##~555r   )unstructured_inference)pandas)r$    )r$   pypandoc)	pdf2imagepdfminerPILc                &    |j                   |k(  sJ y r   )importable_package_dependenciesr*   s      r   =it_knows_which_importable_packages_its_partitioner_depends_onzNDescribeFileType.it_knows_which_importable_packages_its_partitioner_depends_onZ   s    $ 88NJJJr   TFc                $    |j                   |u sJ y r   )is_partitionabler*   s      r   =it_knows_whether_files_of_its_type_are_directly_partitionablezNDescribeFileType.it_knows_whether_files_of_its_type_are_directly_partitionablep   s    & ))^;;;r   )r   r   ztext/csvz	text/htmlz
image/jpegzapplication/pdfzapplication/octet-streamc                &    |j                   |k(  sJ y r   )r   )r   r   r   s      r    it_knows_its_canonical_MIME_typez1DescribeFileType.it_knows_its_canonical_MIME_type   s    " ""i///r   partition_imagepartition_csvpartition_docpartition_docxc                &    |j                   |k(  sJ y r   )partitioner_function_namer*   s      r   &it_knows_its_partitioner_function_namez7DescribeFileType.it_knows_its_partitioner_function_name   s     22nDDDr   c                |    t        j                  t        d      5  |j                   d d d        y # 1 sw Y   y xY w)Nz2`.partitioner_function_name` is undefined because match)pytestraises
ValueErrorr@   r   r   s     r   Ybut_it_raises_on_partitioner_function_name_access_when_the_file_type_is_not_partitionablezjDescribeFileType.but_it_raises_on_partitioner_function_name_access_when_the_file_type_is_not_partitionable   s1     ]]:-ab 	0//	0 	0 	0   2;zunstructured.partition.imagezunstructured.partition.csvzunstructured.partition.doczunstructured.partition.docxc                &    |j                   |k(  sJ y r   )partitioner_module_qnamer*   s      r   ;it_knows_the_fully_qualified_name_of_its_partitioner_modulezLDescribeFileType.it_knows_the_fully_qualified_name_of_its_partitioner_module   s     11^CCCr   c                |    t        j                  t        d      5  |j                   d d d        y # 1 sw Y   y xY w)Nz1`.partitioner_module_qname` is undefined because rC   )rE   rF   rG   rL   rH   s     r   Xbut_it_raises_on_partitioner_module_qname_access_when_the_file_type_is_not_partitionableziDescribeFileType.but_it_raises_on_partitioner_module_qname_access_when_the_file_type_is_not_partitionable   s1     ]]:-`a 	/..	/ 	/ 	/rJ   csvc                &    |j                   |k(  sJ y r   )partitioner_shortnamer*   s      r   /it_provides_access_to_the_partitioner_shortnamez@DescribeFileType.it_provides_access_to_the_partitioner_shortname   s    " ...@@@r   )r   strr   FileType | None)r   
str | None)r   rT   r   rU   )r   rV   )r   r   r!   rV   )r   r   r!   ztuple[str, ...])r   r   r!   rT   )r   r   r   rT   )r   r   )+__name__
__module____qualname____doc__r   rE   markparametrizer   BMPr	   r   TXTr   r   CSVDOCr
   EMPTYr   r    DOCXMSGPDFXLSUNKWAVZIPr+   ODTr5   JPGPPTXr8   r:   PNGTIFFrA   rI   rM   rO   XLSXrS   r.   r   r   r   r   
   s   G; [[X\\"hmm$X\\"X\\"hll#	
	9	9 [[U$NO4 P4
 [["(,,'8<<(!8<<0x||,8<<((,,'-&hnn-
	
??)8??
 [[[*bc:#: d: [['\\7#\\5!]]F#\\4 ^^T"\\5!\\5!\\6"\\4 \\4 \\4 	
 6!63=6! 6 [['\\67\\;'\\9%^^R ]]B\\/0\\;<\\2\\2\\2	
K!K3BKK [['\\4 \\4 \\4 \\4 \\4 \\4 ]]D!\\5!\\5!^^U#\\5!	
 <!<36<! < [["\\;'\\:&\\/0\\+,]]K(\\<(\\,-\\<(\\,-^^_-\\56	
 0! 0
 [['\\,-\\?+\\?+]],-\\,-\\,-]]-.	
EE [[hllHLL(..(,,O0!00 [['\\9:\\78\\78]]9:\\9:\\9:]]:;	
D!D36DD
 [[hllHLL(..(,,O/!// [['\\7#\\5!\\5!]]F#\\7#\\7#]]G$\\6"]]F#
	
A!A36AAr   r   )rZ   
__future__r   rE   unstructured.file_utils.modelr   r   r.   r   r   <module>rq      s    8 "  2YA YAr   