{"action":"created","comment":{"url":"https://api.github.com/repos/calblueprint/revolv/pulls/comments/26450097","id":26450097,"diff_hunk":"@@ -0,0 +1,70 @@\n+from bs4 import BeautifulSoup\n+from django.contrib.auth import authenticate\n+from django.core import mail\n+from django.test import TestCase\n+from django_webtest import WebTest\n+from revolv.lib.testing import TestUserMixin\n+\n+\n+class DashboardTestCase(TestUserMixin, TestCase):\n+    DASH_BASE = \"/dashboard/\"\n+    ADMIN_DASH = \"/dashboard/admin/\"\n+    AMBAS_DASH = \"/dashboard/ambassador/\"\n+    DONOR_DASH = \"/dashboard/donor/\"\n+    HOME_URL = \"/\"\n+\n+    def test_dash_redirects(self):\n+        \"\"\"Test that the dashboard links redirect to the correct dashboard levels.\"\"\"\n+        response = self.client.get(self.DASH_BASE, follow=True)\n+        self.assertRedirects(response, self.HOME_URL)\n+\n+        self.send_test_user_login_request()\n+        self.test_profile.make_administrator()\n+        response = self.client.get(self.DASH_BASE, follow=True)\n+        self.assertRedirects(response, self.ADMIN_DASH)\n+\n+        self.test_profile.make_ambassador()\n+        response = self.client.get(self.DASH_BASE, follow=True)\n+        self.assertRedirects(response, self.AMBAS_DASH)\n+\n+        self.test_profile.make_donor()\n+        response = self.client.get(self.DASH_BASE, follow=True)\n+        self.assertRedirects(response, self.DONOR_DASH)\n+\n+\n+class AuthIntegrationTest(TestUserMixin, WebTest):\n+    def test_forgot_password_flow(self):\n+        \"\"\"Test that the entire forgot password flow works.\"\"\"\n+        response = self.app.get(\"/login/\").maybe_follow()\n+        reset_page_response = response.click(linkid=\"reset\")","path":"revolv/base/tests/test_integration.py","position":39,"original_position":39,"commit_id":"45ddb2fb55b7bfb8527a0206e90df82c0f2da65f","original_commit_id":"45ddb2fb55b7bfb8527a0206e90df82c0f2da65f","user":{"login":"erictshen","id":2114482,"avatar_url":"https://avatars.githubusercontent.com/u/2114482?v=3","gravatar_id":"","url":"https://api.github.com/users/erictshen","html_url":"https://github.com/erictshen","followers_url":"https://api.github.com/users/erictshen/followers","following_url":"https://api.github.com/users/erictshen/following{/other_user}","gists_url":"https://api.github.com/users/erictshen/gists{/gist_id}","starred_url":"https://api.github.com/users/erictshen/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/erictshen/subscriptions","organizations_url":"https://api.github.com/users/erictshen/orgs","repos_url":"https://api.github.com/users/erictshen/repos","events_url":"https://api.github.com/users/erictshen/events{/privacy}","received_events_url":"https://api.github.com/users/erictshen/received_events","type":"User","site_admin":false},"body":"Minor, and not fully familiar with this framework, but is there a way to start from the password reset page instead of login?","created_at":"2015-03-15T17:54:49Z","updated_at":"2015-03-15T17:54:49Z","html_url":"https://github.com/calblueprint/revolv/pull/198#discussion_r26450097","pull_request_url":"https://api.github.com/repos/calblueprint/revolv/pulls/198","_links":{"self":{"href":"https://api.github.com/repos/calblueprint/revolv/pulls/comments/26450097"},"html":{"href":"https://github.com/calblueprint/revolv/pull/198#discussion_r26450097"},"pull_request":{"href":"https://api.github.com/repos/calblueprint/revolv/pulls/198"}}},"pull_request":{"url":"https://api.github.com/repos/calblueprint/revolv/pulls/198","id":31107039,"html_url":"https://github.com/calblueprint/revolv/pull/198","diff_url":"https://github.com/calblueprint/revolv/pull/198.diff","patch_url":"https://github.com/calblueprint/revolv/pull/198.patch","issue_url":"https://api.github.com/repos/calblueprint/revolv/issues/198","number":198,"state":"open","locked":false,"title":"Password reset","user":{"login":"noahsark769","id":1168853,"avatar_url":"https://avatars.githubusercontent.com/u/1168853?v=3","gravatar_id":"","url":"https://api.github.com/users/noahsark769","html_url":"https://github.com/noahsark769","followers_url":"https://api.github.com/users/noahsark769/followers","following_url":"https://api.github.com/users/noahsark769/following{/other_user}","gists_url":"https://api.github.com/users/noahsark769/gists{/gist_id}","starred_url":"https://api.github.com/users/noahsark769/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/noahsark769/subscriptions","organizations_url":"https://api.github.com/users/noahsark769/orgs","repos_url":"https://api.github.com/users/noahsark769/repos","events_url":"https://api.github.com/users/noahsark769/events{/privacy}","received_events_url":"https://api.github.com/users/noahsark769/received_events","type":"User","site_admin":false},"body":"Fixes #71 \r\n\r\n1. Implemented a bunch of pages for django's builtin password reset\r\n2. Made `signin.scss` now `auth.scss` because styles are the same across signin and password reset pages.\r\n\r\n![screen shot 2015-03-13 at 1 15 49 am](https://cloud.githubusercontent.com/assets/1168853/6635097/f3d7427e-c91e-11e4-9ae4-e2139a92c814.png)\r\n![screen shot 2015-03-13 at 1 15 54 am](https://cloud.githubusercontent.com/assets/1168853/6635094/f3d5520c-c91e-11e4-9556-85db99786a62.png)\r\n![screen shot 2015-03-13 at 1 16 39 am](https://cloud.githubusercontent.com/assets/1168853/6635095/f3d6e748-c91e-11e4-9d64-22c61136eb17.png)\r\n![screen shot 2015-03-13 at 1 16 55 am](https://cloud.githubusercontent.com/assets/1168853/6635096/f3d75ca0-c91e-11e4-9bdf-1138eac57b8e.png)\r\n![screen shot 2015-03-13 at 1 17 03 am](https://cloud.githubusercontent.com/assets/1168853/6635098/f3d772f8-c91e-11e4-855a-9b2ad9c8c416.png)\r\n![screen shot 2015-03-13 at 1 17 12 am](https://cloud.githubusercontent.com/assets/1168853/6635099/f3d7abc4-c91e-11e4-91f0-e26fcf52ce30.png)\r\n\r\n@erictshen you should give me a quick LGTM, or maybe @vivekraghuram","created_at":"2015-03-13T08:19:55Z","updated_at":"2015-03-15T17:54:49Z","closed_at":null,"merged_at":null,"merge_commit_sha":"699b7159b29a6303cf283328243254cf837fa904","assignee":null,"milestone":null,"commits_url":"https://api.github.com/repos/calblueprint/revolv/pulls/198/commits","review_comments_url":"https://api.github.com/repos/calblueprint/revolv/pulls/198/comments","review_comment_url":"https://api.github.com/repos/calblueprint/revolv/pulls/comments{/number}","comments_url":"https://api.github.com/repos/calblueprint/revolv/issues/198/comments","statuses_url":"https://api.github.com/repos/calblueprint/revolv/statuses/45ddb2fb55b7bfb8527a0206e90df82c0f2da65f","head":{"label":"calblueprint:noah__forgot_password","ref":"noah__forgot_password","sha":"45ddb2fb55b7bfb8527a0206e90df82c0f2da65f","user":{"login":"calblueprint","id":2729578,"avatar_url":"https://avatars.githubusercontent.com/u/2729578?v=3","gravatar_id":"","url":"https://api.github.com/users/calblueprint","html_url":"https://github.com/calblueprint","followers_url":"https://api.github.com/users/calblueprint/followers","following_url":"https://api.github.com/users/calblueprint/following{/other_user}","gists_url":"https://api.github.com/users/calblueprint/gists{/gist_id}","starred_url":"https://api.github.com/users/calblueprint/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/calblueprint/subscriptions","organizations_url":"https://api.github.com/users/calblueprint/orgs","repos_url":"https://api.github.com/users/calblueprint/repos","events_url":"https://api.github.com/users/calblueprint/events{/privacy}","received_events_url":"https://api.github.com/users/calblueprint/received_events","type":"Organization","site_admin":false},"repo":{"id":24279940,"name":"revolv","full_name":"calblueprint/revolv","owner":{"login":"calblueprint","id":2729578,"avatar_url":"https://avatars.githubusercontent.com/u/2729578?v=3","gravatar_id":"","url":"https://api.github.com/users/calblueprint","html_url":"https://github.com/calblueprint","followers_url":"https://api.github.com/users/calblueprint/followers","following_url":"https://api.github.com/users/calblueprint/following{/other_user}","gists_url":"https://api.github.com/users/calblueprint/gists{/gist_id}","starred_url":"https://api.github.com/users/calblueprint/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/calblueprint/subscriptions","organizations_url":"https://api.github.com/users/calblueprint/orgs","repos_url":"https://api.github.com/users/calblueprint/repos","events_url":"https://api.github.com/users/calblueprint/events{/privacy}","received_events_url":"https://api.github.com/users/calblueprint/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/calblueprint/revolv","description":"Crowdfunding application for the npo RE-volv. Travis: https://travis-ci.org/calblueprint/revolv","fork":false,"url":"https://api.github.com/repos/calblueprint/revolv","forks_url":"https://api.github.com/repos/calblueprint/revolv/forks","keys_url":"https://api.github.com/repos/calblueprint/revolv/keys{/key_id}","collaborators_url":"https://api.github.com/repos/calblueprint/revolv/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/calblueprint/revolv/teams","hooks_url":"https://api.github.com/repos/calblueprint/revolv/hooks","issue_events_url":"https://api.github.com/repos/calblueprint/revolv/issues/events{/number}","events_url":"https://api.github.com/repos/calblueprint/revolv/events","assignees_url":"https://api.github.com/repos/calblueprint/revolv/assignees{/user}","branches_url":"https://api.github.com/repos/calblueprint/revolv/branches{/branch}","tags_url":"https://api.github.com/repos/calblueprint/revolv/tags","blobs_url":"https://api.github.com/repos/calblueprint/revolv/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/calblueprint/revolv/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/calblueprint/revolv/git/refs{/sha}","trees_url":"https://api.github.com/repos/calblueprint/revolv/git/trees{/sha}","statuses_url":"https://api.github.com/repos/calblueprint/revolv/statuses/{sha}","languages_url":"https://api.github.com/repos/calblueprint/revolv/languages","stargazers_url":"https://api.github.com/repos/calblueprint/revolv/stargazers","contributors_url":"https://api.github.com/repos/calblueprint/revolv/contributors","subscribers_url":"https://api.github.com/repos/calblueprint/revolv/subscribers","subscription_url":"https://api.github.com/repos/calblueprint/revolv/subscription","commits_url":"https://api.github.com/repos/calblueprint/revolv/commits{/sha}","git_commits_url":"https://api.github.com/repos/calblueprint/revolv/git/commits{/sha}","comments_url":"https://api.github.com/repos/calblueprint/revolv/comments{/number}","issue_comment_url":"https://api.github.com/repos/calblueprint/revolv/issues/comments{/number}","contents_url":"https://api.github.com/repos/calblueprint/revolv/contents/{+path}","compare_url":"https://api.github.com/repos/calblueprint/revolv/compare/{base}...{head}","merges_url":"https://api.github.com/repos/calblueprint/revolv/merges","archive_url":"https://api.github.com/repos/calblueprint/revolv/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/calblueprint/revolv/downloads","issues_url":"https://api.github.com/repos/calblueprint/revolv/issues{/number}","pulls_url":"https://api.github.com/repos/calblueprint/revolv/pulls{/number}","milestones_url":"https://api.github.com/repos/calblueprint/revolv/milestones{/number}","notifications_url":"https://api.github.com/repos/calblueprint/revolv/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/calblueprint/revolv/labels{/name}","releases_url":"https://api.github.com/repos/calblueprint/revolv/releases{/id}","created_at":"2014-09-21T02:30:04Z","updated_at":"2015-03-12T19:47:16Z","pushed_at":"2015-03-13T23:44:35Z","git_url":"git://github.com/calblueprint/revolv.git","ssh_url":"git@github.com:calblueprint/revolv.git","clone_url":"https://github.com/calblueprint/revolv.git","svn_url":"https://github.com/calblueprint/revolv","homepage":"","size":4288,"stargazers_count":8,"watchers_count":8,"language":"CSS","has_issues":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":0,"mirror_url":null,"open_issues_count":53,"forks":0,"open_issues":53,"watchers":8,"default_branch":"master"}},"base":{"label":"calblueprint:master","ref":"master","sha":"6ccebb28e0df3a798dc252bece079ebb64ef3160","user":{"login":"calblueprint","id":2729578,"avatar_url":"https://avatars.githubusercontent.com/u/2729578?v=3","gravatar_id":"","url":"https://api.github.com/users/calblueprint","html_url":"https://github.com/calblueprint","followers_url":"https://api.github.com/users/calblueprint/followers","following_url":"https://api.github.com/users/calblueprint/following{/other_user}","gists_url":"https://api.github.com/users/calblueprint/gists{/gist_id}","starred_url":"https://api.github.com/users/calblueprint/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/calblueprint/subscriptions","organizations_url":"https://api.github.com/users/calblueprint/orgs","repos_url":"https://api.github.com/users/calblueprint/repos","events_url":"https://api.github.com/users/calblueprint/events{/privacy}","received_events_url":"https://api.github.com/users/calblueprint/received_events","type":"Organization","site_admin":false},"repo":{"id":24279940,"name":"revolv","full_name":"calblueprint/revolv","owner":{"login":"calblueprint","id":2729578,"avatar_url":"https://avatars.githubusercontent.com/u/2729578?v=3","gravatar_id":"","url":"https://api.github.com/users/calblueprint","html_url":"https://github.com/calblueprint","followers_url":"https://api.github.com/users/calblueprint/followers","following_url":"https://api.github.com/users/calblueprint/following{/other_user}","gists_url":"https://api.github.com/users/calblueprint/gists{/gist_id}","starred_url":"https://api.github.com/users/calblueprint/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/calblueprint/subscriptions","organizations_url":"https://api.github.com/users/calblueprint/orgs","repos_url":"https://api.github.com/users/calblueprint/repos","events_url":"https://api.github.com/users/calblueprint/events{/privacy}","received_events_url":"https://api.github.com/users/calblueprint/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/calblueprint/revolv","description":"Crowdfunding application for the npo RE-volv. Travis: https://travis-ci.org/calblueprint/revolv","fork":false,"url":"https://api.github.com/repos/calblueprint/revolv","forks_url":"https://api.github.com/repos/calblueprint/revolv/forks","keys_url":"https://api.github.com/repos/calblueprint/revolv/keys{/key_id}","collaborators_url":"https://api.github.com/repos/calblueprint/revolv/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/calblueprint/revolv/teams","hooks_url":"https://api.github.com/repos/calblueprint/revolv/hooks","issue_events_url":"https://api.github.com/repos/calblueprint/revolv/issues/events{/number}","events_url":"https://api.github.com/repos/calblueprint/revolv/events","assignees_url":"https://api.github.com/repos/calblueprint/revolv/assignees{/user}","branches_url":"https://api.github.com/repos/calblueprint/revolv/branches{/branch}","tags_url":"https://api.github.com/repos/calblueprint/revolv/tags","blobs_url":"https://api.github.com/repos/calblueprint/revolv/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/calblueprint/revolv/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/calblueprint/revolv/git/refs{/sha}","trees_url":"https://api.github.com/repos/calblueprint/revolv/git/trees{/sha}","statuses_url":"https://api.github.com/repos/calblueprint/revolv/statuses/{sha}","languages_url":"https://api.github.com/repos/calblueprint/revolv/languages","stargazers_url":"https://api.github.com/repos/calblueprint/revolv/stargazers","contributors_url":"https://api.github.com/repos/calblueprint/revolv/contributors","subscribers_url":"https://api.github.com/repos/calblueprint/revolv/subscribers","subscription_url":"https://api.github.com/repos/calblueprint/revolv/subscription","commits_url":"https://api.github.com/repos/calblueprint/revolv/commits{/sha}","git_commits_url":"https://api.github.com/repos/calblueprint/revolv/git/commits{/sha}","comments_url":"https://api.github.com/repos/calblueprint/revolv/comments{/number}","issue_comment_url":"https://api.github.com/repos/calblueprint/revolv/issues/comments{/number}","contents_url":"https://api.github.com/repos/calblueprint/revolv/contents/{+path}","compare_url":"https://api.github.com/repos/calblueprint/revolv/compare/{base}...{head}","merges_url":"https://api.github.com/repos/calblueprint/revolv/merges","archive_url":"https://api.github.com/repos/calblueprint/revolv/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/calblueprint/revolv/downloads","issues_url":"https://api.github.com/repos/calblueprint/revolv/issues{/number}","pulls_url":"https://api.github.com/repos/calblueprint/revolv/pulls{/number}","milestones_url":"https://api.github.com/repos/calblueprint/revolv/milestones{/number}","notifications_url":"https://api.github.com/repos/calblueprint/revolv/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/calblueprint/revolv/labels{/name}","releases_url":"https://api.github.com/repos/calblueprint/revolv/releases{/id}","created_at":"2014-09-21T02:30:04Z","updated_at":"2015-03-12T19:47:16Z","pushed_at":"2015-03-13T23:44:35Z","git_url":"git://github.com/calblueprint/revolv.git","ssh_url":"git@github.com:calblueprint/revolv.git","clone_url":"https://github.com/calblueprint/revolv.git","svn_url":"https://github.com/calblueprint/revolv","homepage":"","size":4288,"stargazers_count":8,"watchers_count":8,"language":"CSS","has_issues":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":0,"mirror_url":null,"open_issues_count":53,"forks":0,"open_issues":53,"watchers":8,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/calblueprint/revolv/pulls/198"},"html":{"href":"https://github.com/calblueprint/revolv/pull/198"},"issue":{"href":"https://api.github.com/repos/calblueprint/revolv/issues/198"},"comments":{"href":"https://api.github.com/repos/calblueprint/revolv/issues/198/comments"},"review_comments":{"href":"https://api.github.com/repos/calblueprint/revolv/pulls/198/comments"},"review_comment":{"href":"https://api.github.com/repos/calblueprint/revolv/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/calblueprint/revolv/pulls/198/commits"},"statuses":{"href":"https://api.github.com/repos/calblueprint/revolv/statuses/45ddb2fb55b7bfb8527a0206e90df82c0f2da65f"}}}}