
    2i                         d dl Z d dlZd dlZd dlZej                  dkD  rd dlmZ nd dlm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)   r   )Queue)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y)TestExamplec                 B    t        j                  dd      t        _        y )NAPI_KEYdemo)osgetenvr   SERP_API_KEY)selfs    Z/var/www/html/marco-python-backend/venv/lib/python3.12/site-packages/tests/test_example.pysetUpzTestExample.setUp   s    $&IIi$?!    r	   Nzno api_key providedc                     t        ddd      }|j                         }t        |d          |d   d   }t        |dz          |j                  |d      }t        |       y )NCoffeegoogle_scholar)qenginesearch_metadataid: get search from archivehtml)r   get_jsonprintget_search_archive)r   searchdata	search_idraw_htmls        r   test_get_jsonzTestExample.test_get_json   sc    H8HIJ d$%&*+D1	i556--i@hr   DEBUGAPI_KEYc                     t        ddd      }|j                         d   D ]  }	 |d   }t        d|z           y #  t        d       Y )xY w)Ncoffeisch)r   tbmimages_resultsoriginalzlink is found: zlink is not found.)r   r   r   )r   r   image_resultlinks       r   test_search_google_imagesz%TestExample.test_search_google_images,   s]    GF;<"OO-.>? 	L#J/'$./	*+s	   <Ac                    t               }t        ddd      }dD ]e  }t        d|z          ||j                  d<   |j	                         }|t        d|z          At        d|d	   d
   z          |j                  |       g t        d       t        ddi      }|j                         s|j                         }|d	   d
   }t        |dz          |j                  |      }t        |dz   |d	   d   z          t        j                  d|d	   d         rt        |dz   |d   d   z          n4t        |dz          |j                  |       t        j                  d       |j                         st        d       y )NzAustin,TexasT)locationasync)amdnvidiaintelzexecute async search: q = r   zoops data is empty for: z"add search to the queue where id: r   r   z4wait until all search statuses are cached or successr/   r   z: status = statuszCached|Successz: search done with q = search_parametersz: requeue search   zall searches completed)r   r   r   params_dictget_dictputemptygetr   rer   timesleep)r   search_queuer   companyr   r    search_archiveds          r   
test_asynczTestExample.test_async:   s    w &
  0 		!G
,w6
7$+&

S
!"$.89
4t<M7Nt7TT
U


4
 		! 	DE wo.$$&!!#$,-d3) 	77
8#66yA/
	M)O<M,Nx,XX
Y YY'9J)KH)UV)77/J]:^_b:ccd )001V$JJqM# $$&& 	&'r   c           	          t        ddddd      }dD ]T  }|dz  |j                  d<   |j                         }|d   D ](  }t        t	        |d	   |dz  z         d
z   |d   z          * V y )Nr%   nwszqdr:d
   r   r'   tbsnum)r   r5      startnews_resultsposition - title)r   r6   r   r   str)r   r   offsetr   news_results        r   test_search_google_newsz#TestExample.test_search_google_newsj   s    	
   	aF*02+Fw'??$D#N3 ac+j1FRK?@5H;W^K__`a	ar   c                     t        ddddd      }|j                         }d|v r+|d   D ]"  }t        t        |d         dz   |d	   z          $ y t        d
       y )Nr%   shopzp_ord:rvd   rE   shopping_resultsrK   rL   rM   zJWARNING: oops shopping_results is missing from search result with tbm=shop)r   r   r   rN   )r   r   r   shopping_results       r   test_search_google_shoppingz'TestExample.test_search_google_shoppingx   sw    	
   %#'(:#; [c/*56>QXAYYZ[ ^_r   c                    dD ]  }t        i       j                  |d      d   d   }t        d|ddd      }|j                         }| j                  |j	                  d             |d	   d   d
   }t        d|z   dz   |z           y )N)znew yorkparisberlinr5   r   canonical_namezbest coffee shoprD   )r   r.   rG   rI   errororganic_resultsrM   ztop coffee result for z is: )r   get_locationr   assertIsNoner:   r   )r   cityr.   r   r   
top_results         r   test_search_by_locationz#TestExample.test_search_by_location   s    3 	ND#B'44T1=a@AQRH!'$	# F ??$Ddhhw/0/03G<J*X5?*LM	Nr   )__name__
__module____qualname__r   unittestskipIfr   r   r"   r,   rA   rQ   rW   rb    r   r   r   r      sA   @ X__ibii	*d25JK	 L	 X__ibii/47:OP
 Q
 X__ibii/47:OP-( Q-(^ X__ibii/47:OPa Qa X__ibii/47:OP` Q` X__ibii/47:OPN QNr   r   __main__)rf   r   r;   sysversion_infoqueuer   r<   serpapir   TestCaser   rc   mainrh   r   r   <module>rp      sf     
 
 v  !
zN(## zNz zHMMO r   