
    Ch                         d dl Z d dlZd dlZd dlmZ d dlmZmZ ddlm	Z	 ddl
mZmZmZmZmZmZmZmZmZmZmZmZmZmZmZ 	 d dlmZ  G d d	e	      Zy# e$ r	 d dlmZ Y w xY w)
    N)utils)API_URLSIG_KEY_VERSION   )TestBot)TEST_CAPTION_ITEMTEST_COMMENT_ITEMTEST_COMMENT_LIKER_ITEMTEST_FOLLOWER_ITEMTEST_FOLLOWING_ITEMTEST_INBOX_THREAD_ITEMTEST_LOCATION_ITEMTEST_MEDIA_LIKERTEST_MOST_RECENT_INVITER_ITEMTEST_PHOTO_ITEMTEST_SEARCH_USERNAME_ITEMTEST_TIMELINE_PHOTO_ITEMTEST_USER_ITEMTEST_USER_TAG_ITEMTEST_USERNAME_INFO_ITEM)patchc                   b   e Zd Zej                  d        Zej                  d        Zej                  d        Zej                  d        Zej                  d        Z	ej                  d        Z
ej                  ej                  j                  ddd	g      d
               Zej                  d        Zej                  d        Zej                  d        Zej                  d        Zej                  d        Zej                  d        Zej                  d        Zej                  d        Zej                  j                  dddg      d        Zej                  ej                  j                  dg dg dg      d               Zej                  ej                  j                  dddg      d               Zej                  ej                  j                  dddg       edd      d                       Zej                  ej                  j                  dd!d"g       edd      d#                      Zej                  ej                  j                  d$g d%       edd      d&                      Zej                  ej                  j                  d$g d'       edd      d(                      Zej                  ej                  j                  d)d*d+ ee d,         fd+d+ ee d,         fd-d.g       edd      d/                      Z!ej                  ej                  j                  dd0d1g      d2               Z"ej                  ej                  j                  d3d4d5g      d6               Z#ej                  ej                  j                  d3d4d5g      d7               Z$ej                  ej                  j                  d8d	dg      d9               Z%ej                  ej                  j                  dd:d;g      d<               Z&ej                  ej                  j                  dd:d;g      d=               Z'ej                  ej                  j                  dd	dg      d>               Z(ej                  ej                  j                  d$d	dg      d?               Z)ej                  ej                  j                  d$d	dg      d@               Z*ej                  ej                  j                  d3d4d5g      dA               Z+ej                  ej                  j                  dBdCdDg      dE               Z,ej                  ej                  j                  dFdGg      ej                  j                  dHdIg      dJ                      Z-ej                  dK        Z.y)L
TestBotGetc           
          d}t        j                  t         j                  dj                  t        |      ddddt
        gdd	
       | j                  j                  |      }|t        t
        d   d         k(  sJ y )N  {api_url}media/{media_id}/info/api_urlmedia_idTr   okFauto_load_more_enablednum_resultsstatusmore_availableitems   jsonr$   userpk)		responsesaddGETformatr   r   botget_media_ownerstr)selfr   owners      ]/var/www/html/Telegram-Engagement-Pod-/env/lib/python3.12/site-packages/tests/test_bot_get.pytest_get_media_ownerzTestBotGet.test_get_media_owner#   s    MM-44( 5  +/ "')* 	
& ((2OF3D9::::    c           
         d}t        j                  t         j                  dj                  t        |      ddddt
        gdd	
       i }t
        D ]  }t
        |   ||<    | j                  j                  |      }|d   |k(  sJ y )Nr   r   r   Tr   r    Fr!   r'   r(   r   )r,   r-   r.   r/   r   r   r0   get_media_info)r3   r   expected_resultkeyresults        r5   test_get_media_infozTestBotGet.test_get_media_infoB   s    MM-44( 5  +/ "')* 	
& "C#23#7OC  # ((2ayO+++r7   c                    d}t        j                  t         j                  dj                  t        | j
                  j                  j                        d|ddt        |      D cg c]  }t        
 c}dd	       | j
                  j                         }|t        |      D cg c]  }t        t        d
          c}k(  sJ t        |      |k(  sJ y c c}w c c}w )N   z]{api_url}feed/popular/?people_teaser_supported=1&rank_token={rank_token}&ranked_content=true&r   
