
    2i=                         d dl Z d dlZd dlZd dlZd dlZd dlmZ  G d dej                        Ze	dk(  r ej                          yy)    N)GoogleSearchc                      e Zd Zd Z ej
                   ej                  d      dk(  d      d        Z ej
                   ej                  d      dk(  d      d        Z	 ej
                   ej                  d      dk(  d      d        Z	 ej
                   ej                  d      dk(  d      d        Z
 ej
                   ej                  d      dk(  d      d	        Z ej
                   ej                  d      dk(  d      d
        Z ej
                   ej                  d      dk(  d      d        Z ej
                   ej                  d      dk(  d      d        Zy)TestSearchApic                 B    t        j                  dd      t        _        y )NAPI_KEYdemo)osgetenvr   SERP_API_KEY)selfs    `/var/www/html/marco-python-backend/venv/lib/python3.12/site-packages/tests/test_google_search.pysetUpzTestSearchApi.setUp
   s     "		)V <L    r   Nzno api_key providedc                 0   t        ddd      }|j                  ddd      }g }|D ]  }|j                  |d   d           | j                  t	        |      d	       | j                  d
|d   v        t        |d          | j                  d|d   v        y )NCoffeeAustin,Texasqlocationr      
   serpapi_paginationnext   zstart=10   zstart=21)r   
paginationappendassertEquallen
assertTrueprint)r   searchpagesurlspages        r   test_paginatezTestSearchApi.test_paginate   s    nEFFaR(ED 5	[[*+F345SY"OOJ$q')*	$q'NOOJ$q')*r   c                 @   t        ddd      }|j                         }| j                  |d   d   d       | j                  |j	                  d             | j                  |d   d          | j                  |d   d	          | j                  |d
   d   d          y )Nr   r   r   search_metadatastatusSuccesserror
google_urlidlocal_resultsplacesr   )r   get_jsonr   assertIsNonegetassertIsNotNoner   r"   datas      r   test_get_jsonzTestSearchApi.test_get_json   s    nEFF??DT+,X6	Bdhhw'(/0>?/067o.x8;<r   c                 t    t        ddd      }|j                         }| j                  |d   d   d          y )Nr   google_scholar)r   engineorganic_resultsr   title)r   r0   r3   r4   s      r   r6   zTestSearchApi.test_get_json#   s<    4DEFF??D/03G<=r   c                     t        ddd      }|j                         }| j                  |j                  d             y Nr   r   r   r.   )r   get_dictr3   r2   r4   s      r   test_get_dictzTestSearchApi.test_get_dict)   s4    nEFF??D/23r   c                     t        ddd      }|j                         }| j                  |j                  d             y r=   )r   get_dictionaryr3   r2   r4   s      r   test_get_dictionaryz!TestSearchApi.test_get_dictionary/   s6    nEFF  "D/23r   c                 v    t        ddd      }|j                         }| j                  t        |      d       y Nr   r   r   r   )r   get_htmlassertGreaterr   r4   s      r   test_get_htmlzTestSearchApi.test_get_html5   s1    nEFF??Ds4y"%r   c                     t        ddd      }|j                         }| j                  t        |      t        j
                         | j                  t        |j                        d       y rD   )	r   get_responser   typerequestsResponserF   r   text)r   r"   responses      r   test_get_responsezTestSearchApi.test_get_response;   sR    nEFF""$HT(^X%6%67s8==)2.r   c                 Z   t        ddd      }|j                         }| j                  t        |j                        t
               | j                  |j                  d   j                         | j                  |j                  j                         | j                  |j                  j                         | j                  |j                  j                  d       | j                  |j                  j                  d       | j                  |j                  j                   d       y )Nr   r   r   r   googler   )r   
get_objectr   rJ   r:   listr3   r;   r(   r-   r,   search_parametersr   r9   rF   search_informationtotal_results)r   r"   rs      r   test_get_objectzTestSearchApi.test_get_objectB   s    nEFFAT!++,d3**1-334**--.**556Q((**H5Q((//:q++992>r   )__name__
__module____qualname__r   unittestskipIfr	   r
   r&   r6   r?   rB   rG   rO   rX    r   r   r   r      s   = 8??IBIIi(D03HI	+ J	+ 8??IBIIi(D03HI= J= 8??IBIIi(D03HI> J>
 8??IBIIi(D03HI4 J4
 8??IBIIi(D03HI4 J4
 8??IBIIi(D03HI& J&
 8??IBIIi(D03HI/ J/ 8??IBIIi(D03HI	? J	?r   r   __main__)randomr\   r	   pprintrK   serpapir   TestCaser   rY   mainr^   r   r   <module>re      sF      	    D?H%% D?L z(--/ r   