Ë
    ûûàg  ã                   óŒ   — 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 dd
lmZ  G d„ dee«      Zy)é    )ÚTestCase)ÚRequestFactory)Úreverse)ÚSocialToken)ÚOAuth2Error)ÚOAuth2TestsMixin)ÚMockedResponseÚmocked_responseé   )ÚTwitchProvider)ÚTwitchOAuth2Adapterc                   óN   — e Zd Zej                  Zd„ Zd„ Zd„ Zd„ Z	d„ Z
d„ Zd„ Zy)	ÚTwitchTestsc                 ó   — t        dd«      S )NéÈ   a�  
        {
          "data": [{
            "id": "44322889",
            "login": "dallas",
            "display_name": "dallas",
            "type": "staff",
            "broadcaster_type": "",
            "description": "Just a gamer playing games and chatting. :)",
            "profile_image_url": "https://static-cdn.jtvnw.net/jtv_user_pictures/dallas-profile_image-1a2c906ee2c35f12-300x300.png",
            "offline_image_url": "https://static-cdn.jtvnw.net/jtv_user_pictures/dallas-channel_offline_image-1a2c906ee2c35f12-1920x1080.png",
            "view_count": 191836881,
            "email": "login@provider.com"
          }]
        }
        )r	   ©Úselfs    új/var/www/skyplay_api_hub/venv/lib/python3.12/site-packages/allauth/socialaccount/providers/twitch/tests.pyÚget_mocked_responsezTwitchTests.get_mocked_response   s   € ÜØðó
ð 	
ó    c                  ó   — y)NÚdallas© r   s    r   Úget_expected_to_strzTwitchTests.get_expected_to_str&   s   € Ør   c                 óD   — t        dd«      }d}| j                  ||«       y )Ni�  z{"error": "Invalid token"}z"Twitch API Error: Invalid token ()©r	   Úcheck_for_error©r   Ú	resp_mockÚexpected_errors      r   Ú)test_response_over_400_raises_OAuth2Errorz5TwitchTests.test_response_over_400_raises_OAuth2Error)   s$   € Ü" 3Ð(DÓEˆ	Ø=ˆà×Ñ˜Y¨Õ7r   c                 ó„   — t        dd«      }d}| j                  ||«       t        dd«      }d}| j                  ||«       y )Nr   z{"data": []}z*Invalid data from Twitch API: {'data': []}z{"missing_data": "key"}z5Invalid data from Twitch API: {'missing_data': 'key'}r   r   s      r   Ú1test_empty_or_missing_data_key_raises_OAuth2Errorz=TwitchTests.test_empty_or_missing_data_key_raises_OAuth2Error/   sE   € Ü" 3¨Ó7ˆ	ØEˆà×Ñ˜Y¨Ô7ä" 3Ð(AÓBˆ	ØPˆà×Ñ˜Y¨Õ7r   c                 óD   — t        dd«      }d}| j                  ||«       y )Nr   z${"data": [{"login": "fake_twitch"}]}z6Invalid data from Twitch API: {'login': 'fake_twitch'}r   r   s      r   Ú)test_missing_twitch_id_raises_OAuth2Errorz5TwitchTests.test_missing_twitch_id_raises_OAuth2Error:   s$   € Ü" 3Ð(NÓOˆ	ØQˆà×Ñ˜Y¨Õ7r   c                 óä   — | j                  t        «      5 }| j                  |«       d d d «       | j                  t	        j
                  «      j                  dd«      |«       y # 1 sw Y   Œ?xY w)NÚuÚ )ÚassertRaisesr   Ú_run_just_complete_loginÚassertEqualÚstrÚ	exceptionÚreplace)r   r   r    Ú	error_ctxs       r   r   zTwitchTests.check_for_error@   s_   € Ø×Ñœ{Ó+ð 	5¨yØ×)Ñ)¨)Ô4÷	5ð 	×Ñœ˜Y×0Ñ0Ó1×9Ñ9¸#¸rÓBÀNÕS÷	5ð 	5ús   –A&Á&A/c                 óZ  — t        «       j                  t        | j                  j                  dz   «      ddi«      }t        |«      }|j                  «       j                  }t        d¬«      }t        |«      5  t        |«      }|j                  |||«       ddd«       y# 1 sw Y   yxY w)zý
        Helper function for checking that Error cases are
        handled correctly. Running only `complete_login` means
        we can check that the specific errors are raised before
        they are caught and rendered to generic error HTML
        Ú_loginÚprocessÚloginzthis-is-my-fake-token)ÚtokenN)r   Úgetr   ÚproviderÚidr   Úget_providerÚappr   r
   Úcomplete_login)r   r   ÚrequestÚadapterr9   r4   s         r   r*   z$TwitchTests._run_just_complete_loginF   sš   € ô !Ó"×&Ñ&Ü�D—M‘M×$Ñ$ xÑ/Ó0Ø˜Ð ó
ˆô & gÓ.ˆØ×"Ñ"Ó$×(Ñ(ˆÜÐ"9Ô:ˆä˜YÓ'ñ 	8Ü)¨'Ó2ˆGØ×"Ñ" 7¨C°Ô7÷	8÷ 	8ñ 	8ús   Á9B!Â!B*N)Ú__name__Ú
__module__Ú__qualname__r   r7   Úprovider_idr   r   r!   r#   r%   r   r*   r   r   r   r   r      s1   „ Ø ×#Ñ#€Kò
ò*ò8ò	8ò8òTó8r   r   N)Údjango.testr   Údjango.test.clientr   Údjango.urlsr   Úallauth.socialaccount.modelsr   Ú-allauth.socialaccount.providers.oauth2.clientr   Úallauth.socialaccount.testsr   Úallauth.testsr	   r
   r6   r   Úviewsr   r   r   r   r   ú<module>rI      s1   ðÝ  Ý -Ý å 4Ý EÝ 8ß 9å $Ý &ôI8Ð" Hõ I8r   