o
    ˷e                     @   s   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mZ dd	lmZ ed
d
dG dd dee	ejZdS )    )unicode_literals)mock)override_settings)SocialAccount)registry)create_oauth2_tests)MockedResponsepatch   )BitbucketOAuth2ProviderT)SOCIALACCOUNT_QUERY_EMAILSOCIALACCOUNT_STORE_TOKENSc                       sJ   e Zd ZdZdZ fddZdd Zdd Zd fd
d	Zdd Z	  Z
S )BitbucketOAuth2Testsa  
        {
            "created_on": "2011-12-20T16:34:07.132459+00:00",
            "display_name": "tutorials account",
            "links": {
                "avatar": {
                    "href":
                    "https://bitbucket-assetroot.s3.amazonaws.com/c/photos/2013/Nov/25/tutorials-avatar-1563784409-6_avatar.png"
                },
                "followers": {
                    "href":
                    "https://api.bitbucket.org/2.0/users/tutorials/followers"
                },
                "following": {
                    "href":
                    "https://api.bitbucket.org/2.0/users/tutorials/following"
                },
                "html": {
                    "href": "https://bitbucket.org/tutorials"
                },
                "repositories": {
                    "href":
                    "https://api.bitbucket.org/2.0/repositories/tutorials"
                },
                "self": {
                    "href": "https://api.bitbucket.org/2.0/users/tutorials"
                }
            },
            "location": "Santa Monica, CA",
            "type": "user",
            "username": "tutorials",
            "uuid": "{c788b2da-b7a2-404c-9e26-d3f077557007}",
            "website": "https://tutorials.bitbucket.org/"
        }
    a-  
        {
            "page": 1,
            "pagelen": 10,
            "size": 1,
            "values": [
                {
                    "email": "tutorials@bitbucket.org",
                    "is_confirmed": true,
                    "is_primary": true,
                    "links": {
                        "self": {
                            "href":
                            "https://api.bitbucket.org/2.0/user/emails/tutorials@bitbucket.org"
                        }
                    },
                    "type": "email"
                },
                {
                    "email": "tutorials+secondary@bitbucket.org",
                    "is_confirmed": true,
                    "is_primary": true,
                    "links": {
                        "self": {
                            "href":
                            "https://api.bitbucket.org/2.0/user/emails/tutorials+secondary@bitbucket.org"
                        }
                    },
                    "type": "email"
                }
            ]
        }
    c                    sX   t t|   dtdi| _dd | j D | _td| jtd| j	g| jd j
_d S )Nrequestsz?allauth.socialaccount.providers.bitbucket_oauth2.views.requestsc                 S   s   i | ]	\}}||  qS  )start).0namemockedr   r   m/var/www/ideatree/venv/lib/python3.10/site-packages/allauth/socialaccount/providers/bitbucket_oauth2/tests.py
<dictcomp>b   s    z.BitbucketOAuth2Tests.setUp.<locals>.<dictcomp>   )superr   setUpr	   mocksitemspatchesr   response_dataemail_response_datagetside_effectself	__class__r   r   r   [   s   

zBitbucketOAuth2Tests.setUpc                 C   s    | j  D ]\}}|  qd S )N)r   r   stop)r"   _r   r   r   r   tearDownh   s   
zBitbucketOAuth2Tests.tearDownc                 C   s   t d| jgS )Nr   )r   r   r!   r   r   r   get_mocked_responsel   s   z(BitbucketOAuth2Tests.get_mocked_responseFc                    s   |rt d| jt d| jt d| jt d| jg| jd j_tt| | t	j
dt	jdt	j
dt	jdg}|rJ|t	j
dt	jdt	j
dt	jdg | jd j| d S )Nr   r   "https://api.bitbucket.org/2.0/userparams)https://api.bitbucket.org/2.0/user/emails)r   r   r   r   r   r    r   r   test_account_tokensr   callANYextendassert_has_calls)r"   multiple_logincallsr#   r   r   r-   o   s(   



	z(BitbucketOAuth2Tests.test_account_tokensc                 C   s   |  |   tjjdd}| |jjd | |jjd |	 }| |
 d | | d | | d | jd jtjdtjd	tjd
tjd	g d S )N	tutorials)uidztutorials@bitbucket.orgztutorials accountzhttps://bitbucket.org/tutorialszjhttps://bitbucket-assetroot.s3.amazonaws.com/c/photos/2013/Nov/25/tutorials-avatar-1563784409-6_avatar.pngr   r)   r*   r,   )loginr(   r   objectsr   assertEqualuserusernameemailget_provider_accountto_strget_profile_urlget_avatar_urlr   r1   r   r.   r/   )r"   socialaccountaccountr   r   r   test_provider_account   s&   z*BitbucketOAuth2Tests.test_provider_account)F)__name__
__module____qualname__r   r   r   r'   r(   r-   rB   __classcell__r   r   r#   r   r      s    $"r   N)
__future__r   unittestr   django.test.utilsr   allauth.socialaccount.modelsr   allauth.socialaccount.providersr   allauth.socialaccount.testsr   allauth.testsr   r	   providerr   by_ididr   r   r   r   r   <module>   s   


