
    ,h                     z    d dl mZ d dlmZmZ d dlmZ ddlmZ  G d de      Z G d d	e      Z	 G d
 de      Z
y)    )unicode_literals)datedatetime)Mock   )IMAPClientTestc                   $     e Zd Z fdZd Z xZS )TestSearchBasec                     t         t        |           t               | j                  _        dg| j                  j
                  _        y )Ns   1 2 44)superr
   setUpr   client_raw_command_untaggedreturn_value)self	__class__s    ]/var/www/html/Resume-Scraper/venv/lib/python3.12/site-packages/imapclient/test/test_search.pyr   zTestSearchBase.setUp   s2    nd)+,0F):C))6    c                 P    | j                   j                  j                  d|       y )Ns   SEARCH)r   r   assert_called_once_with)r   expected_argss     r   
check_callzTestSearchBase.check_call   s    ))AA}	&r   )__name__
__module____qualname__r   r   __classcell__)r   s   @r   r
   r
      s    E
&r   r
   c                   `    e Zd Zd Zd Zd Zd Zd Zd Zd Z	d Z
d	 Zd
 Zd Zd Zd Zd Zy)
TestSearchc                     | j                   j                  ddg      }| j                  ddg       | j                  |g d       | j                  |j                  d        y )N   FOO   BARr      ,   r   searchr   assertEqualmodseqr   results     r   test_bytes_criteriazTestSearch.test_bytes_criteria   sP    ##VV$45(),-r   c                 f    | j                   j                  ddgd       | j                  g d       y )Nr    r!   zutf-92)   CHARSETs   utf-92r    r!   r   r&   r   r   s    r    test_bytes_criteria_with_charsetz+TestSearch.test_bytes_criteria_with_charset#   s(    FF+X6?@r   c                     | j                   j                  ddg      }| j                  ddg       | j                  |g d       | j                  |j                  d        y )NFOOBARr    r!   r"   r%   r)   s     r   test_unicode_criteriaz TestSearch.test_unicode_criteria(   sQ    ##UEN3 	(),-r   c                 f    | j                   j                  ddgd       | j                  g d       y )Nr2   u   ☹utf-8)r-      utf-8r    s   ☹r.   r/   s    r   "test_unicode_criteria_with_charsetz-TestSearch.test_unicode_criteria_with_charset0   s*    E8,g6 	GHr   c                 z    | j                   j                  dt        ddd      g       | j                  ddg       y )NSINCE           SINCE   03-Apr-2005)r   r&   r   r   r/   s    r   test_with_datezTestSearch.test_with_date6   s3    GT$1%567>23r   c                     | j                   j                  dt        dddddd      g       | j                  dd	g       y )
Nr:   r;   r<   r=   r#   r   r   r>   r?   )r   r&   r   r   r/   s    r   test_with_datetimezTestSearch.test_with_datetime:   s9    GXdAq!Q%BCD>23r   c                 d    | j                   j                  ddg       | j                  ddg       y )NTEXTzfoo bars   TEXT	   "foo bar"r.   r/   s    r   test_quotingzTestSearch.test_quoting>   s*    FI./,/0r   c                     d g| j                   j                  _        | j                   j                  dg      }| j	                  |g        | j	                  |j
                  d        y )Nr2   )r   r   r   r&   r'   r(   r)   s     r   test_no_resultszTestSearch.test_no_resultsB   sP    :>))6##UG,$-r   c                     dg| j                   j                  _        | j                   j                  ddg      }| j	                  ddg       | j                  |ddg       | j                  |j                  d       y )	Ns   1 2 (MODSEQ 51101)MODSEQ40000s   MODSEQs   40000r   r#   i  )r   r   r   r&   r   r'   r(   r)   s     r   test_modseqzTestSearch.test_modseqI   si    :O9P))6##Xw$78H-.!Q(.r   c                 \    | j                  t        | j                  j                  g g       y )N)assertRaises
ValueErrorr   r&   r/   s    r   test_nested_emptyzTestSearch.test_nested_emptyR   s     *dkk&8&82$?r   c                 b    | j                   j                  dgg       | j                  dg       y )Nr2   s   (FOO)r.   r/   s    r   test_singlezTestSearch.test_singleU   s&    UG9%
#r   c                 h    | j                   j                  dg dg       | j                  g d       y NNOT)SUBJECTtopicTOzsome@email.com)   NOTs   (SUBJECTs   topics   TOs   some@email.com)r.   r/   s    r   test_nestedzTestSearch.test_nestedY   s'    E#PQRRSr   c                 r    | j                   j                  ddg dddggg       | j                  g d       y )NrU   OR)AxByCz)rY   s   (ORs   (A   x   Bs   y)s   (Cs   z))r.   r/   s    r   test_nested_multiplezTestSearch.test_nested_multiple]   s2    ED*>c
#KLMQRr   c                 d    | j                   j                  ddg       | j                  g d       y rT   r.   r/   s    r   test_nested_tuplezTestSearch.test_nested_tuplea   s'    E#PQRRSr   N)r   r   r   r+   r0   r4   r8   r@   rB   rF   rH   rL   rP   rR   rZ   re   rg    r   r   r   r      sN    .A
.I441./@$TSTr   r   c                       e Zd Zd Zd Zd Zy)TestGmailSearchc                     | j                   j                  d      }| j                  g d       | j                  |g d       y )N   foo bar)r-   s   UTF-8   X-GM-RAWrE   r"   r   gmail_searchr   r'   r)   s     r   test_bytes_queryz TestGmailSearch.test_bytes_queryh   s3    ))*5IJ,r   c                     | j                   j                  dd      }| j                  g d       | j                  |g d       y )Nrl   zutf-42)r-   s   utf-42rm   rE   r"   rn   r)   s     r   test_bytes_query_with_charsetz-TestGmailSearch.test_bytes_query_with_charsetn   s5    ))*h?JK,r   c                 b    | j                   j                  dd       | j                  g d       y )Nu   foo ☹r6   )r-   r7   rm   s	   "foo ☹")r   ro   r   r/   s    r   r8   z2TestGmailSearch.test_unicode_criteria_with_charsett   s#      w7RSr   N)r   r   r   rp   rr   r8   rh   r   r   rj   rj   f   s    --Tr   rj   N)
__future__r   r   r   mockr   imapclient_testr   r
   r   rj   rh   r   r   <module>rw      s>   
 ( #  +	&^ 	&IT ITXTn Tr   