rank_tokenTr    Fr!   r'   r(   id)r,   r-   r.   r/   r   r0   apirA   ranger   get_popular_mediasr2   lenr3   results_mediass       r5   test_get_popular_mediasz"TestBotGet.test_get_popular_mediasa   s    MMBfW1H1HfI*.&"'38>B>a/>B 	
  ,,.eGnMn#od34nMMMM6{g%%% C Ns   &C&Cc                    t         d   dz   | j                  _        d}t        j                  t        j
                  dj                  t              d|ddd dt        |      D cg c]  }t        
 c}d	d
       t        j                  t        j
                  dj                  t              ddid       | j                  j                         }|t        |      D cg c]  }t         d    c}k(  sJ t        |      |k(  sJ | j                  j                         }|g k(  sJ t        |      dk(  sJ y c c}w c c}w )N
like_countr      {api_url}feed/timeline/r   Tr    Fr"   r#   is_direct_v2_enabledr$   next_max_idr%   
feed_itemsr'   r(   r$   fail  rB   r   )r   r0   max_likes_to_liker,   r-   POSTr/   r   rD   r   get_timeline_mediasrF   rG   s       r5   test_get_timeline_mediasz#TestBotGet.test_get_timeline_mediasy   s-   %4\%BQ%F"NN%,,W,=*.&(,#"'AFwPA7P 	
 	NN%,,W,=F#		
 --/wHA/$/HHHH6{g%%%--/||6{a' Q Is   $D:!D?c                 p   d}t        j                  t         j                  dj                  t              d|ddd dt        |      D cg c]  }t        
 c}dd	       t        j                  t         j                  dj                  t              d
did	       | j                  j                         }|t        |      D cg c]  }t        t        d   d   d          c}k(  sJ t        |      |k(  sJ | j                  j                         }|g k(  sJ t        |      dk(  sJ y c c}w c c}w )NrN   rO   rP   Tr    FrQ   r'   r(   r$   rU   rV   media_or_adr*   r+   r   )r,   r-   rX   r/   r   rD   r   r0   get_timeline_usersr2   rF   )r3   rH   rI   userss       r5   test_get_timeline_usersz"TestBotGet.test_get_timeline_users   s6   NN%,,W,=*.&(,#"'AFwPA7P 	
 	NN%,,W,=F#		
 ++-7^
# (7?EF#
 
 	
 
 5zW$$$++-{{5zQ- Q
s   	D.D3c                    d}t        j                         }| j                  |d   d<   d|ddt        |      D cg c]  }| c}d}t	        j
                  t        j                  dj                  t        | j                  j                  | j                  j                  j                  	      |d
       | j                  j                         }|t        |      D cg c]  }|d   	 c}k(  sJ t        |      |k(  sJ | j                  j                  d      }||d   k(  sJ t        |      |k(  sJ y c c}w c c}w )Nr?   r*   r+   Tr    Fr!   {api_url}feed/user/{user_id}/r   user_idrA   r'   r(   rB   as_dictr&   )r   copyUSER_IDrD   r,   r-   r.   r/   r   r0   rc   rC   rA   get_your_mediasrF   r3   rH   my_test_photo_itemrI   response_datarJ   s         r5   test_get_your_mediaszTestBotGet.test_get_your_medias   s:   ,113+/<<6"4(&*"#27.A.Q(.A
 	MM+22((88<<22 3 
 		
 ))+E'NKNq,T2NKKKK6{g%%%))$)7w////6{g%%%+ B Ls   	D9D>rc   I
1234567890c                    d}t        j                         }||d   d<   g }t        |      D ]!  }|j                  |j                                # d}d|d   d<   |dz  }| j                  j
                  dz   |d   d	<   |dz  }| j                  j
                  dz
  |d
   d	<   |dz  }d|dd|d}t        j                  t        j                  dj                  t        || j                  j                  j                        |d       | j                  j                  |dd      }||D 	cg c]  }	|	d   	 c}	k(  sJ t        |      |k(  sJ | j                  j                  |dd      }||D 	cg c]D  }	|	d   s=|	d	   | j                  j
                  k  r!|	d	   | j                  j                  kD  r|	d   F c}	k(  sJ t        |      ||z
  k(  sJ y c c}	w c c}	w )N   r*   r+   r   Tr   	has_liked   rM      r    Fr!   ra   rb   r'   r(   )
