|
1 | | -# pyright: reportAttributeAccessIssue=false |
2 | 1 | import json |
3 | | -from urllib.parse import urlencode |
4 | 2 |
|
5 | | -import requests |
6 | | -import responses |
| 3 | +from .oauth import BaseAuthUrlTestMixin, OAuth2Test |
7 | 4 |
|
8 | | -from .oauth import OAuth1AuthUrlTestMixin, OAuth1Test |
9 | 5 |
|
10 | | - |
11 | | -class YahooOAuth1Test(OAuth1Test, OAuth1AuthUrlTestMixin): |
12 | | - backend_path = "social_core.backends.yahoo.YahooOAuth" |
13 | | - user_data_url = "https://social.yahooapis.com/v1/user/a-guid/profile?format=json" |
14 | | - expected_username = "foobar" |
15 | | - access_token_body = json.dumps({"access_token": "foobar", "token_type": "bearer"}) |
16 | | - request_token_body = urlencode( |
| 6 | +class YahooOAuth2Test(OAuth2Test, BaseAuthUrlTestMixin): |
| 7 | + backend_path = "social_core.backends.yahoo.YahooOAuth2" |
| 8 | + user_data_url = "https://api.login.yahoo.com/openid/v1/userinfo" |
| 9 | + expected_username = "j.doe" |
| 10 | + access_token_body = json.dumps( |
17 | 11 | { |
18 | | - "oauth_token_secret": "foobar-secret", |
19 | | - "oauth_token": "foobar", |
20 | | - "oauth_callback_confirmed": "true", |
| 12 | + "access_token": "UNQO1djO5xpaKm3_KbECBKB5mlFr6tSZTOLrrJCprtT1X1UFljpxiS5iSue8u_n8ah1WbL6sTNw3HPFHicyXDbTs7aSrbIe.rx9n9dzX7xZjx8dyF2Ap1a6J_nw4k56a5mCOuTd.ZFQENgGtHwM0DRFVeDNTAx_WzhqDGPCqhtsNICuuY30soFZGS11FTlUk7Gy0ISjxLRAjIZVtpojnY5p8XuT1qUtAheWqZegJ_7t.AP4o0J4xJ3_oocXeiSKEXaD3AijdBdViKPZI3Ow7yeHK8uX1weNfKoSP6eEpCviyj0YlRMIBSg4cRdGL6EsSggX6B5gzgcA9efDSpcwVhupY0RlUdi.AxJ1nT0frWmrYiwntpu1XP_5mIbOlb4wfrD_ZCRNY2Qby40RBt5iHERSJ89K1o69fw3Jd4C3hF14iJLHcDHmnYJSX651G9MlpGPWT99DRteCdhSm8URbZqfGPG8mZtLpmhfxr1umCoGEgocrfHpITMjOyEwvgmAhgjGKXugvdNTABn0AEQBetIVtJ80Ymbn6IMq_Qh10vyspVsVK69C9yTlwLtZhcvim5Nk_15JHd0GSj0Mj.X.FWTzUK1e3CNQjeJxdQ2Qk9BXDC4_DXW_Ot5LzYy5qRvRKT4gh54n5aBROxFdky0ELt1IgkLTRJ0idUCen87klP.0CLp1QTNXx99N6nM9c_HwWVKwhILUjzXaIrP0GVEMwlGIHqn2I91Z03irBgzrMB219lqUAuF27_OD4QnyQfICSW65n5hVo1e89xwN6VN3usRrhHmdDfd7nk3nzMyXdsOPzghA1huBCYyEGZ_kq9FzVFQ5QYDmJ0WqpmG1yXDEntYVvkB_i_jkbNPH4.R134ptwznCZSuQ--", |
| 13 | + "refresh_token": "AJj.Dlbt_e4XN85buQhFXj77sIB3lqBF3Bcqb2kwUEoYrBb0Pg--", |
| 14 | + "expires_in": 3600, |
| 15 | + "token_type": "bearer", |
| 16 | + "xoauth_yahoo_guid": "UQIDWJNWVNQD4GXZ5NGMZUSTQ4", |
| 17 | + "id_token": "eyJhbGciOiJFUzI1NiIsImtpZCI6IjM0NjZkNTFmN2RkMGM3ODA1NjU2ODhjMTgzOTIxODE2YzQ1ODg5YWQifQ.eyJhdF9oYXNoIjoiYWM5YkR3ejVMWjl5UEVpdWtEcGdzdz09Iiwic3ViIjoiVVFJRFdKTldWTlFENEdYWjVOR01aVVNUUTQiLCJhdWQiOiJkajB5Sm1rOVdHeDBRbEUwVVdkQ2EwaEtKbVE5V1Zkck9XTnJOVWhYVm5CaFRraEZiV05IYnpsTlFTMHRKbk05WTI5dWMzVnRaWEp6WldOeVpYUW1lRDAxT0EtLSIsImlzcyI6Imh0dHBzOi8vbG9naW4ueWFob28uY29tIiwiZXhwIjoxNDQzODI3MTMwLCJub25jZSI6IjEyMzQ1IiwiaWF0IjoxNDQzODIzNTMwfQ.n7oEFi5028StcI41Hkh6lLYK4PmF7pT4AIXrQ_62nfDEZj2g0oYjSLFPJp4IqF6LefwcCQ9FHT5X9eC8A7peqw", |
21 | 18 | } |
22 | 19 | ) |
23 | | - guid_body = json.dumps( |
24 | | - {"guid": {"uri": "https://social.yahooapis.com/v1/me/guid", "value": "a-guid"}} |
25 | | - ) |
26 | 20 | user_data_body = json.dumps( |
27 | 21 | { |
28 | | - "profile": { |
29 | | - "bdRestricted": True, |
30 | | - "memberSince": "2007-12-11T14:40:30Z", |
31 | | - "image": { |
32 | | - "width": 192, |
33 | | - "imageUrl": "http://l.yimg.com/dh/ap/social/profile/" |
34 | | - "profile_b192.png", |
35 | | - "size": "192x192", |
36 | | - "height": 192, |
37 | | - }, |
38 | | - "created": "2013-03-18T04:15:08Z", |
39 | | - "uri": "https://social.yahooapis.com/v1/user/a-guid/profile", |
40 | | - "isConnected": False, |
41 | | - "profileUrl": "http://profile.yahoo.com/a-guid", |
42 | | - "guid": "a-guid", |
43 | | - "nickname": "foobar", |
44 | | - "emails": [ |
45 | | - { |
46 | | - |
47 | | - "id": 1, |
48 | | - "primary": True, |
49 | | - "type": "HOME", |
50 | | - }, |
51 | | - { |
52 | | - |
53 | | - "id": 2, |
54 | | - "type": "HOME", |
55 | | - }, |
56 | | - ], |
57 | | - } |
| 22 | + "sub": "FSVIDUW3D7FSVIDUW3D72F2F", # user identifier |
| 23 | + "name": "Jane Doe", |
| 24 | + "given_name": "Jane", |
| 25 | + "family_name": "Doe", |
| 26 | + "preferred_username": "j.doe", |
| 27 | + |
| 28 | + "picture": "http://example.com/janedoe/me.jpg", |
58 | 29 | } |
59 | 30 | ) |
60 | 31 |
|
61 | 32 | def test_login(self) -> None: |
62 | | - responses.add( |
63 | | - responses.GET, |
64 | | - "https://social.yahooapis.com/v1/me/guid?format=json", |
65 | | - status=200, |
66 | | - body=self.guid_body, |
67 | | - ) |
68 | 33 | self.do_login() |
69 | 34 |
|
70 | 35 | def test_partial_pipeline(self) -> None: |
71 | | - responses.add( |
72 | | - responses.GET, |
73 | | - "https://social.yahooapis.com/v1/me/guid?format=json", |
74 | | - status=200, |
75 | | - body=self.guid_body, |
76 | | - ) |
77 | 36 | self.do_partial_pipeline() |
78 | | - |
79 | | - def test_get_user_details(self) -> None: |
80 | | - responses.add( |
81 | | - responses.GET, self.user_data_url, status=200, body=self.user_data_body |
82 | | - ) |
83 | | - response = requests.get(self.user_data_url, timeout=1) |
84 | | - user_details = self.backend.get_user_details(response.json()["profile"]) |
85 | | - self. assertEqual( user_details[ "email"], "[email protected]") |
0 commit comments