
    PIi>                         d Z ddlZddlZddlmZ ddlmZ ddlmZm	Z	m
Z
 ddlmZ ddlmZ ddlmZ dd	lmZ dd
lmZ ddlmZ ddlmZ ddlmZ ddl ddl  G d de      Zedk(  re jC                          yy)zz
Unit tests for the Python Facebook Business SDK.

How to run:
    python -m facebook_business.test.integration_adaccount
    N)FacebookSession)FacebookRequestError)FacebookAdsApiFacebookRequestFacebookResponse)	AdAccount)
AdCreative)Ad)Campaign)AdsInsights)AgencyClientDeclaration)Business)ExtendedCreditInvoiceGroup   )*c                   T    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y)AdAccountTestCasec                    t        j                  d      5 }t        j                  | j                  _        t        j                  dt        t        j                        z   dz   t        t        j                        z   dz   t        t        j                        z   dz   t        t        j                        z   dz   t        t        j                        z   dz   t        t        j                        z   dz   t        t        j                        z   dz   t        t        j                        z   dz   t        t        j                        z   dz   t        t        j                        z   dz   t        t        j                        z   dz   t        t        j                        z   dz   t        t        j                         z   dz   t        t        j                         z   dz   t        t        j"                        z   dz   t        t        j"                        z   dz   t        t        j$                        z   dz   t        t        j$                        z   dz   t        t        j&                        z   dz   t        t        j&                        z   dz   t        t        j(                        z   dz   t        t        j(                        z   dz   t        t        j*                        z   dz   t        t        j*                        z   dz   t        t        j,                        z   dz   t        t        j,                        z   dz   t        t        j.                        z   dz   t        t        j.                        z   dz   t        t        j0                        z   dz   t        t        j0                        z   dz         | j                  _        | j                  | j4                  _        t        j                  t        j                  t        j                  t        j                  t        j                  t        j                   t        j"                  t        j$                  t        j&                  t        j(                  t        j*                  t        j,                  t        j.                  t        j0                  g}i }t9        t        j                        j;                  ||	      }| j=                  t?        |      d
       | jA                  tC        |t8                     | j=                  |t        j                     t        j                         | j=                  |t        j                     t        j                         | j=                  |t        j                     t        j                         | jA                  tC        |t        j                     tD                     | j=                  |t        j                     t        j                         | jA                  tC        |t        j                      tF                     | j=                  |t        j"                     t        j"                         | j=                  |t        j$                     t        j$                  g       | j=                  |t        j&                     t        j&                         | j=                  |t        j(                     t        j(                         | jA                  tC        |t        j*                     tH                     | j=                  |t        j,                     tK        jL                  t        j,                        g       | j=                  |t        j.                     t        j.                         | j=                  |t        j0                     tK        jL                  t        j0                               d d d        y # 1 sw Y   y xY w)NTrecord{"":"z","z":z,"}fieldsparamsr   )'warningscatch_warnings
StatusCodeSUCCESSmock_responsestatus_codestrencode	FieldName
ACCOUNT_ID	TestValueACCOUNT_STATUSAGEAGENCY_CLIENT_DECLARATIONAMOUNT_SPENTBALANCEBUSINESSBUSINESS_CITYCAPABILITIESCURRENCYDISABLE_REASONEXTENDED_CREDIT_INVOICE_GROUPFAILED_DELIVERY_CHECKSHAS_PAGE_AUTHORIZED_ADACCOUNTTOS_ACCEPTED_contentmock_requestreturn_valuer   api_getassertEquallen
assertTrue
isinstancer   r   r   jsonloadsselfwarningr   r   accounts        z/var/www/webhook.estador.de/web/meta/bot/venv/lib/python3.12/site-packages/facebook_business/test/integration_adaccount.pytest_get_adaccountz$AdAccountTestCase.test_get_adaccount.   s   $$D1 >	bW-7-?-?D**-**)../0278:=i>R>R:STW)22346:;=@AYAY=Z[^ )--() ,11 47y}}3EFI )==>	? BF	F ILILoLoHp	qt	
 )0012
 5::
 =@	@V@V<WX
[ )++,- 055 8;9;L;L7MNQ ),,-. 155 8;9;M;M7NOR )1123 6;; >AAXAX=YZ]	 )001	2 5:	: =@	@V@V<W	X[
 ),,-