filtration
is_commentrB   )r   rf   rD   appendr0   rW   r,   r-   r.   r/   r   rC   rA   get_user_mediasrF   min_likes_to_like)
r3   rc   rH   rj   my_test_photo_itemsrI   expect_filteredrk   rJ   test_photo_items
             r5   test_get_user_mediaszTestBotGet.test_get_user_medias   s'    ,113+26"4( wA&&'9'>'>'@A  .2A{+1/3xx/I/IA/MA|,1/3xx/I/IA/MA|,1&*"#(
 	MM+22TXX\\=T=T 3  	
 ))'ePU)V9L
9LoOD!9L
 
 	
 
 6{g%%%))'du)U#6
#6#K0#L1DHH4N4NN#L1DHH4N4NN D!#6
 
 	
 
 6{g7777

s   -G3A	Gc                 \   d}t        j                         }| j                  |d   d<   d|ddt        |      D cg c]  }| c}d}t	        j
                  t        j                  dj                  t        | j                  j                  j                  	      |d
       | j                  j                         }|t        |      D cg c]  }|d   	 c}k(  sJ t        |      |k(  sJ | j                  j                  d      }||d   k(  sJ t        |      |k(  sJ y c c}w c c}w )Nr?   r*   r+   Tr    Fr!   zH{api_url}feed/only_me_feed/?rank_token={rank_token}&ranked_content=true&r@   r'   r(   rB   rd   r&   )r   rf   rg   rD   r,   r-   r.   r/   r   r0   rC   rA   get_archived_mediasrF   ri   s         r5   test_get_archived_mediasz#TestBotGet.test_get_archived_medias  s%   ,113+/<<6"4(&*"#27.A.Q(.A
 	MM)fW1H1HfI	
 --/E'NKNq,T2NKKKK6{g%%%--d-;w////6{g%%%) B Ls   	D$
D)c           	         d}d}t         }d|| j                  j                  j                  dt	        |      D cg c]  }| c}d}t        j                  t
        j                  dj                  t        | j                  j                  j                  |t              |d	       | j                  j                  |      }|t	        |      D cg c]  }t        |d
          c}k(  sJ t        |      |k(  sJ y c c}w c c}w )Nr?   testTr    )has_morer#   rA   r$   r^   k{api_url}users/search/?ig_sig_key_version={sig_key}&is_typeahead=true&query={query}&rank_token={rank_token}r   rA   querysig_keyr'   r(   r+   )r   r0   rC   rA   rD   r,   r-   r.   r/   r   r   search_usersr2   rF   )r3   rH   r   my_test_user_itemrI   rk   rJ   s          r5   test_search_userszTestBotGet.test_search_users7  s    *"((,,1116w@A'@
 	MMLf88<<22'	   	
 &&u-gO1#/56OOOO6{g%%%) A& Ps   	C>Dc           	         d}ddi}t        j                  t         j                  dj                  t        | j
                  j                  j                  |t              |d       | j
                  j                  |      }|g k(  sJ y )Nr   r$   rU   r   r   r'   r(   )
r,   r-   r.   r/   r   r0   rC   rA   r   r   )r3   r   rk   rJ   s       r5   test_search_users_failedz#TestBotGet.test_search_users_failedW  s}    !6*MMMf88<<22'	   	
 &&u-||r7   c                 P   d}t         dddt        |      D cg c]  }t        
 c}dddg dd
}d}t        j                  t        j
                  d	j                  t        |
      |d       | j                  j                  |      }||d   k(  sJ t        |      |k(  sJ y c c}w )Nr?   Frp   Tnoner    
