o
    tBh=                     @   s  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m	Z	 d dl
mZmZmZmZmZ d dlmZ dZdZd	Zd
ZdZdZG dd dZdd Zdd Zdd Zdd Zdd Zdd Zej ddd Z!ej ddd  Z"d!d" Z#d#d$ Z$d%d& Z%dS )'    N)FulfillmentInbound)AccessTokenClient)MarketplacesMissingCredentialsClientSellingApiForbiddenException)FromCodeCredentialProvider*FromEnvironmentVariablesCredentialProviderFromSecretsCredentialProvider FromConfigFileCredentialProviderrequired_credentials)MissingScopeExceptionz<refresh_token>z<lwa_app_id>z<lwa_client_secret>z<aws_secret_access_key>z<aws_access_key_id>z
<role_arn>c                   @   s(   e Zd ZdZdZi Zdd Zdd ZdS )Res   GETc                 C   s   ddiS )Nfoobar )selfr   r   m/var/www/html/riverr-enterprise-integrations-main/venv/lib/python3.10/site-packages/tests/client/test_base.pyjson   s   zRes.jsonc                 C   s   |S )Nr   )r   itemr   r   r   __getattr__   s   zRes.__getattr__N)__name__
__module____qualname__status_codemethodheadersr   r   r   r   r   r   r      s    r   c               
   C   sN   zt  jdt d W d S  ty& }  zt| tsJ W Y d } ~ d S d } ~ ww )N data)r   _requestdictr   
isinstance)er   r   r   test_client_request   s   r&   c                  C   s    t  jdd} | jd usJ d S )NSHIPMENT)	QueryType)r   get_shipments
next_token)resr   r   r    test_api_response_has_next_token%   s   r,   c                   C   s$   t jjdksJ t jjdksJ d S )Nz	eu-west-1ATVPDKIKX0DER)r   DEregionUSmarketplace_idr   r   r   r   test_marketplaces*   s   r2   c               	   C   s<   t tttttttdd} | jd usJ t	| jtsJ d S )N)refresh_token
lwa_app_idlwa_client_secretaws_secret_keyaws_access_keyrole_arncredentials)
r   r#   r3   r4   r5   r6   r7   r8   r:   r$   pr   r   r   "test_from_code_credential_provider/   s   
r=   c                  C   sN   t ttttttdd} | jd usJ t| jtsJ | j	dd u s%J d S )N)r3   r4   r5   r6   r7   r9   r8   )
r   r#   r3   r4   r5   r6   r7   r:   r$   getr;   r   r   r   *test_from_code_credential_provider_no_role<   s   
r?   c                  C   s`   t tttttdd} | jd usJ t| jtsJ | jdd u s$J | jdd u s.J d S )N)r4   r5   r6   r7   r9   r8   r3   )	r   r#   r4   r5   r6   r7   r:   r$   r>   r;   r   r   r   ;test_from_code_credential_provider_no_role_no_refresh_tokenI   s   
r@   c                  C   s   dt jd< dt jd< dt jd< dt jd< dt jd< dt jd< t  } d| v s(J t jd t jd t jd t jd t jd t jd d S )	Nr   SP_API_REFRESH_TOKEN
LWA_APP_IDLWA_CLIENT_SECRETSP_API_ACCESS_KEYSP_API_SECRET_KEYSP_API_ROLE_ARNr3   )osenvironr	   popr;   r   r   r   test_env_vars_providerV   s   





rK   c               
   C   sx   dt jd< zt  } d| v sJ | ddksJ t jd W d S  ty; } zt|ts0J W Y d }~d S d }~ww )Nztesting/sp-api-fooSP_API_AWS_SECRET_IDr3   r   )rH   rI   r
   r>   rJ   r   r$   r<   r%   r   r   r   test_from_secretsj   s   
rO   c               
   C   sV   zt   } | dd usJ W d S  ty* } zt|tsJ W Y d }~d S d }~ww )Nr3   )r   r>   r   r$   rN   r   r   r   test_from_config_file_providerv   s   rP   c                   C   s   t tdksJ d S )N   )lenr   r   r   r   r   test_req~   s   rS   c               
   C   s  t tjd} | jtjjksJ | jd usJ | jtjjksJ | jtjjks(J | jd us/J | jd u s6J t	| j
ts>J t	|  tsGJ t	| dtsQJ |  d usYJ | jd | jdd  ksgJ t| j dksrJ | jd usyJ z| j}W n ty } zt	|tsJ W Y d }~nd }~ww | jd usJ | jd usJ z	| jdi d W n ty } zt	|tsJ W Y d }~nd }~ww z	| jdi d W n ty } zt	|tsJ W Y d }~nd }~ww | t }|jd	 d
ksJ t }d|_| |}|jd	 d
ksJ |d	d
ksJ |jd
ks!J | d	 d
ks+J d|_| |}|jd	 d
ks=J |d	d
ksFJ |jd
ksNJ | d	 d
ksXJ d| _| jd uscJ z| d W d S  ty } zt	|ts|J W Y d }~d S d }~ww )N)marketplacetesthost      r   r    )paramsr   r   POSTDELETEz sellingpartnerapi::notifications) r   r   UKr1   r:   endpointr/   boto3_clientrestricted_data_tokenr$   _authr   _get_cache_keystrset_roler   rR   keysauthgrantless_authr   role_sign_requestr"   r   _check_responser   payloadr   r   grantless_scope_request_grantless_operation)clientxr%   checkrr   r   r   test_client   sr   


rq   )&rH   pytest
sp_api.apir   sp_api.baser   r   r   r   r   sp_api.base.credential_providerr   r	   r
   r   r   sp_api.base.exceptionsr   r3   r4   r5   r6   r7   r8   r   r&   r,   r2   r=   r?   r@   markorderrK   rO   rP   rS   rq   r   r   r   r   <module>   s6    