. 16
6 9<I<N<N8O
PS )2234 7;; >AAYAY=Z[^ )AABC FJJ MPPYPwPwLxy| )::;< ?CC FIIiIiEjkn )AABC FKK NQQZQxQxMyz} )0012 599 <?y?U?U;VWZ+D'( .2-?-?D* $$((33!!""''&&""((770077&&F  F	 4 45== > G
 S\1-OOJw	:;WY%9%9:9;O;OPWY%=%=>	@X@XYWY]]3Y]]COOJwy/R/R'SUlmnWY%6%679J9JKOOJwy/A/A'BHMNWY%<%<=y?V?VWWY%;%;<y?U?U>VWWY%7%78):L:LMWY%=%=>	@X@XYOOJwy/V/V'WYstuWY%E%EFT]TtTtIuHvwWY%L%LMyOvOvwWY%;%;<djjI_I_>`a}>	b >	b >	bs   __22_;c                    t        j                  d      5 }t        j                  | j                  _        | j                  | j                  _        dg}i }| j                  t              5  t        t        j                        j                  ||      }d d d        | j                  t        |      d       | j!                  t#        |d   j$                  t&                     d d d        y # 1 sw Y   YxY w# 1 sw Y   y xY wNTr   unexist_fieldr   r   r   )r   r   r   ERRORr!   r"   r7   r8   assertRaisesr   r   r'   r&   r9   r:   r;   r<   
