{"action":"created","comment":{"url":"https://api.github.com/repos/gitcoinco/web/pulls/comments/186273440","pull_request_review_id":117826059,"id":186273440,"diff_hunk":"@@ -0,0 +1,106 @@\n+# -*- coding: utf-8 -*-\n+\"\"\"Handle dashboard helper related tests.\n+\n+Copyright (C) 2018 Gitcoin Core\n+\n+This program is free software: you can redistribute it and/or modify\n+it under the terms of the GNU Affero General Public License as published\n+by the Free Software Foundation, either version 3 of the License, or\n+(at your option) any later version.\n+\n+This program is distributed in the hope that it will be useful,\n+but WITHOUT ANY WARRANTY; without even the implied warranty of\n+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n+GNU Affero General Public License for more details.\n+\n+You should have received a copy of the GNU Affero General Public License\n+along with this program. If not, see <http://www.gnu.org/licenses/>.\n+\n+\"\"\"\n+import json\n+import os\n+import sys\n+from datetime import date, datetime, timedelta\n+\n+from django.conf import settings\n+from django.test.client import RequestFactory\n+\n+import factory\n+import pytz\n+import requests_mock\n+from dashboard.helpers import amount, issue_details, normalize_url\n+from dashboard.models import Bounty, BountyFulfillment, Interest, Profile, Tip, Tool, ToolVote\n+from economy.models import ConversionRate\n+from test_plus.test import APITestCase\n+\n+\n+def response_to_json(response):\n+    str_content = response.content.decode(\"utf-8\")\n+    return json.loads(str_content)\n+\n+class ProfileFactory(factory.DjangoModelFactory):\n+    class Meta:\n+        model = Profile\n+    data={},\n+    handle=factory.Faker('first_name'),\n+    email=factory.Faker('email')\n+\n+class BountyFactory(factory.DjangoModelFactory):","path":"app/dashboard/tests/test_dashboard_api.py","position":48,"original_position":48,"commit_id":"a8c0f1f36e32986216baaeed24889f3bb4d30d24","original_commit_id":"a8c0f1f36e32986216baaeed24889f3bb4d30d24","user":{"login":"stickler-ci","id":16011037,"avatar_url":"https://avatars3.githubusercontent.com/u/16011037?v=4","gravatar_id":"","url":"https://api.github.com/users/stickler-ci","html_url":"https://github.com/stickler-ci","followers_url":"https://api.github.com/users/stickler-ci/followers","following_url":"https://api.github.com/users/stickler-ci/following{/other_user}","gists_url":"https://api.github.com/users/stickler-ci/gists{/gist_id}","starred_url":"https://api.github.com/users/stickler-ci/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/stickler-ci/subscriptions","organizations_url":"https://api.github.com/users/stickler-ci/orgs","repos_url":"https://api.github.com/users/stickler-ci/repos","events_url":"https://api.github.com/users/stickler-ci/events{/privacy}","received_events_url":"https://api.github.com/users/stickler-ci/received_events","type":"User","site_admin":false},"body":"E302 expected 2 blank lines, found 1","created_at":"2018-05-05T22:02:36Z","updated_at":"2018-05-05T22:02:39Z","html_url":"https://github.com/gitcoinco/web/pull/1019#discussion_r186273440","pull_request_url":"https://api.github.com/repos/gitcoinco/web/pulls/1019","author_association":"NONE","_links":{"self":{"href":"https://api.github.com/repos/gitcoinco/web/pulls/comments/186273440"},"html":{"href":"https://github.com/gitcoinco/web/pull/1019#discussion_r186273440"},"pull_request":{"href":"https://api.github.com/repos/gitcoinco/web/pulls/1019"}}},"pull_request":{"url":"https://api.github.com/repos/gitcoinco/web/pulls/1019","id":184929574,"html_url":"https://github.com/gitcoinco/web/pull/1019","diff_url":"https://github.com/gitcoinco/web/pull/1019.diff","patch_url":"https://github.com/gitcoinco/web/pull/1019.patch","issue_url":"https://api.github.com/repos/gitcoinco/web/issues/1019","number":1019,"state":"open","locked":false,"title":"WIP: Paginate API and explorer for bounties ( 2 )","user":{"login":"mikestonecodes","id":1703689,"avatar_url":"https://avatars3.githubusercontent.com/u/1703689?v=4","gravatar_id":"","url":"https://api.github.com/users/mikestonecodes","html_url":"https://github.com/mikestonecodes","followers_url":"https://api.github.com/users/mikestonecodes/followers","following_url":"https://api.github.com/users/mikestonecodes/following{/other_user}","gists_url":"https://api.github.com/users/mikestonecodes/gists{/gist_id}","starred_url":"https://api.github.com/users/mikestonecodes/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/mikestonecodes/subscriptions","organizations_url":"https://api.github.com/users/mikestonecodes/orgs","repos_url":"https://api.github.com/users/mikestonecodes/repos","events_url":"https://api.github.com/users/mikestonecodes/events{/privacy}","received_events_url":"https://api.github.com/users/mikestonecodes/received_events","type":"User","site_admin":false},"body":"<!--\r\n  Thank you for your pull request. Please provide a description above and review\r\n  the requirements below.\r\n\r\n  Contributors guide: https://github.com/gitcoinco/web/blob/contributing/CONTRIBUTING.md\r\n-->\r\n\r\nhttps://imgs.xkcd.com/comics/git.png\r\n\r\n##### Description\r\n<!-- A description on what this PR aims to solve -->\r\nPaginate API and explorer for bounties\r\n##### Checklist\r\n<!-- Remove items that do not apply. For completed items, change [ ] to [x]. -->\r\n#\r\n- [x] add offset param for navigating those bounties\r\n- [x]  only 100 bounties max can be returned from the API at any time\r\n- [x] gitcoin.co/explorer has pagination \r\n##### Affected core subsystem(s)\r\n<!-- Provide affected core subsystem(s) (like doc, ui, crypto, etc). -->\r\nui, api\r\n##### Testing\r\n<!-- Why should the PR reviewer trust that this change doesn't break anything? How have you tested this change? -->\r\nYes, wrote a few unit tests to test API (also started test_dashboard_api.py in dashboard test  if you guys want to add more ) \r\n##### Refers/Fixes\r\n<!--\r\n  Link to an issue if applicable. For example:\r\n  If your PR fixes an issue  -> Fixes: #102\r\n  If your PR refers an issue -> Refs: #101\r\n-->\r\nRefs: #951 ","created_at":"2018-04-30T11:06:03Z","updated_at":"2018-05-05T22:02:40Z","closed_at":null,"merged_at":null,"merge_commit_sha":"a7bab47a22a868180d9e868b12a67e988106bb9c","assignee":null,"assignees":[],"requested_reviewers":[],"requested_teams":[],"labels":[{"id":866190376,"url":"https://api.github.com/repos/gitcoinco/web/labels/api","name":"api","color":"ffe783","default":false},{"id":842004486,"url":"https://api.github.com/repos/gitcoinco/web/labels/bounties","name":"bounties","color":"94efd5","default":false},{"id":820451824,"url":"https://api.github.com/repos/gitcoinco/web/labels/in%20progress","name":"in progress","color":"4abc40","default":false},{"id":857985414,"url":"https://api.github.com/repos/gitcoinco/web/labels/waiting%20on%20contributor","name":"waiting on contributor","color":"abb7ff","default":false},{"id":854182139,"url":"https://api.github.com/repos/gitcoinco/web/labels/wip","name":"wip","color":"e2ba85","default":false}],"milestone":null,"commits_url":"https://api.github.com/repos/gitcoinco/web/pulls/1019/commits","review_comments_url":"https://api.github.com/repos/gitcoinco/web/pulls/1019/comments","review_comment_url":"https://api.github.com/repos/gitcoinco/web/pulls/comments{/number}","comments_url":"https://api.github.com/repos/gitcoinco/web/issues/1019/comments","statuses_url":"https://api.github.com/repos/gitcoinco/web/statuses/a8c0f1f36e32986216baaeed24889f3bb4d30d24","head":{"label":"mikestonecodes:infinite_scroll_4","ref":"infinite_scroll_4","sha":"a8c0f1f36e32986216baaeed24889f3bb4d30d24","user":{"login":"mikestonecodes","id":1703689,"avatar_url":"https://avatars3.githubusercontent.com/u/1703689?v=4","gravatar_id":"","url":"https://api.github.com/users/mikestonecodes","html_url":"https://github.com/mikestonecodes","followers_url":"https://api.github.com/users/mikestonecodes/followers","following_url":"https://api.github.com/users/mikestonecodes/following{/other_user}","gists_url":"https://api.github.com/users/mikestonecodes/gists{/gist_id}","starred_url":"https://api.github.com/users/mikestonecodes/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/mikestonecodes/subscriptions","organizations_url":"https://api.github.com/users/mikestonecodes/orgs","repos_url":"https://api.github.com/users/mikestonecodes/repos","events_url":"https://api.github.com/users/mikestonecodes/events{/privacy}","received_events_url":"https://api.github.com/users/mikestonecodes/received_events","type":"User","site_admin":false},"repo":{"id":131197842,"name":"web","full_name":"mikestonecodes/web","owner":{"login":"mikestonecodes","id":1703689,"avatar_url":"https://avatars3.githubusercontent.com/u/1703689?v=4","gravatar_id":"","url":"https://api.github.com/users/mikestonecodes","html_url":"https://github.com/mikestonecodes","followers_url":"https://api.github.com/users/mikestonecodes/followers","following_url":"https://api.github.com/users/mikestonecodes/following{/other_user}","gists_url":"https://api.github.com/users/mikestonecodes/gists{/gist_id}","starred_url":"https://api.github.com/users/mikestonecodes/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/mikestonecodes/subscriptions","organizations_url":"https://api.github.com/users/mikestonecodes/orgs","repos_url":"https://api.github.com/users/mikestonecodes/repos","events_url":"https://api.github.com/users/mikestonecodes/events{/privacy}","received_events_url":"https://api.github.com/users/mikestonecodes/received_events","type":"User","site_admin":false},"private":false,"html_url":"https://github.com/mikestonecodes/web","description":"Grow Open Source","fork":true,"url":"https://api.github.com/repos/mikestonecodes/web","forks_url":"https://api.github.com/repos/mikestonecodes/web/forks","keys_url":"https://api.github.com/repos/mikestonecodes/web/keys{/key_id}","collaborators_url":"https://api.github.com/repos/mikestonecodes/web/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/mikestonecodes/web/teams","hooks_url":"https://api.github.com/repos/mikestonecodes/web/hooks","issue_events_url":"https://api.github.com/repos/mikestonecodes/web/issues/events{/number}","events_url":"https://api.github.com/repos/mikestonecodes/web/events","assignees_url":"https://api.github.com/repos/mikestonecodes/web/assignees{/user}","branches_url":"https://api.github.com/repos/mikestonecodes/web/branches{/branch}","tags_url":"https://api.github.com/repos/mikestonecodes/web/tags","blobs_url":"https://api.github.com/repos/mikestonecodes/web/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/mikestonecodes/web/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/mikestonecodes/web/git/refs{/sha}","trees_url":"https://api.github.com/repos/mikestonecodes/web/git/trees{/sha}","statuses_url":"https://api.github.com/repos/mikestonecodes/web/statuses/{sha}","languages_url":"https://api.github.com/repos/mikestonecodes/web/languages","stargazers_url":"https://api.github.com/repos/mikestonecodes/web/stargazers","contributors_url":"https://api.github.com/repos/mikestonecodes/web/contributors","subscribers_url":"https://api.github.com/repos/mikestonecodes/web/subscribers","subscription_url":"https://api.github.com/repos/mikestonecodes/web/subscription","commits_url":"https://api.github.com/repos/mikestonecodes/web/commits{/sha}","git_commits_url":"https://api.github.com/repos/mikestonecodes/web/git/commits{/sha}","comments_url":"https://api.github.com/repos/mikestonecodes/web/comments{/number}","issue_comment_url":"https://api.github.com/repos/mikestonecodes/web/issues/comments{/number}","contents_url":"https://api.github.com/repos/mikestonecodes/web/contents/{+path}","compare_url":"https://api.github.com/repos/mikestonecodes/web/compare/{base}...{head}","merges_url":"https://api.github.com/repos/mikestonecodes/web/merges","archive_url":"https://api.github.com/repos/mikestonecodes/web/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/mikestonecodes/web/downloads","issues_url":"https://api.github.com/repos/mikestonecodes/web/issues{/number}","pulls_url":"https://api.github.com/repos/mikestonecodes/web/pulls{/number}","milestones_url":"https://api.github.com/repos/mikestonecodes/web/milestones{/number}","notifications_url":"https://api.github.com/repos/mikestonecodes/web/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/mikestonecodes/web/labels{/name}","releases_url":"https://api.github.com/repos/mikestonecodes/web/releases{/id}","deployments_url":"https://api.github.com/repos/mikestonecodes/web/deployments","created_at":"2018-04-26T18:51:11Z","updated_at":"2018-04-30T10:17:16Z","pushed_at":"2018-05-05T22:01:44Z","git_url":"git://github.com/mikestonecodes/web.git","ssh_url":"git@github.com:mikestonecodes/web.git","clone_url":"https://github.com/mikestonecodes/web.git","svn_url":"https://github.com/mikestonecodes/web","homepage":"https://gitcoin.co","size":159068,"stargazers_count":0,"watchers_count":0,"language":"JavaScript","has_issues":false,"has_projects":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":0,"mirror_url":null,"archived":false,"open_issues_count":0,"license":{"key":"agpl-3.0","name":"GNU Affero General Public License v3.0","spdx_id":"AGPL-3.0","url":"https://api.github.com/licenses/agpl-3.0"},"forks":0,"open_issues":0,"watchers":0,"default_branch":"master"}},"base":{"label":"gitcoinco:master","ref":"master","sha":"92f85e055d56a62120f68ed7c8e4adf8cfe9ca06","user":{"login":"gitcoinco","id":30044474,"avatar_url":"https://avatars1.githubusercontent.com/u/30044474?v=4","gravatar_id":"","url":"https://api.github.com/users/gitcoinco","html_url":"https://github.com/gitcoinco","followers_url":"https://api.github.com/users/gitcoinco/followers","following_url":"https://api.github.com/users/gitcoinco/following{/other_user}","gists_url":"https://api.github.com/users/gitcoinco/gists{/gist_id}","starred_url":"https://api.github.com/users/gitcoinco/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/gitcoinco/subscriptions","organizations_url":"https://api.github.com/users/gitcoinco/orgs","repos_url":"https://api.github.com/users/gitcoinco/repos","events_url":"https://api.github.com/users/gitcoinco/events{/privacy}","received_events_url":"https://api.github.com/users/gitcoinco/received_events","type":"Organization","site_admin":false},"repo":{"id":96767206,"name":"web","full_name":"gitcoinco/web","owner":{"login":"gitcoinco","id":30044474,"avatar_url":"https://avatars1.githubusercontent.com/u/30044474?v=4","gravatar_id":"","url":"https://api.github.com/users/gitcoinco","html_url":"https://github.com/gitcoinco","followers_url":"https://api.github.com/users/gitcoinco/followers","following_url":"https://api.github.com/users/gitcoinco/following{/other_user}","gists_url":"https://api.github.com/users/gitcoinco/gists{/gist_id}","starred_url":"https://api.github.com/users/gitcoinco/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/gitcoinco/subscriptions","organizations_url":"https://api.github.com/users/gitcoinco/orgs","repos_url":"https://api.github.com/users/gitcoinco/repos","events_url":"https://api.github.com/users/gitcoinco/events{/privacy}","received_events_url":"https://api.github.com/users/gitcoinco/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/gitcoinco/web","description":"Grow Open Source","fork":false,"url":"https://api.github.com/repos/gitcoinco/web","forks_url":"https://api.github.com/repos/gitcoinco/web/forks","keys_url":"https://api.github.com/repos/gitcoinco/web/keys{/key_id}","collaborators_url":"https://api.github.com/repos/gitcoinco/web/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/gitcoinco/web/teams","hooks_url":"https://api.github.com/repos/gitcoinco/web/hooks","issue_events_url":"https://api.github.com/repos/gitcoinco/web/issues/events{/number}","events_url":"https://api.github.com/repos/gitcoinco/web/events","assignees_url":"https://api.github.com/repos/gitcoinco/web/assignees{/user}","branches_url":"https://api.github.com/repos/gitcoinco/web/branches{/branch}","tags_url":"https://api.github.com/repos/gitcoinco/web/tags","blobs_url":"https://api.github.com/repos/gitcoinco/web/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/gitcoinco/web/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/gitcoinco/web/git/refs{/sha}","trees_url":"https://api.github.com/repos/gitcoinco/web/git/trees{/sha}","statuses_url":"https://api.github.com/repos/gitcoinco/web/statuses/{sha}","languages_url":"https://api.github.com/repos/gitcoinco/web/languages","stargazers_url":"https://api.github.com/repos/gitcoinco/web/stargazers","contributors_url":"https://api.github.com/repos/gitcoinco/web/contributors","subscribers_url":"https://api.github.com/repos/gitcoinco/web/subscribers","subscription_url":"https://api.github.com/repos/gitcoinco/web/subscription","commits_url":"https://api.github.com/repos/gitcoinco/web/commits{/sha}","git_commits_url":"https://api.github.com/repos/gitcoinco/web/git/commits{/sha}","comments_url":"https://api.github.com/repos/gitcoinco/web/comments{/number}","issue_comment_url":"https://api.github.com/repos/gitcoinco/web/issues/comments{/number}","contents_url":"https://api.github.com/repos/gitcoinco/web/contents/{+path}","compare_url":"https://api.github.com/repos/gitcoinco/web/compare/{base}...{head}","merges_url":"https://api.github.com/repos/gitcoinco/web/merges","archive_url":"https://api.github.com/repos/gitcoinco/web/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/gitcoinco/web/downloads","issues_url":"https://api.github.com/repos/gitcoinco/web/issues{/number}","pulls_url":"https://api.github.com/repos/gitcoinco/web/pulls{/number}","milestones_url":"https://api.github.com/repos/gitcoinco/web/milestones{/number}","notifications_url":"https://api.github.com/repos/gitcoinco/web/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/gitcoinco/web/labels{/name}","releases_url":"https://api.github.com/repos/gitcoinco/web/releases{/id}","deployments_url":"https://api.github.com/repos/gitcoinco/web/deployments","created_at":"2017-07-10T10:53:45Z","updated_at":"2018-05-05T19:44:42Z","pushed_at":"2018-05-05T22:01:46Z","git_url":"git://github.com/gitcoinco/web.git","ssh_url":"git@github.com:gitcoinco/web.git","clone_url":"https://github.com/gitcoinco/web.git","svn_url":"https://github.com/gitcoinco/web","homepage":"https://gitcoin.co","size":159103,"stargazers_count":274,"watchers_count":274,"language":"JavaScript","has_issues":true,"has_projects":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":164,"mirror_url":null,"archived":false,"open_issues_count":322,"license":{"key":"agpl-3.0","name":"GNU Affero General Public License v3.0","spdx_id":"AGPL-3.0","url":"https://api.github.com/licenses/agpl-3.0"},"forks":164,"open_issues":322,"watchers":274,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/gitcoinco/web/pulls/1019"},"html":{"href":"https://github.com/gitcoinco/web/pull/1019"},"issue":{"href":"https://api.github.com/repos/gitcoinco/web/issues/1019"},"comments":{"href":"https://api.github.com/repos/gitcoinco/web/issues/1019/comments"},"review_comments":{"href":"https://api.github.com/repos/gitcoinco/web/pulls/1019/comments"},"review_comment":{"href":"https://api.github.com/repos/gitcoinco/web/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/gitcoinco/web/pulls/1019/commits"},"statuses":{"href":"https://api.github.com/repos/gitcoinco/web/statuses/a8c0f1f36e32986216baaeed24889f3bb4d30d24"}},"author_association":"NONE"}}
{"actor":{"display_login":"stickler-ci"}}