captioncaption_is_editedcomment_countcomment_likes_enabledcommentshas_more_commentshas_more_headload_commentsmedia_header_displaypreview_commentsr$   rm   ${api_url}media/{media_id}/comments/?r   r'   r(   r   r   rD   r	   r,   r-   r.   r/   r   r0   get_media_commentsrF   )r3   rH   rI   rk   r   r   s         r5   test_get_commentszTestBotGet.test_get_commentsn  s    (!&%)49'NCNq*NC!&*/$* "
 MM299( :  	
 88..x8=44448}'''' Ds   B#c                    d}t         dddt        |      D cg c]  }t        
 c}dddg dd
}d}t        j                  t        j
                  d	j                  t        |
      |d       | j                  j                  |d      }|d   D cg c]  }|d   	 }}||k(  sJ t        |      |k(  sJ y c c}w c c}w )Nr?   Frp   Tr   r    r   rm   r   r   r'   r(   )	only_textr   textr   )r3   rH   rI   rk   r   r   commentr:   s           r5   test_get_comments_textz!TestBotGet.test_get_comments_text  s    (!&%)49'NCNq*NC!&*/$* "
 MM299( :  	
 88..x4.H:G
:ST:Sw76?:ST?***8}'''+ D$ Us   B7B<c                     ddi}d}t        j                  t         j                  dj                  t        |      |d       | j
                  j                  |      }|g k(  sJ y Nr$   rU   rm   r   r   r'   r(   )r,   r-   r.   r/   r   r0   r   )r3   rk   r   r   s       r5   test_get_comments_failedz#TestBotGet.test_get_comments_failed  sf    !6*MM299( :  	
 88..x82~~r7   c                    d}t         dddt        |      D cg c]  }t        
 c}dddg dd
}d}t        j                  t        j
                  d	j                  t        |
      |d       t        |      D cg c]  }t        t        d   d          }}| j                  j                  |      }||k(  sJ t        |      |k(  sJ y c c}w c c}w )Nr?   Frp   Tr   r    r   rm   r   r   r'   r(   r*   r+   )r   rD   r	   r,   r-   r.   r/   r   r2   r0   get_media_commentersrF   )r3   rH   rI   rk   r   expected_commenters
commenterss          r5   test_get_commenterszTestBotGet.test_get_commenters  s    (!&%)49'NCNq*NC!&*/$* "
 MM299( :  	
 ;@.
:HQC!&)$/0. 	 
 XX228<
0000:')))/ D"
s   C:Cc                     ddi}d}t        j                  t         j                  dj                  t        |      |d       g }| j
                  j                  |      }||k(  sJ y r   )r,   r-   r.   r/   r   r0   r   )r3   rk   r   r   r   s        r5   test_get_commenters_failedz%TestBotGet.test_get_commenters_failed  so    !6*MM299( :  	
 !XX228<
0000r7   z
url,result)z(https://www.instagram.com/p/BfHrDvCDuzC/l   l0=> )r   Fc                 H    | j                   j                  |      }||k(  sJ y )N)r0   get_media_id_from_link)r3   urlr<   r   s       r5   +test_get_media_id_from_link_with_wrong_dataz6TestBotGet.test_get_media_id_from_link_with_wrong_data  s&     882237!!!r7   r   )comment1comment2comment3Nc                    t        j                         d   }t        j                  |d      | j                  _        |ri|D ]'  }| j                  j
                  j                  |       ) | j                  j                         | j                  j
                  j                  v sJ y | j                  j                         dk(  sJ y )Nr   T)verbosezWow!)	tempfilemkstempr   filer0   comments_filerv   get_commentlist)r3   r   fnamer   s       r5   test_get_commentzTestBotGet.test_get_comment  s    
   "1%!&E4!@#&&--g6 $88'')TXX-C-C-H-HHHH88'')V333r7   r   1234c                    dt         d}i }t         D ]  }t         |   ||<    t        j                  t        j                  dj	                  t
        |      d|       | j                  j                  |      }||k(  sJ y )Nr    r$   r*   {api_url}users/{user_id}/info/r   rc   r'   r$   r)   )r   r,   r-   r.   r/   r   r0   get_user_info)r3   rc   rk   r:   r;   r<   s         r5   test_get_username_infoz!TestBotGet.test_get_username_info  s     $(1HI*C#:3#?OC  + 	MM,33GW3U		
 ''0(((r7   z
time.sleep)return_valuec                     dt         d}t        t         d         }t        j                  t        j                  dj                  t        |      d|       | j                  j                  |      }||k(  sJ y )Nr    r   usernamer   r   r'   r   )	r   r2   r,   r-   r.   r/   r   r0   get_username_from_user_id)r3   patched_time_sleeprc   rk   expected_user_idr<   s         r5   test_get_username_from_user_idz)TestBotGet.test_get_username_from_user_id  sq     $(1HI6zBCMM,33GW3U		
 33G<))))r7   123231231231234l   EP@ c                     ddd}t        j                  t         j                  dj                  t        |      d|       | j
                  j                  |      rJ y )NrU   User not foundr$   messager   r     r   )r,   r-   r.   r/   r   r0   r   )r3   r   rc   rk   s       r5   "test_get_username_from_user_id_404z-TestBotGet.test_get_username_from_user_id_404,  sX     $*6FGMM,33GW3U		
 8855g>>>>r7   r   )@testr   r   c                 $   dt         d}t        t         d         }t        j                  t        j                  dj                  t        |      d|       | j                  j                  |      }| j                  j                  |= ||k(  sJ y )Nr    r   r+   '{api_url}users/{username}/usernameinfo/r   r   r'   r   )