issubclasscategoryUserWarningr@   s        rD   $test_get_adaccount_with_wrong_fieldsz6AdAccountTestCase.test_get_adaccount_with_wrong_fieldsp   s    $$D1 	JW-7-=-=D*-1-?-?D*  F F""#78 #I$8$89AA!! B  S\1-OOJwqz':':KHI!	J 	J 	J 	J%   AC;,+C/AC;/C8	4C;;Dc                    t        j                  d      5 }t        j                  | j                  _        t        j                  dt        t        j                        z   dz   t        t        j                        z   dz         | j                  _        | j                  | j                  _        g }t        j                  t        j                  t        j                   t        j                   t        j"                  t        j"                  t        j$                  t        j$                  t        j&                  t        j&                  i}t)        t        j*                        j-                  ||      }| j/                  t1        |      d       | j3                  t5        |t6                     | j/                  |t        j                     t        j                         d d d        y # 1 sw Y   y xY w)NTr   r   r   z", "success": "true"}r   )r   r   r   r    r!   r"   r#   r$   r%   IDr'   r&   r6   r7   r8   AD_ACCOUNT_CREATED_FROM_BM_FLAGr0   INVOICENAMETIMEZONE_IDr   BUSINESS_IDcreate_ad_accountr:   r;   r<   r=   r   r@   s        rD   test_create_adaccountz'AdAccountTestCase.test_create_adaccount   sh   $$D1 	JW-7-?-?D**-**TC	<M5MPU5UX[\e\p\pXq5q  uL  6L  +MD'-1-?-?D*F999;d;d""I$6$6!!9#4#4	%%y'<'<F y445GGG
 S\1-OOJw	:;WY\\2I4H4HI+	J 	J 	Js   GG''G0c                    t        j                  d      5 }t        j                  | j                  _        | j                  | j                  _        g }ddd}| j                  t              5  t        t        j                        j                  ||      }d d d        | j                  t        |      d       | j!                  t#        |d   j$                  t&                     d d d        y # 1 sw Y   YxY w# 1 sw Y   y xY w)NTr   r   abc)invoicetimezone_id   )r   r   r   rI   r!   r"   r7   r8   rJ   r   r   r'   rV   rW   r:   r;   r<   rK   rL   rM   r@   s        rD   'test_create_adaccount_with_wrong_paramsz9AdAccountTestCase.test_create_adaccount_with_wrong_params   s    $$D1 	KW-7-=-=D*-1-?-?D*F$F ""#78 "9#8#89KK S\1-OOJwr{';';[IJ!	K 	K 	K 	Ks%   AC<.*C0AC<0C9	5C<<Dc                 T   t        j                  d      5 }t        j                  | j                  _        t        j                  dt        t        j                        z   dz   t        t        j                        z   dz         | j                  _        | j                  | j                  _        t        j                  g}t        j                  t        j                  gt        j                   t        j                   gt        j"                  t        j"                  t        j$                  t        j$                  t        j&                  t        j&                  t        j(                  t        j(                  gi}t+        t        j                        j-                  ||      }| j/                  t1        |      d       | j3                  t5        |d   t6                     | j/                  |d   t        j                     t        j                         d d d        y # 1 sw Y   y xY wNTr   r   r   z"}r   r   )r   r   r   r    r!   r"   r#   r$   r%   rQ   r'   r&   r6   r7   r8   ACTION_ATTRIBUTION_WINDOWSACTION_BREAKDOWNSACTION_REPORT_TIMEDATE_PRESETLEVELSUMMARY_ACTION_BREAKDOWNSr   get_insightsr:   r;   r<   r=   r   rA   rB   r   r   ad_insightss        rD   test_get_insightsz#AdAccountTestCase.test_get_insights   s   $$D1 	QW-7-?-?D**-**),,'(*/025i6J6J2KLO+D' .2-?-?D* $$F 44y7[7[6\++i.I.I-J,,i.J.J%%y'<'<33i6Y6Y5ZF $I$8$89FF G K
 S\1-OOJ{1~{CD[^ILL99;O;OP;	Q 	Q 	Qs   G>HH'c                 L   t        j                  d      5 }t        j                  | j                  _        | j                  | j                  _        dg}t        j                  dt        j                  di}| j                  t              5  t        t        j                        j!                  ||      }d d d        | j#                  t%        |      d       | j'                  t)        |d   j*                  t,                     d d d        y # 1 sw Y   YxY w# 1 sw Y   y xY w)NTr   unexisted_fieldinvalide_datewrong_level   r^   )r   r   r   rI   r!   r"   r7   r8   r%   re   rf   rJ   r   r   r'   r&   rh   r:   r;   r<   rK   rL   rM   ri   s        rD   .test_get_insights_with_wrong_fields_and_paramsz@AdAccountTestCase.test_get_insights_with_wrong_fields_and_params   s    $$D1 	KW-7-=-=D*-1-?-?D* "F %%F ""#78 '	(<(<=JJ S\1-OOJwr{';';[IJ%	K 	K 	K 	Ks%   A5D*D6ADD	DD#c                    t        j                  d      5 }t        j                  | j                  _        t        j                  dt        t        j                        z   dz   t        t        j                        z   dz         | j                  _        | j                  | j                  _        t        j                  g}i }t        t        j                        j!                  ||      }| j#                  t%        |      d       | j'                  t)        |d   t*                     | j#                  |d   t        j                     t        j                         d d d        y # 1 sw Y   y xY wra   )r   r   r   r    r!   r"   r#   r$   r%   rT   r'   r6   r7   r8   r   r&   get_ad_creativesr:   r;   r<   r=   r	   rA   rB   r   r   	creativess        rD   test_get_ad_creativesz'AdAccountTestCase.test_get_ad_creatives   s3   $$D1 	KW-7-?-?D**-**)..)*,1247	4GHK+D' .2-?-?D* F F!)"6"67HH I I
 S\1-OOJy|Z@AYq\)..99>>J-	K 	K 	Ks   EE''E0c                    t        j                  d      5 }t        j                  | j                  _        | j                  | j                  _        dg}i }| j                  t              5  t        t        j                        j                  ||      }d d d        | j                  t        |      d       | j!                  t#        |d   j$                  t&                     d d d        y # 1 sw Y   YxY w# 1 sw Y   y xY wrG   )r   r   r   rI   r!   r"   r7   r8   rJ   r   r   r'   r&   rs   r:   r;   r<   rK   rL   rM   rt   s        rD   'test_get_ad_creatives_with_wrong_fieldsz9AdAccountTestCase.test_get_ad_creatives_with_wrong_fields  s    $$D1 	JW-7-=-=D*-1-?-?D*  F F""#78 %i&:&:;LL!! M 	 S\1-OOJwqz':':KHI	J 	J 	J 	JrO   c                    t        j                  d      5 }t        j                  | j                  _        t        j                  dt        t        j                        z   dz   t        t        j                        z   dz         | j                  _        | j                  | j                  _        t        j                  g}t        j                  t        j                  t        j                  t        j                  gt        j                   t        j                   t        j"                  t%        j&                  t        j"                        i}t)        t        j*                        j-                  ||      }| j/                  t1        |      d       | j3                  t5        |d   t6                     | j/                  |d   t        j                     t        j                         d d d        y # 1 sw Y   y xY wra   )r   r   r   r    r!   r"   r#   r$   r%   rT   r'   r6   r7   r8   re   EFFECTIVE_STATUSINCLUDE_DRAFTS
