
    f                     p    d dl 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  G d	 d
ee      Zy)    N)SocialAccount)GitLabProvider)OAuth2Error)OAuth2TestsMixin)MockedResponseTestCase   )_check_errorsc                   ^    e Zd Zej                  ZdZd Zd Zd Z	d Z
d Zd Zd Zd	 Zd
 Zy)GitLabTests   c                     t        dd      S )N   a  
            {
                "avatar_url": "https://secure.gravatar.com/avatar/123",
                "bio": null,
                "can_create_group": true,
                "can_create_project": true,
                "color_scheme_id": 5,
                "confirmed_at": "2015-03-02T16:53:58.370Z",
                "created_at": "2015-03-02T16:53:58.885Z",
                "current_sign_in_at": "2018-06-12T18:44:49.985Z",
                "email": "mr.bob@gitlab.example.com",
                "external": false,
                "id": 2,
                "identities": [],
                "last_activity_on": "2018-06-11",
                "last_sign_in_at": "2018-05-31T14:59:44.527Z",
                "linkedin": "",
                "location": null,
                "name": "Mr Bob",
                "organization": null,
                "projects_limit": 10,
                "shared_runners_minutes_limit": 2000,
                "skype": "",
                "state": "active",
                "theme_id": 6,
                "twitter": "mrbob",
                "two_factor_enabled": true,
                "username": "mr.bob",
                "web_url": "https://gitlab.example.com/u/mr.bob",
                "website_url": ""
            }
        )r   selfs    g/var/www/cs2snipe.com/venv/lib/python3.12/site-packages/allauth/socialaccount/providers/gitlab/tests.pyget_mocked_responsezGitLabTests.get_mocked_response   s    "
 "	
    c                      y)Nzmr.bob r   s    r   get_expected_to_strzGitLabTests.get_expected_to_str5   s    r   c                     ddi}t        dt        j                  |            }| j                  t	        |      |       y )Nidi90  r   )r   jsondumpsassertEqualr
   )r   dataresponses      r   test_valid_responsezGitLabTests.test_valid_response8   s5    e}!#tzz$'78x0$7r   c                     t        dt        j                  i             }| j                  t              5  t        |       d d d        y # 1 sw Y   y xY wNr   r   r   r   assertRaisesr   r
   r   r   s     r   test_invalid_datazGitLabTests.test_invalid_data=   A    !#tzz"~6{+ 	$(#	$ 	$ 	$   A

Ac                     d}t        d|      }| j                  t              5  t        |       d d d        y # 1 sw Y   y xY w)Nz403 Forbidden  - You (@domain.com) must accept the Terms of Service in order to perform this action. Please access GitLab from a web browser to accept these terms.  r   r#   r   r
   r   bodyr   s      r   test_account_invalid_responsez)GitLabTests.test_account_invalid_responseC   sG    8 	
 "#t,
 {+ 	$(#	$ 	$ 	$	   9Ac                     d}t        d|      }| j                  t              5  t        |       d d d        y # 1 sw Y   y xY w)Nz403 Forbiddenr)   r*   r+   s      r   test_error_responsezGitLabTests.test_error_responseR   s>    !#t,{+ 	$(#	$ 	$ 	$r.   c                     t        dt        j                  i             }| j                  t              5  t        |       d d d        y # 1 sw Y   y xY wr!   r"   r$   s     r   test_invalid_responsez!GitLabTests.test_invalid_responseZ   r&   r'   c                     t        dt        j                  i             }| j                  t              5  t        |       d d d        y # 1 sw Y   y xY w)Ni  r"   r$   s     r   test_bad_responsezGitLabTests.test_bad_response`   r&   r'   c                     | j                  | j                                t        j                  j	                  t        | j                              }| j                  |j                  d   | j                         y )N)uidr   )	loginr   r   objectsgetstr_uidr   
extra_data)r   accounts     r   test_extra_datazGitLabTests.test_extra_dataf   sW    

4++-.''++DII+?++D1499=r   N)__name__
__module____qualname__r   r   provider_idr;   r   r   r   r%   r-   r0   r2   r4   r>   r   r   r   r   r      s@     ##KD#
J8
$$$$$>r   r   )r   allauth.socialaccount.modelsr   /allauth.socialaccount.providers.gitlab.providerr   -allauth.socialaccount.providers.oauth2.clientr   allauth.socialaccount.testsr   allauth.testsr   r   viewsr
   r   r   r   r   <module>rI      s+     6 J E 8 2  ]>"H ]>r   