o
    .^                     @   s   d Z eZddlZddlZddlZddlZddlmZm	Z	 ddl
mZ ddlmZmZmZmZ G dd deZG dd	 d	eZG d
d deZG dd deZdd ZdS )z"Tests for the OAuth-aware classes.    N)	MockPatchTempDir)TestCase)AccessTokenConsumerOAuthAuthorizerSystemWideConsumerc                   @   s   e Zd Zdd Zdd ZdS )TestConsumerc                 C   :   t ddd}| |jd | |jd | |jd d S )NkeysecretZapplication)r   assertEqualr   r   application_nameselfconsumer r   E/usr/lib/python3/dist-packages/lazr/restfulclient/tests/test_oauth.pytest_data_fields,      zTestConsumer.test_data_fieldsc                 C   s   t dd}| |jd  d S Nr   r   )r   r   r   r   r   r   r   test_default_application_name2   s   
z*TestConsumer.test_default_application_nameN)__name__
__module____qualname__r   r   r   r   r   r   r	   *   s    r	   c                   @   s,   e Zd Zdd Zdd Zdd Zdd Zd	S )
TestAccessTokenc                 C   r
   )Nr   r   context)r   r   r   r   r   r   access_tokenr   r   r   r   :   r   z TestAccessToken.test_data_fieldsc                 C   s   t dd}| |j d S r   )r   ZassertIsNoner   r   r   r   r   test_default_context@   s   
z$TestAccessToken.test_default_contextc                 C   s   t dd}| dt| d S )Nlock&keysecret=password;oauth_token_secret=secret%3Dpassword&oauth_token=lock%26key)r   r   strr   r   r   r   test___str__E   s
   
zTestAccessToken.test___str__c                 C   s*   t d}| |jd | |jd d S )Nr"   r    r!   )r   Zfrom_stringr   r   r   r   r   r   r   test_from_stringK   s
   z TestAccessToken.test_from_stringN)r   r   r   r   r   r$   r%   r   r   r   r   r   8   s
    r   c                   @   s$   e Zd Zdd Zdd Zdd ZdS )TestSystemWideConsumerc                 C   P   |  tddd |  tddd |  tddd td}| |jd	 d S )
Ndistro.nameZFooixZreturn_valueplatform.systemZFooOSsocket.gethostnameZfooapp namezSystem-wide: Fooix (foo)
useFixturer   r   r   r   r   r   r   r   test_useful_distro_nameT      z.TestSystemWideConsumer.test_useful_distro_namec                 C   r'   )
Nr(    r)   r*   ZBarOSr+   Zbarr,   zSystem-wide: BarOS (bar)r-   r   r   r   r   test_empty_distro_name^   r0   z-TestSystemWideConsumer.test_empty_distro_namec                 C   sT   |  tdtdd |  tddd |  tddd td	}| |jd
 d S )Nr(   zOh noes!)Zside_effectr*   ZBazOSr)   r+   Zbazr,   zSystem-wide: BazOS (baz))r.   r   	Exceptionr   r   r   r   r   r   r   test_broken_distro_nameh   s   z.TestSystemWideConsumer.test_broken_distro_nameN)r   r   r   r/   r2   r4   r   r   r   r   r&   R   s    

r&   c                   @   s   e Zd ZdZdd ZdS )TestOAuthAuthorizerzTest for the OAuth Authorizer.c                 C   s   |  t j}tj|d}tddtddd}|| | tj	| | 
tt|jtjtjB  t|}| 
|jjd | 
|jjd | 
|jjd | 
|jjd d S )Ncredentialszconsumer.keyzconsumer.secretz
access.keyzaccess.secret)Zconsumer_secretr   )r.   r   pathosjoinr   r   Zsave_to_pathZ
assertTrueexistsr   statS_IMODEst_modeS_IREADS_IWRITEZload_from_pathr   r   r   r   )r   Ztemp_dirZcredentials_pathr6   Zloaded_credentialsr   r   r    test_save_to_and_load_from__pathw   s,   


z4TestOAuthAuthorizer.test_save_to_and_load_from__pathN)r   r   r   __doc__r@   r   r   r   r   r5   t   s    r5   c                   C   s   t  tS )N)unittestZ
TestLoaderZloadTestsFromNamer   r   r   r   r   
test_suite   s   rC   )rA   typeZ__metaclass__r8   os.pathr;   rB   Zfixturesr   r   Z	testtoolsr   Z"lazr.restfulclient.authorize.oauthr   r   r   r   r	   r   r&   r5   rC   r   r   r   r   <module>   s   "