TIME_RANGEr>   r?   r   r&   get_campaignsr:   r;   r<   r=   r   rA   rB   r   r   	campaignss        rD   test_get_campaignsz$AdAccountTestCase.test_get_campaigns  s   $$D1 	KW-7-?-?D**-**)..)*,1247	4GHK+D' .2-?-?D* F %%y'<'<**Y-G-G,H(()*B*B$$djj1E1E&F	F ")"6"67EE F I
 S\1-OOJy|X>?Yq\)..99>>J7	K 	K 	Ks   GG33G<c                 .   t        j                  d      5 }t        j                  | j                  _        | j                  | j                  _        dg}t        j                  di}| j                  t              5  t        t        j                        j                  ||      }d d d        | j!                  t#        |      d       | j%                  t'        |d   j(                  t*                     d d d        y # 1 sw Y   YxY w# 1 sw Y   y xY wNTr   rH   unexisted_statusr   r]   r   )r   r   r   rI   r!   r"   r7   r8   r%   rz   rJ   r   r   r'   r&   r}   r:   r;   r<   rK   rL   rM   r~   s        rD   /test_get_campaigns_with_wrong_fields_and_paramszAAdAccountTestCase.test_get_campaigns_with_wrong_fields_and_params5  s    $$D1 	JW-7-=-=D*-1-?-?D*  F **,>F ""#78 %i&:&:;II!! J 	 S\1-OOJwqz':':KHI%	J 	J 	J 	J%   A%D<+C?'AD?D	DDc                 :   t        j                  d      5 }t        j                  | j                  _        t        j                  dt        t        j                        z   dz   t        t        j                        z   dz         | j                  _        | j                  | j                  _        t        j                  g}t        j                  t        j                  t        j                  t        j                  gt        j                   t        j                   t        j"                  t%        j&                  t        j"                        t        j(                  t        j(                  i}t+        t        j,                        j/                  ||      }| j1                  t3        |      d       | j5                  t7        |d   t8                     | j1                  |d   t        j                     t        j                         d d d        y # 1 sw Y   y xY wra   )r   r   r   r    r!   r"   r#   r$   r%   rT   r'   r6   r7   r8   re   rz   r{   r|   r>   r?   UPDATED_SINCEr   r&   get_adsr:   r;   r<   r=   r
   rA   rB   r   r   adss        rD   test_get_adszAdAccountTestCase.test_get_adsK  s   $$D1 	EW-7-?-?D**-**)..)*,1247	4GHK+D' .2-?-?D* F %%y'<'<**Y-G-G,H(()*B*B$$djj1E1E&F'')@)@F I00199 : C
 S\1-OOJs1vr23SVINN3Y^^D9	E 	E 	Es   G1HHc                 .   t        j                  d      5 }t        j                  | j                  _        | j                  | j                  _        dg}t        j                  di}| j                  t              5  t        t        j                        j                  ||      }d d d        | j!                  t#        |      d       | j%                  t'        |d   j(                  t*                     d d d        y # 1 sw Y   YxY w# 1 sw Y   y xY wr   )r   r   r   rI   r!   r"   r7   r8   r%   rz   rJ   r   r   r'   r&   r   r:   r;   r<   rK   rL   rM   r   s        rD   (test_get_ads_with_wrong_fields_and_paramz:AdAccountTestCase.test_get_ads_with_wrong_fields_and_paramk  s    $$D1 	JW-7-=-=D*-1-?-?D*  F **,>F ""#78 	 4 45==!! >  S\1-OOJwqz':':KHI#	J 	J 	J 	Jr   N)__name__
__module____qualname__rE   rN   rX   r_   rk   rq   rv   rx   r   r   r   r        rD   r   r   -   sM    ?bDJ(J2K(QDK,K4J&K>J,E@Jr   r   __main__)"__doc__r   r>   facebook_business.sessionr   facebook_business.exceptionsr   facebook_business.apir   r   r   %facebook_business.adobjects.adaccountr   &facebook_business.adobjects.adcreativer	   facebook_business.adobjects.adr
   $facebook_business.adobjects.campaignr   'facebook_business.adobjects.adsinsightsr   3facebook_business.adobjects.agencyclientdeclarationr   $facebook_business.adobjects.businessr   6facebook_business.adobjects.extendedcreditinvoicegroupr   integration_utilsintegration_constantIntegrationTestCaser   r   unittestmainr   r   rD   <module>r      sf   *   5 = S S ; = - 9 ? W 9 ]   #PJ+ PJf
 zMMO r   