a
    Qx_@6                     @   sz   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 G d
d deeZdS )    )loads)RequestFactory)override_settings)SocialAccount)ProviderException)OAuth2TestsMixin)MockedResponseTestCase   )LinkedInOAuth2Providerc                   @   s   e Zd ZejZdd Zdd Zdd Ze	dg dd	d
ididdd Z
e	dg dd	dididdd Ze	dg dd	d
ididdd Ze	dg dd	d
ididdd Ze	dg dd	dididdd Zdd ZdS )LinkedInOAuth2Testsc                 C   s
   t ddS )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"
    }
  }
}
)r   )self r   m/var/www/html/Ranjet/env/lib/python3.9/site-packages/allauth/socialaccount/providers/linkedin_oauth2/tests.pyget_mocked_response   s    z'LinkedInOAuth2Tests.get_mocked_responsec                 C   s@   dddddddgdd	d
}t |dd}| |  d d S )Nzjohn@doe.orgZJohnZ	a1b2c3d4eZDoezhttps://media.licdn.com/mpr/foor
   zhttps://media.licdn.com/foo)Z_totalvaluesz#https://www.linkedin.com/in/johndoe)ZemailAddress	firstNameidlastNameZ
pictureUrlZpictureUrlsZpublicProfileUrllinkedin_oauth2
extra_dataproviderzJohn Doe)r   assertEqualZget_provider_accountZto_str)r   dataaccr   r   r   test_data_to_str1   s    z$LinkedInOAuth2Tests.test_data_to_strc                 C   s&   d}t t|dd}| |  d S Nr   r   r   r   r   ZassertIsNoneget_avatar_urlr   r   r   r   r   r   &test_get_avatar_url_no_picture_settingA   s    z:LinkedInOAuth2Tests.test_get_avatar_url_no_picture_settingr   )r   r   r   z-profilePicture(displayImage~:playableStreams)Zdisplay_size_w_h)i  g      y@)ZPROFILE_FIELDSZPROFILEPICTURE)ZSOCIALACCOUNT_PROVIDERSc                 C   s&   d}t t|dd}| |  d S r   r    r"   r   r   r    test_get_avatar_url_with_settingb   s    z4LinkedInOAuth2Tests.test_get_avatar_url_with_setting)d   g      Y@c                 C   s(   d}t t|dd}| d|  d S 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   r!   r"   r   r   r    test_get_avatar_url_with_picture   s    Jz4LinkedInOAuth2Tests.test_get_avatar_url_with_picturec                 C   s&   d}t t|dd}| |  d S )Nr'   r   r   r    r"   r   r   r   !test_get_avatar_url_size_mismatch   s    Jz5LinkedInOAuth2Tests.test_get_avatar_url_size_mismatchc                 C   s&   d}t t|dd}| |  d S )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   r    r"   r   r   r   !test_get_avatar_url_auth_mismatchR  s    Jz5LinkedInOAuth2Tests.test_get_avatar_url_auth_mismatch)r%   r%   c                 C   s(   d}t t|dd}| d|  d S r&   r(   r"   r   r   r    test_get_avatar_url_float_vs_int  s    Jz4LinkedInOAuth2Tests.test_get_avatar_url_float_vs_intc                 C   s,   d}t t d}| t|jt| d S )Nzv
{
  "profilePicture": {
    "displayImage": "urn:li:digitalmediaAsset:12345abcdefgh-12abcd"
  },
  "Id": "1234567"
}
z/login)r   r   getZassertRaisesr   Zextract_uidr   )r   r   r   r   r   r   test_id_missing  s    z#LinkedInOAuth2Tests.test_id_missingN)__name__
__module____qualname__r   r   Zprovider_idr   r   r#   r   r$   r)   r*   r+   r,   r.   r   r   r   r   r      sd   !
!
Q
Q
Q
Qr   N)jsonr   Zdjango.test.clientr   Zdjango.test.utilsr   Zallauth.socialaccount.modelsr   Z$allauth.socialaccount.providers.baser   Zallauth.socialaccount.testsr   Zallauth.testsr   r	   r   r   r   r   r   r   r   <module>   s   