r   r2   r,   r-   r.   r/   r   r0   get_user_id_from_username
_usernames)r3   r   r   rk   r   r<   s         r5   test_get_user_id_from_usernamez)TestBotGet.test_get_user_id_from_username:  s     $(1JK8>?MM5<<( =  	
 33H=HH)))))r7   )usernotfoundnottexisteduserr   c                     ddd}t        j                  t         j                  dj                  t        |      d|       | j
                  j                  |      rJ y )NrU   r   r   r   r   r   r   )r,   r-   r.   r/   r   r0   r   )r3   r   r   rk   s       r5   "test_get_user_id_from_username_404z-TestBotGet.test_get_user_id_from_username_404O  s_     $*6FGMM5<<( =  	
 8855h????r7   zusername,url,resultr   r   r+   )r   r   r   )r   r   r   c                     dt         d}t        j                  t        j                  dj	                  t
        |      d|       | j                  j                  |      }||k(  sJ y )Nr    r   r   r   r'   r   )r   r,   r-   r.   r/   r   r0   convert_to_user_id)r3   r   r   r   r<   rk   rc   s          r5   test_convert_to_user_idz"TestBotGet.test_convert_to_user_ida  sf     $(1JKMM5<<# =  	
 ((--h7   r7   
3998456661l   U\ c                    d}t        j                  t         j                  dj                  t        || j
                  j                  j                        d|dt        |      D cg c]  }t        
 c}d|dg dd	       | j
                  j                  |      }|t        |      D cg c]  }t        t        d
          c}k(  sJ t        |      |k(  sJ y c c}w c c}w )NrN   zN{api_url}usertags/{user_id}/feed/?rank_token={rank_token}&ranked_content=true&rb   r    TF)r$   r#   r"   r&   r%   total_countrequires_review
new_photosr'   r(   r+   )r,   r-   r.   r/   r   r0   rC   rA   rD   r   get_user_tags_mediasr2   rF   )r3   rc   rH   rI   rJ   s        r5   test_get_user_tags_mediasz$TestBotGet.test_get_user_tags_medias{  s     MM*fTXX\\=T=T   &*.6;GnEn,nE"'&#( 	 %	
* ..w7wPA#067PPPP6{g%%% F Qs   &C+C!hashtaghashtag1hashtag2c           	         d}t        j                         }| j                  j                  dz   |d<   g }t	        |      D ]!  }|j                  |j                                # d}d|d   d<   |dz  }| j                  j                  dz   |d   d<   |dz  }| j                  j                  dz
  |d   d<   |dz  }d|d	d
|d}t        j                  t        j                  dj                  t        |d| j                  j                  j                        |d       | j                  j                  |d
      }||D 	cg c]  }	|	d   	 c}	k(  sJ t        |      |k(  sJ | j                  j                  |d      }||D 	cg c]D  }	|	d   s=|	d   | j                  j                  k  r!|	d   | j                  j                  kD  r|	d   F c}	k(  sJ t        |      ||z
  k(  sJ y c c}	w c c}	w )Nr?   r   rM   r   Trq   rr   rs   r    Fr!   Y{api_url}feed/tag/{hashtag}/?max_id={max_id}&rank_token={rank_token}&ranked_content=true& r   r   max_idrA   r'   r(   )rt   rB   )r   rf   r0   rx   rD   rv   rW   r,   r-   r.   r/   r   rC   rA   get_hashtag_mediasrF   
r3   r   rH   rj   ry   rI   rz   rk   rJ   r{   s
             r5   test_get_hashtag_mediasz"TestBotGet.test_get_hashtag_medias  s2    ,113+/88+E+E+I<( wA&&'9'>'>'@A  .2A{+1/3xx/I/IA/MA|,1/3xx/I/IA/MA|,1&*"#(
 	MM6f88<<22	   	
 ,,W,G9L
9LoOD!9L
 
 	
 
 6{g%%%,,W,F#6
#6#K0#L1DHH4N4NN#L1DHH4N4NN D!#6
 
 	
 
 6{g7777

s   G*A	G/c           	         d}d}t        j                         }| j                  j                  dz   |d<   g }t	        |      D ]!  }|j                  |j                                # d}d|d   d<   |dz  }| j                  j                  dz   |d   d<   |dz  }| j                  j                  dz
  |d	   d<   |dz  }d|d
