
    f6                     t    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  G d	 d
e	e      Zy)    )loads)override_settings)SocialAccount)ProviderException)OAuth2TestsMixin)MockedResponseTestCase   )LinkedInOAuth2Providerc                   2   e Zd Zej                  Zd Zd Zd Zd Z	 e
dg dddid	i
      d        Z e
dg dddid	i
      d        Z e
dg dddid	i
      d        Z e
dg dddid	i
      d        Z e
dg dddid	i
      d        Zd Zy)LinkedInOAuth2Testsc                 2    t        dd      t        dd      gS )N   z
            {}
              
{
  "profilePicture": {
    "displayImage": "urn:li:digitalmediaAsset:12345abcdefgh-12abcd"
  },
  "id": "1234567",
  "lastName": {
    "preferredLocale": {
      "language": "en",
      "country": "US"
    },
    "localized": {
      "en_US": "Penners"
    }
  },
  "firstName": {
    "preferredLocale": {
      "language": "en",
      "country": "US"
    },
    "localized": {
      "en_US": "Raymond"
    }
  }
}
)r   selfs    p/var/www/cs2snipe.com/venv/lib/python3.12/site-packages/allauth/socialaccount/providers/linkedin_oauth2/tests.pyget_mocked_responsez'LinkedInOAuth2Tests.get_mocked_response   s.     $
 $	
    c                      y)NzRaymond Penners r   s    r   get_expected_to_strz'LinkedInOAuth2Tests.get_expected_to_str7   s     r   c                     dddddddgdd	d
}t        |d      }| j                  |j                         j                         d       y )Nzjohn@doe.orgJohn	a1b2c3d4eDoezhttps://media.licdn.com/mpr/foor
   zhttps://media.licdn.com/foo)_totalvaluesz#https://www.linkedin.com/in/johndoe)emailAddress	firstNameidlastName
pictureUrlpictureUrlspublicProfileUrllinkedin_oauth2
extra_dataprovider)r   assertEqualget_provider_accountto_str)r   dataaccs      r   test_data_to_strz$LinkedInOAuth2Tests.test_data_to_str:   s]    *;89 !F
 t6GH113::<nMr   c                 r    d}t        t        |      d      }| j                  |j                                y Nr   r&   r'   r   r   assertIsNoneget_avatar_urlr   r(   r.   s      r   &test_get_avatar_url_no_picture_settingz:LinkedInOAuth2Tests.test_get_avatar_url_no_picture_settingJ   s9    
4 Z(&
 	#,,./r   r&   )r!   r    r"   z-profilePicture(displayImage~:playableStreams)display_size_w_h)i  g      y@)PROFILE_FIELDSPROFILEPICTURE)SOCIALACCOUNT_PROVIDERSc                 r    d}t        t        |      d      }| j                  |j                                y r1   r2   r5   s      r    test_get_avatar_url_with_settingz4LinkedInOAuth2Tests.test_get_avatar_url_with_settingk   s9     
4 Z(&
 	#,,./r   )d   g      Y@c                 t    d}t        t        |      d      }| j                  d|j                                y N"  
{
  "profilePicture": {
    "displayImage": "urn:li:digitalmediaAsset:12345abcdefgh-12abcd"
  },
  "id": "1234567",
  "lastName": {
    "preferredLocale": {
      "language": "en",
      "country": "US"
    },
    "localized": {
      "en_US": "Penners"
    }
  },
  "firstName": {
    "preferredLocale": {
      "language": "en",
      "country": "US"
    },
    "localized": {
      "en_US": "Raymond"
    }
  },
  "profilePicture": {
    "displayImage~": {
      "elements": [
        {
          "authorizationMethod": "PUBLIC",
          "data": {
            "com.linkedin.digitalmedia.mediaartifact.StillImage": {
              "storageSize": {
                "height": 100,
                "width": 100
              },
              "storageAspectRatio": {
                "heightAspect": 1.0,
                "formatted": "1.00:1.00",
                "widthAspect": 1.0
              },
              "displaySize": {
                "height": 100.0,
                "width": 100.0,
                "uom": "PX"
              },
              "rawCodecSpec": {
                "name": "jpeg",
                "type": "image"
              },
              "displayAspectRatio": {
                "heightAspect": 1.0,
                "formatted": "1.00:1.00",
                "widthAspect": 1.0
              },
              "mediaType": "image/jpeg"
            }
          },
          "artifact": "urn:li:digitalmediaMediaArtifact:avatar",
          "identifiers": [
            {
              "identifierExpiresInSeconds": 4,
              "file": "urn:li:digitalmediaFile:this-is-the-link",
              "index": 0,
              "identifier": "this-is-the-link",
              "mediaType": "image/jpeg",
              "identifierType": "EXTERNAL_URL"
            }
          ]
        }
      ]
    }
  }
}
r&   r'   zthis-is-the-linkr   r   r*   r4   r5   s      r    test_get_avatar_url_with_picturez4LinkedInOAuth2Tests.test_get_avatar_url_with_picture   >     I
T Z(&
 	+S-?-?-ABr   c                 r    d}t        t        |      d      }| j                  |j                                y )Nr@   r&   r'   r2   r5   s      r   !test_get_avatar_url_size_mismatchz5LinkedInOAuth2Tests.test_get_avatar_url_size_mismatch   ;     I
