class BitbucketTests(create_oauth_tests(registry.by_id(BitbucketProvider.id))): def get_mocked_response(self): # FIXME: Replace with actual/complete Bitbucket response return [ MockedResponse( 200, r""" [{"active": true, "email": "*****@*****.**", "primary": true}, {"active": true, "email": "*****@*****.**", "primary": false}, {"active": true, "email": "*****@*****.**", "primary": false}] """), MockedResponse( 200, r""" {"repositories": [], "user": {"avatar": "https://secure.gravatar.com/avatar.jpg", "display_name": "pennersr", "first_name": "", "is_team": false, "last_name": "", "resource_uri": "/1.0/users/pennersr", "username": "******"}} """) ] # noqa def test_login(self): account = super(BitbucketTests, self).test_login() bb_account = account.get_provider_account() self.assertEqual(bb_account.get_username(), 'pennersr') self.assertEqual(bb_account.get_avatar_url(), 'https://secure.gravatar.com/avatar.jpg') self.assertEqual(bb_account.get_profile_url(), 'http://bitbucket.org/pennersr')
class XingTests(create_oauth_tests(registry.by_id(XingProvider.id))): def get_mocked_response(self): return [ MockedResponse( 200, """ {"users":[{"id":"20493333_1cd028","active_email":"*****@*****.**", "badges":[],"birth_date":{"year":null,"month":null,"day":null}, "business_address":{"street":null,"zip_code":null,"city":null,"province":null, "country":"NL","email":null,"fax":null,"phone":null,"mobile_phone":null}, "display_name":"Raymond Penners","educational_background": {"primary_school_id":null,"schools":[],"qualifications":[]}, "employment_status":"EMPLOYEE","first_name":"Raymond","gender":"m", "haves":null,"instant_messaging_accounts":{},"interests":null,"languages": {"nl":null},"last_name":"Penners","organisation_member":null, "page_name":"Raymond_Penners", "permalink":"https://www.xing.com/profile/Raymond_Penners", "photo_urls":{"thumb":"https://www.xing.com/img/n/nobody_m.30x40.jpg", "large":"https://www.xing.com/img/n/nobody_m.140x185.jpg","mini_thumb": "https://www.xing.com/img/n/nobody_m.18x24.jpg","maxi_thumb": "https://www.xing.com/img/n/nobody_m.70x93.jpg","medium_thumb": "https://www.xing.com/img/n/nobody_m.57x75.jpg"},"premium_services":[], "private_address":{"street":null,"zip_code":null,"city":null,"province":null, "country":null,"email":"*****@*****.**","fax":null, "phone":null,"mobile_phone":null},"professional_experience": {"primary_company":{"name":null,"url":null,"tag":null,"title":null, "begin_date":null,"end_date":null,"description":null,"industry":"OTHERS", "company_size":null,"career_level":null},"non_primary_companies":[], "awards":[]},"time_zone":{"utc_offset":2.0,"name":"Europe/Berlin"}, "wants":null,"web_profiles":{}}]} """) ]
class TwitterTests(create_oauth_tests(registry.by_id(TwitterProvider.id))): def get_mocked_response(self): # FIXME: Replace with actual/complete Twitter response return [ MockedResponse( 200, r""" {"follow_request_sent": false, "profile_use_background_image": true, "id": 45671919, "verified": false, "profile_text_color": "333333", "profile_image_url_https": "https://pbs.twimg.com/profile_images/793142149/r_normal.png", "profile_sidebar_fill_color": "DDEEF6", "is_translator": false, "geo_enabled": false, "entities": {"description": {"urls": []}}, "followers_count": 43, "protected": false, "location": "The Netherlands", "default_profile_image": false, "id_str": "45671919", "status": {"contributors": null, "truncated": false, "text": "RT @denibertovic: Okay I'm definitely using django-allauth from now on. So easy to set up, far less time consuming, and it just works. #dja\u2026", "in_reply_to_status_id": null, "id": 400658301702381568, "favorite_count": 0, "source": "<a href=\"http://twitter.com\" rel=\"nofollow\">Twitter Web Client</a>", "retweeted": true, "coordinates": null, "entities": {"symbols": [], "user_mentions": [{"indices": [3, 16], "screen_name": "denibertovic", "id": 23508244, "name": "Deni Bertovic", "id_str": "23508244"}], "hashtags": [{"indices": [135, 139], "text": "dja"}], "urls": []}, "in_reply_to_screen_name": null, "id_str": "400658301702381568", "retweet_count": 6, "in_reply_to_user_id": null, "favorited": false, "retweeted_status": {"lang": "en", "favorited": false, "in_reply_to_user_id": null, "contributors": null, "truncated": false, "text": "Okay I'm definitely using django-allauth from now on. So easy to set up, far less time consuming, and it just works. #django", "created_at": "Sun Jul 28 19:56:26 +0000 2013", "retweeted": true, "in_reply_to_status_id": null, "coordinates": null, "id": 361575897674956800, "entities": {"symbols": [], "user_mentions": [], "hashtags": [{"indices": [117, 124], "text": "django"}], "urls": []}, "in_reply_to_status_id_str": null, "in_reply_to_screen_name": null, "source": "web", "place": null, "retweet_count": 6, "geo": null, "in_reply_to_user_id_str": null, "favorite_count": 8, "id_str": "361575897674956800"}, "geo": null, "in_reply_to_user_id_str": null, "lang": "en", "created_at": "Wed Nov 13 16:15:57 +0000 2013", "in_reply_to_status_id_str": null, "place": null}, "utc_offset": 3600, "statuses_count": 39, "description": "", "friends_count": 83, "profile_link_color": "0084B4", "profile_image_url": "http://pbs.twimg.com/profile_images/793142149/r_normal.png", "notifications": false, "profile_background_image_url_https": "https://abs.twimg.com/images/themes/theme1/bg.png", "profile_background_color": "C0DEED", "profile_background_image_url": "http://abs.twimg.com/images/themes/theme1/bg.png", "name": "Raymond Penners", "lang": "nl", "profile_background_tile": false, "favourites_count": 0, "screen_name": "pennersr", "url": null, "created_at": "Mon Jun 08 21:10:45 +0000 2009", "contributors_enabled": false, "time_zone": "Amsterdam", "profile_sidebar_border_color": "C0DEED", "default_profile": true, "following": false, "listed_count": 1} """ ) ] # noqa def test_login(self): account = super(TwitterTests, self).test_login() tw_account = account.get_provider_account() self.assertEqual(tw_account.get_screen_name(), 'pennersr') self.assertEqual( tw_account.get_avatar_url(), 'http://pbs.twimg.com/profile_images/793142149/r.png') self.assertEqual(tw_account.get_profile_url(), 'http://twitter.com/pennersr')
class TumblrTests(create_oauth_tests(registry.by_id(TumblrProvider.id))): def get_mocked_response(self): return [MockedResponse(200, """ { "meta": { "status": 200, "msg": "OK" }, "response": { "user": { "following": 263, "default_post_format": "html", "name": "derekg", "likes": 606, "blogs": [ { "name": "derekg", "title": "Derek Gottfrid", "url": "http://derekg.org/", "tweet": "auto", "primary": true, "followers": 33004929 }, { "name": "ihatehipstrz", "title": "I Hate Hipstrz" } ] } } } """)]
class EvernoteTests(create_oauth_tests(registry.by_id(EvernoteProvider.id))): def get_mocked_response(self): return [] def get_access_token_response(self): return MockedResponse( 200, 'oauth_token=S%3Ds1%3AU%3D9876%3AE%3D999999b0c50%3AC%3D14c1f89dd18%3AP%3D81%3AA%3Dpennersr%3AV%3D2%3AH%3Ddeadf00dd2d6aba7b519923987b4bf77&oauth_token_secret=&edam_shard=s1&edam_userId=591969&edam_expires=1457994271824&edam_noteStoreUrl=https%3A%2F%2Fsandbox.evernote.com%2Fshard%2Fs1%2Fnotestore&edam_webApiUrlPrefix=https%3A%2F%2Fsandbox.evernote.com%2Fshard%2Fs1%2F', # noqa {'content-type': 'text/plain'})
class LinkedInTests(create_oauth_tests(registry.by_id(LinkedInProvider.id))): def get_mocked_response(self): return [MockedResponse(200, """<?xml version="1.0" encoding="UTF-8" standalone="yes"?> <person> <id>oKmTqN2ffc</id> <first-name>R@ymØnd</first-name> <last-name>Pènnèrs</last-name> <email-address>[email protected]</email-address> <picture-url>http://m.c.lnkd.licdn.com/mpr/mprx/0_e0hbvSLc8QWo3ggPeVKqvaFR860d342Pogq4vakwx8IJOyR1XJrwRmr5mIx9C0DxWpGMsW9Lb8EQ</picture-url> <public-profile-url>http://www.linkedin.com/in/intenct</public-profile-url> </person> """)]
class FlickrTests(create_oauth_tests(registry.by_id(FlickrProvider.id))): def get_mocked_response(self): # return [ MockedResponse( 200, r""" {"stat": "ok", "user": {"username": {"_content": "pennersr"}, "id": "12345678@N00"}} """), # noqa MockedResponse( 200, r""" {"person": {"username": {"_content": "pennersr"}, "photosurl": {"_content": "http://www.flickr.com/photos/12345678@N00/"}, "nsid": "12345678@N00", "path_alias": null, "photos": {"count": {"_content": 0}, "firstdatetaken": {"_content": null}, "views": {"_content": "28"}, "firstdate": {"_content": null}}, "iconserver": "0", "description": {"_content": ""}, "mobileurl": {"_content": "http://m.flickr.com/photostream.gne?id=6294613"}, "profileurl": {"_content": "http://www.flickr.com/people/12345678@N00/"}, "mbox_sha1sum": {"_content": "5e5b359c123e54f95236209c8808d607a5cdd21e"}, "ispro": 0, "location": {"_content": ""}, "id": "12345678@N00", "realname": {"_content": "raymond penners"}, "iconfarm": 0}, "stat": "ok"} """) ] # noqa def test_login(self): account = super(FlickrTests, self).test_login() f_account = account.get_provider_account() self.assertEqual(account.user.first_name, 'raymond') self.assertEqual(account.user.last_name, 'penners') self.assertEqual(f_account.get_profile_url(), 'http://www.flickr.com/people/12345678@N00/')
class DropboxTests(create_oauth_tests(registry.by_id(DropboxProvider.id))): def get_mocked_response(self): # FIXME: Replace with actual/complete Dropbox response return MockedResponse(200, u""" { "uid": "123" } """)
class TwitterTests(create_oauth_tests(registry.by_id(TwitterProvider.id))): def get_mocked_response(self): # FIXME: Replace with actual/complete Twitter response return MockedResponse(200, u""" { "id": "123" } """)
class VimeoTests(create_oauth_tests(registry.by_id(VimeoProvider.id))): def get_mocked_response(self): return MockedResponse( 200, """ {"generated_in":"0.0137","stat":"ok","person":{"created_on":"2013-04-08 14:24:47","id":"17574504","is_contact":"0","is_plus":"0","is_pro":"0","is_staff":"0","is_subscribed_to":"0","username":"******","display_name":"Raymond Penners","location":"","url":[""],"bio":"","number_of_contacts":"0","number_of_uploads":"0","number_of_likes":"0","number_of_videos":"0","number_of_videos_appears_in":"0","number_of_albums":"0","number_of_channels":"0","number_of_groups":"0","profileurl":"http:\\/\\/vimeo.com\\/user17574504","videosurl":"http:\\/\\/vimeo.com\\/user17574504\\/videos","portraits":{"portrait":[{"height":"30","width":"30","_content":"http:\\/\\/a.vimeocdn.com\\/images_v6\\/portraits\\/portrait_30_yellow.png"},{"height":"75","width":"75","_content":"http:\\/\\/a.vimeocdn.com\\/images_v6\\/portraits\\/portrait_75_yellow.png"},{"height":"100","width":"100","_content":"http:\\/\\/a.vimeocdn.com\\/images_v6\\/portraits\\/portrait_100_yellow.png"},{"height":"300","width":"300","_content":"http:\\/\\/a.vimeocdn.com\\/images_v6\\/portraits\\/portrait_300_yellow.png"}]}}} """)