dt         d   |d}t        j                  t        j                  dj                  t        |d| j                  j                  j                        |d       | j                  j                  ||d      }	|	|d | D 
cg c]  }
|
d   	 c}
k(  sJ t        |	      |k(  sJ | j                  j                  ||d      }	|	|d | D 
cg c]D  }
|
d   s=|
d   | j                  j                  k  r!|
d   | j                  j                  kD  r|
d   F c}
k(  sJ t        |	      ||z
  k(  sJ y c c}
w c c}
w )Nr?   
   r   rM   r   Trq   rr   rs   r    rB   )r"   r#   r$   r%   rS   r&   r   r   r   r'   r(   F)amountrt   )r   rf   r0   rx   rD   rv   rW   r,   r-   r.   r/   r   rC   rA   get_total_hashtag_mediasrF   )r3   r   r   rH   rj   ry   rI   rz   rk   rJ   r{   s              r5   test_get_total_hashtag_mediasz(TestBotGet.test_get_total_hashtag_medias  s`    ,113+/88+E+E+I<( wA&&'9'>'>'@A  .2A{+1/3xx/I/IA/MA|,1/3xx/I/IA/MA|,1&*""*40(
 	MMBf88<<22	   	
 22Fu 3 
 9LWf9U
9UoOD!9U
 
 	
 
 6{f$$$22Ft 3 
 #6w#?
#?#K0#L1DHH4N4NN#L1DHH4N4NN D!#?
 
 	
 
 6{f6666#

s   G<A	Hr   c           
         d}t        j                  t         j                  dj                  t        |      |dt        |      D cg c]  }t        
 c}dd       | j                  j                  |      }|t        |      D cg c]  }t        t        d          c}k(  sJ t        |      |k(  sJ y c c}w c c}w )	Nr?   "{api_url}media/{media_id}/likers/?r   r    
user_countr$   r^   r'   r(   r+   )r,   r-   r.   r/   r   rD   r   r0   get_media_likersr2   rF   )r3   r   rH   rI   rJ   s        r5   test_get_media_likersz TestBotGet.test_get_media_likers  s     MM077( 8  &49'NCNq*NC
 	
 **84uW~N~!#.t45~NNNN6{g%%% D Os   B8B=   19c           
         d}d|ddt        |      D cg c]  }t        
 c}d}t        j                  t        j                  dj                  t        |dd | j                  j                  j                        |d	
       | j                  j                  ||      }|t        |      D cg c]  }t        d    c}k(  sJ t        |      |k(  sJ y c c}w c c}w )Nr?   Tr    Fr!   w{api_url}feed/user/{user_id}/?max_id={max_id}&min_timestamp={min_timestamp}&rank_token={rank_token}&ranked_content=truer   r   rc   r   min_timestamprA   r'   r(   )countrB   )rD   r   r,   r-   r.   r/   r   r0   rC   rA   get_last_user_mediasrF   r3   rc   rH   rI   rk   rJ   s         r5   test_get_last_user_mediasz$TestBotGet.test_get_last_user_medias)  s     &*"#/4W~>~!o~>
 	MMQf"88<<22   	
  ..wg.FwHA/$/HHHH6{g%%%- ?* Is   C.Cc           
         d}d|ddt        |      D cg c]  }t        
 c}d}t        j                  t        j                  dj                  t        |dd | j                  j                  j                        |d	
       | j                  j                  |      }|t        |      D cg c]  }t        d    c}k(  sJ t        |      |k(  sJ y c c}w c c}w )N   Tr    Fr!   r   r   r  r'   r(   rB   )rD   r   r,   r-   r.   r/   r   r0   rC   rA   get_total_user_mediasrF   r  s         r5   test_get_total_user_mediasz%TestBotGet.test_get_total_user_mediasK  s     &*"#/4W~>~!o~>
 	MMQf"88<<22   	
  //8wHA/$/HHHH6{g%%%+ ?( Is   C,Cc                 *   d}t        j                  t         j                  dj                  t        |dd | j
                  j                  j                        d|ddt        |      D cg c]  }t        
 c}dd	
       d}t        j                  t         j                  dj                  t        t        d         |dt        |      D cg c]  }t        
 c}dd	
       | j
                  j                  |      }|t        t        |      D ch c]  }t        t        d          c}      k(  sJ t        |      t        t        t        |      D ch c]  }t        t        d          c}            k(  sJ y c c}w c c}w c c}w c c}w )Nr   r   r   r  Tr    Fr!   r'   r(   rs   r   rB   r   r   r+   )r,   r-   r.   r/   r   r0   rC   rA   rD   r   r   get_user_likersr   r2   rF   )r3   rc   	results_1rI   	results_2user_idss         r5   test_get_user_likerszTestBotGet.test_get_user_likersl  s    	MMQf"88<<22   +/("'383CD3Ca/3CD '	