T Z(&
 	#,,./r   c                 r    d}t        t        |      d      }| j                  |j                                y )Na#  
{
  "profilePicture": {
    "displayImage": "urn:li:digitalmediaAsset:12345abcdefgh-12abcd"
  },
  "id": "1234567",
  "lastName": {
    "preferredLocale": {
      "language": "en",
      "country": "US"
    },
    "localized": {
      "en_US": "Penners"
    }
  },
  "firstName": {
    "preferredLocale": {
      "language": "en",
      "country": "US"
    },
    "localized": {
      "en_US": "Raymond"
    }
  },
  "profilePicture": {
    "displayImage~": {
      "elements": [
        {
          "authorizationMethod": "PRIVATE",
          "data": {
            "com.linkedin.digitalmedia.mediaartifact.StillImage": {
              "storageSize": {
                "height": 100,
                "width": 100
              },
              "storageAspectRatio": {
                "heightAspect": 1.0,
                "formatted": "1.00:1.00",
                "widthAspect": 1.0
              },
              "displaySize": {
                "height": 100.0,
                "width": 100.0,
                "uom": "PX"
              },
              "rawCodecSpec": {
                "name": "jpeg",
                "type": "image"
              },
              "displayAspectRatio": {
                "heightAspect": 1.0,
                "formatted": "1.00:1.00",
                "widthAspect": 1.0
              },
              "mediaType": "image/jpeg"
            }
          },
          "artifact": "urn:li:digitalmediaMediaArtifact:avatar",
          "identifiers": [
            {
              "identifierExpiresInSeconds": 4,
              "file": "urn:li:digitalmediaFile:this-is-the-link",
              "index": 0,
              "identifier": "this-is-the-link",
              "mediaType": "image/jpeg",
              "identifierType": "EXTERNAL_URL"
            }
          ]
        }
      ]
    }
  }
}
r&   r'   r2   r5   s      r   !test_get_avatar_url_auth_mismatchz5LinkedInOAuth2Tests.test_get_avatar_url_auth_mismatch[  rF   r   )r=   r=   c                 t    d}t        t        |      d      }| j                  d|j                                y r?   rA   r5   s      r    test_get_avatar_url_float_vs_intz4LinkedInOAuth2Tests.test_get_avatar_url_float_vs_int  rC   r   c                 p    d}| j                  t        | j                  j                  t	        |             y )Nzv
{
  "profilePicture": {
    "displayImage": "urn:li:digitalmediaAsset:12345abcdefgh-12abcd"
  },
  "Id": "1234567"
}
)assertRaisesr   r)   extract_uidr   )r   r(   s     r   test_id_missingz#LinkedInOAuth2Tests.test_id_missing  s/    
 	t}}88%
:K	
r   N)__name__
__module____qualname__r   r!   provider_idr   r   r/   r6   r   r<   rB   rE   rH   rJ   rN   r   r   r   r   r      sM   (++K%
N!N 0B # '#
 !
00B # '#
 !
OCOCb # '#
 !
O0O0b # '#
 !
O0O0b # '
#
 !
OCOCb
r   r   N)jsonr   django.test.utilsr   allauth.socialaccount.modelsr   $allauth.socialaccount.providers.baser   allauth.socialaccount.testsr   allauth.testsr   r	   r)   r   r   r   r   r   <module>rY      s+     / 6 B 8 2 ,Y
*H Y
r   