o
    ˷e@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   l/var/www/ideatree/venv/lib/python3.10/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.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providerzJohn Doe)r   assertEqualget_provider_accountto_str)r   dataaccr   r   r   test_data_to_str1   s   z$LinkedInOAuth2Tests.test_data_to_strc                 C   &   d}t t|dd}| |  d S Nr   r   r    r   r   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)display_size_w_h)i  g      y@)PROFILE_FIELDSPROFILEPICTURE)SOCIALACCOUNT_PROVIDERSc                 C   r)   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   (   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      Jz4LinkedInOAuth2Tests.test_get_avatar_url_with_picturec                 C   r)   )Nr8   r   r    r+   r.   r   r   r   !test_get_avatar_url_size_mismatch      Jz5LinkedInOAuth2Tests.test_get_avatar_url_size_mismatchc                 C   r)   )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  r=   z5LinkedInOAuth2Tests.test_get_avatar_url_auth_mismatch)r5   r5   c                 C   r6   r7   r9   r.   r   r   r    test_get_avatar_url_float_vs_int  r;   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   getassertRaisesr   extract_uidr   )r   r!   r"   r   r   r   test_id_missing  s   z#LinkedInOAuth2Tests.test_id_missingN)__name__
__module____qualname__r   r   provider_idr   r(   r/   r   r4   r:   r<   r>   r?   rC   r   r   r   r   r      sf    !
!
Q
Q
Q
Qr   N)jsonr   django.test.clientr   django.test.utilsr   allauth.socialaccount.modelsr   $allauth.socialaccount.providers.baser   allauth.socialaccount.testsr   allauth.testsr   r	   r"   r   r   r   r   r   r   <module>   s   