, 	MM077/$*? 8  (49)4DE4Dq*4DE
 	
 88++G44eIFV WFV%5d%;!<FV WXXXX8}uY7GH7G!#&t,-7GHI!
 
 	
 
- E F !XHs   )FFF
Fc                    d}dt         d}t        j                  t        j                  dj	                  t
        |      d|       dt        d}t        j                  t        j                  dj	                  t
        |	      d|       d
}ddd d t        |      D cg c]  }t        
 c}d}t        j                  t        j                  dj	                  t
        || j                  j                  j                        |d       | j                  j                  |      }|t        |      D cg c]  }t        t        d          c}k(  sJ y c c}w c c}w )Ntest.usernamer    r   r   r   r'   r   r   r   r?   Fr$   big_listrS   sectionsr^   zA{api_url}friendships/{user_id}/followers/?rank_token={rank_token}rb   r(   r+   )r   r,   r-   r.   r/   r   r   rD   r   r0   rC   rA   get_user_followersr2   	r3   r   test_usernameresponse_data_1response_data_2	results_3rI   response_data_3r  s	            r5   test_get_user_followersz"TestBotGet.test_get_user_followers  sI    (%)3LMMM5<<- =   	
 &*3JKMM,33GX3V 		
 	27	2BC2BQ(2BC
 	MMXfdhhll>U>U   !		
 88..x85CSTCSaC 24 89CSTTTT D Us    E6Ec           
         d}dt         d}t        j                  t        j                  dj	                  t
        |      d|       dt        d}t        j                  t        j                  dj	                  t
        |	      d|       d
}ddd d t        |      D cg c]  }t        
 c}d}t        j                  t        j                  dj	                  t
        || j                  j                  j                  t        d      |d       | j                  j                  |      }|t        |      D cg c]  }t        t        d          c}k(  sJ y c c}w c c}w )Nr  r    r   r   r   r'   r   r   r   r?   Fr  zn{api_url}friendships/{user_id}/following/?max_id={max_id}&ig_sig_key_version={sig_key}&rank_token={rank_token}r   )r   rc   rA   r   r   r(   r+   )r   r,   r-   r.   r/   r   r   rD   r   r0   rC   rA   r   get_user_followingr2   r  s	            r5   test_get_user_followingz"TestBotGet.test_get_user_following  sT    (%)3LMMM5<<- =   	
 &*3JKMM,33GX3V 		
 	383CD3Ca)3CD
 	MMJf 88<<22'   !	
  88..x8E)DTUDTqC 3D 9:DTUUUU) E( Vs    E<E"c           	         d}t        j                         }| j                  j                  dz   |d<   g }t	        |      D ]!  }|j                  |j                                # d}d|d   d<   |dz  }| j                  j                  dz   |d   d<   |dz  }| j                  j                  dz
  |d   d<   |dz  }d|d	d
|d}t        j                  t        j                  dj                  t        |d| j                  j                  j                        |d       | j                  j                  |      }||D 	cg c]  }	t        |	d   d          c}	k(  sJ t!        |      |k(  sJ y c c}	w )Nr?   r   rM   r   Trq   rr   rs   r    Fr!   r   r   r   r'   r(   r*   r+   )r   rf   r0   rx   rD   rv   rW   r,   r-   r.   r/   r   rC   rA   get_hashtag_usersr2   rF   r   s
             r5   test_get_hashtag_usersz!TestBotGet.test_get_hashtag_users  s    ,113+/88+E+E+I<( wA&&'9'>'>'@A  .2A{+1/3xx/I/IA/MA|,1/3xx/I/IA/MA|,1&*"#(
 	MMBf88<<22	   	
 ++G4#6
#6 '-.#6
 
 	
 
 6{g%%%	
s   ?E/
comment_id12345678901234567l   K:Qq^c                    d}dt        |      D cg c]  }t        
 c}d}t        j                  t        j                  dj                  t        |      |d       | j                  j                  |      }|t        |      D cg c]  }t        t        d          c}k(  sJ t        |      |k(  sJ y c c}w c c}w )	Nr?   r    )r$   r^   z,{api_url}media/{comment_id}/comment_likers/?)r   r$  r'   r(   r+   )rD   r
   r,   r-   r.   r/   r   r0   get_comment_likersr2   rF   )r3   r$  rH   rI   rk   r  s         r5   test_get_comment_likersz"TestBotGet.test_get_comment_likers.  s     7<W~F~!-~F
 	MM:AAJ B  	
 88..z:gW1C 7 =>WWWW8}''' G Xs   B9B>latitudegn?	longitudegT㥛#@c           
         d}dt        |      D cg c]  }t        
 c}| j                  j                  j                  dd}t        j                  t
        j                  dj                  t        | j                  j                  j                  d||      |d	       | j                  j                  ||      }|t        |      D cg c]  }t        
 c}k(  sJ t        |      |k(  sJ y c c}w c c}w )
Nr   Fr    )r   r&   rA   r$   zS{api_url}fbsearch/places/?rank_token={rank_token}&query={query}&lat={lat}&lng={lng}r   )r   rA   r   latlngr'   r(   )rD   r   r0   rC   rA   r,   r-   r.   r/   r   get_locations_from_coordinatesrF   )r3   r)  r*  rH   rI   rk   	locationss          r5   #test_get_locations_from_coordinatesz.TestBotGet.test_get_locations_from_coordinatesB  s     27.A.Q(.A((,,11	
 	MM7f88<<22   	
 HH;;HiP	wHA/HHHH9~(((+ B( Is   C/
C4c                 &   d}ddddt         dddd	t        |      D cg c]  }t        
 c}d
d}t        j                  t        j
                  dj                  t              |d       | j                  j                         }||k(  sJ y c c}w )Nr?   r    rr      l   DNATFr   l   1F~+ )blended_inbox_enabled	has_olderunseen_countunseen_count_tsthreads)r$   pending_requests_totalseq_idsnapshot_at_msmost_recent_inviterinboxz{api_url}direct_v2/inbox/rP   r'   r(   )
r   rD   r   r,   r-   rX   r/   r   r0   get_messages)r3   rH   rI   rk   r<  s        r5   test_get_messageszTestBotGet.test_get_messages`  s    '(,$A*.#!"$4=B7^L^3^L
 	NN'..w.?		
 %%'%%% Ms   B)/__name__
__module____qualname__r,   activater6   r=   rK   rZ   r_   rl   pytestmarkparametrizer|   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r2   r   r   r   r   r   r   r  r
  r  r  r   r#  r(  r0  r>   r7   r5   r   r   "   s   ; ;< , ,< & &.      D " "H & &@ [[Y\(BC18 D 18f & &> & &>  , ( (8 ( (<   * *@ 1 1" [[M	
""
 [[92tD4 4 [[Yv7) 8 )" [[Yv7
<d+* , 8 * [[Y):O(LM
<d+	? , N 	? [[Z)BC
<d+* , D *$ [[J <d+@ , 
@ [[fc";D"ABCVS!:4!@AB$"		
 <d+! , ! [[Yz(BC& D &8 [[YZ(@A68 B 68p [[YZ(@A<7 B <7| [[Z,
)CD& E &( [[YT
3& 4 &@ [[YT
3& 4 &> [[Yz(BC,
 D ,
\ [[Z,
)CD+U E +UZ [[Z,
)CD0V E 0Vd [[YZ(@A+& B +&Z [[\,?AR+ST( U ($ [[Z&2[[[6(3) 4 3 )6 & &r7   r   )r   rC  r,   instabotr   instabot.api.configr   r   test_botr   test_variablesr   r	   r
   r   r   r   r   r   r   r   r   r   r   r   r   unittest.mockr   ImportErrormockr   rF  r7   r5   <module>rN     sZ        8     $#
V& V&	  s   A A$#A$