{"action":"created","comment":{"url":"https://api.github.com/repos/twisted/klein/pulls/comments/82162219","pull_request_review_id":3087778,"id":82162219,"diff_hunk":"@@ -524,13 +524,12 @@ def root(request):\n                     os.path.dirname(__file__), \"__init__.py\"), 'rb').read())\n         self.assertEqual(request.finishCount, 1)\n \n-\n     def test_explicitStaticBranch(self):\n         app = self.app\n \n         request = requestMock(b\"/static/__init__.py\")\n \n-        @app.route(\"/static/\", branch=True)\n+        @app.route(\"/static\", branch=True)","path":"src/klein/test/test_resource.py","position":11,"original_position":11,"commit_id":"113213a96b400ddee497a0c0e2bdd385bf8793da","original_commit_id":"113213a96b400ddee497a0c0e2bdd385bf8793da","user":{"login":"derwolfe","id":641357,"avatar_url":"https://avatars.githubusercontent.com/u/641357?v=3","gravatar_id":"","url":"https://api.github.com/users/derwolfe","html_url":"https://github.com/derwolfe","followers_url":"https://api.github.com/users/derwolfe/followers","following_url":"https://api.github.com/users/derwolfe/following{/other_user}","gists_url":"https://api.github.com/users/derwolfe/gists{/gist_id}","starred_url":"https://api.github.com/users/derwolfe/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/derwolfe/subscriptions","organizations_url":"https://api.github.com/users/derwolfe/orgs","repos_url":"https://api.github.com/users/derwolfe/repos","events_url":"https://api.github.com/users/derwolfe/events{/privacy}","received_events_url":"https://api.github.com/users/derwolfe/received_events","type":"User","site_admin":false},"body":"I'm not really sure why I changed this - that said, I agree that there should be a tests for both `/static` and `/static/` that show that they produce the same result.","created_at":"2016-10-06T10:52:09Z","updated_at":"2016-10-06T10:52:10Z","html_url":"https://github.com/twisted/klein/pull/59#discussion_r82162219","pull_request_url":"https://api.github.com/repos/twisted/klein/pulls/59","_links":{"self":{"href":"https://api.github.com/repos/twisted/klein/pulls/comments/82162219"},"html":{"href":"https://github.com/twisted/klein/pull/59#discussion_r82162219"},"pull_request":{"href":"https://api.github.com/repos/twisted/klein/pulls/59"}}},"pull_request":{"url":"https://api.github.com/repos/twisted/klein/pulls/59","id":23906250,"html_url":"https://github.com/twisted/klein/pull/59","diff_url":"https://github.com/twisted/klein/pull/59.diff","patch_url":"https://github.com/twisted/klein/pull/59.patch","issue_url":"https://api.github.com/repos/twisted/klein/issues/59","number":59,"state":"open","locked":false,"title":"Add docs/test showing single filepath","user":{"login":"derwolfe","id":641357,"avatar_url":"https://avatars.githubusercontent.com/u/641357?v=3","gravatar_id":"","url":"https://api.github.com/users/derwolfe","html_url":"https://github.com/derwolfe","followers_url":"https://api.github.com/users/derwolfe/followers","following_url":"https://api.github.com/users/derwolfe/following{/other_user}","gists_url":"https://api.github.com/users/derwolfe/gists{/gist_id}","starred_url":"https://api.github.com/users/derwolfe/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/derwolfe/subscriptions","organizations_url":"https://api.github.com/users/derwolfe/orgs","repos_url":"https://api.github.com/users/derwolfe/repos","events_url":"https://api.github.com/users/derwolfe/events{/privacy}","received_events_url":"https://api.github.com/users/derwolfe/received_events","type":"User","site_admin":false},"body":"I found it a bit difficult to understand how to serve a single static file using Klein. dreid and Hawkowl told me how this could be done. \r\n\r\nI think it would be helpful if this were explained in the docs and tests.\r\n\r\nThe patch adds \r\n - a test for klein serving a single file\r\n - docs explaining how a user should serve a single file\r\n\r\nWhile this pull request doesn't address it, dreid has suggested that it might be helpful if we were to teach Klein about FilePaths. Here is his comment from IRC:\r\n\r\n> It might be worth it to teach klein about FilePath specifically instead of just resources, then it could distinguish when a File object (which subclasses FilePath for reasons) is a File as opposed to a directory and do the right thing.","created_at":"2014-11-05T13:43:47Z","updated_at":"2016-10-06T10:52:10Z","closed_at":null,"merged_at":null,"merge_commit_sha":"9a8fa1ae10edd5420873aafe7c36b43613e363b3","assignee":null,"assignees":[],"milestone":null,"commits_url":"https://api.github.com/repos/twisted/klein/pulls/59/commits","review_comments_url":"https://api.github.com/repos/twisted/klein/pulls/59/comments","review_comment_url":"https://api.github.com/repos/twisted/klein/pulls/comments{/number}","comments_url":"https://api.github.com/repos/twisted/klein/issues/59/comments","statuses_url":"https://api.github.com/repos/twisted/klein/statuses/113213a96b400ddee497a0c0e2bdd385bf8793da","head":{"label":"derwolfe:test-docs-single-filepath","ref":"test-docs-single-filepath","sha":"113213a96b400ddee497a0c0e2bdd385bf8793da","user":{"login":"derwolfe","id":641357,"avatar_url":"https://avatars.githubusercontent.com/u/641357?v=3","gravatar_id":"","url":"https://api.github.com/users/derwolfe","html_url":"https://github.com/derwolfe","followers_url":"https://api.github.com/users/derwolfe/followers","following_url":"https://api.github.com/users/derwolfe/following{/other_user}","gists_url":"https://api.github.com/users/derwolfe/gists{/gist_id}","starred_url":"https://api.github.com/users/derwolfe/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/derwolfe/subscriptions","organizations_url":"https://api.github.com/users/derwolfe/orgs","repos_url":"https://api.github.com/users/derwolfe/repos","events_url":"https://api.github.com/users/derwolfe/events{/privacy}","received_events_url":"https://api.github.com/users/derwolfe/received_events","type":"User","site_admin":false},"repo":{"id":26196575,"name":"klein","full_name":"derwolfe/klein","owner":{"login":"derwolfe","id":641357,"avatar_url":"https://avatars.githubusercontent.com/u/641357?v=3","gravatar_id":"","url":"https://api.github.com/users/derwolfe","html_url":"https://github.com/derwolfe","followers_url":"https://api.github.com/users/derwolfe/followers","following_url":"https://api.github.com/users/derwolfe/following{/other_user}","gists_url":"https://api.github.com/users/derwolfe/gists{/gist_id}","starred_url":"https://api.github.com/users/derwolfe/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/derwolfe/subscriptions","organizations_url":"https://api.github.com/users/derwolfe/orgs","repos_url":"https://api.github.com/users/derwolfe/repos","events_url":"https://api.github.com/users/derwolfe/events{/privacy}","received_events_url":"https://api.github.com/users/derwolfe/received_events","type":"User","site_admin":false},"private":false,"html_url":"https://github.com/derwolfe/klein","description":"werkzeug + twisted.web","fork":true,"url":"https://api.github.com/repos/derwolfe/klein","forks_url":"https://api.github.com/repos/derwolfe/klein/forks","keys_url":"https://api.github.com/repos/derwolfe/klein/keys{/key_id}","collaborators_url":"https://api.github.com/repos/derwolfe/klein/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/derwolfe/klein/teams","hooks_url":"https://api.github.com/repos/derwolfe/klein/hooks","issue_events_url":"https://api.github.com/repos/derwolfe/klein/issues/events{/number}","events_url":"https://api.github.com/repos/derwolfe/klein/events","assignees_url":"https://api.github.com/repos/derwolfe/klein/assignees{/user}","branches_url":"https://api.github.com/repos/derwolfe/klein/branches{/branch}","tags_url":"https://api.github.com/repos/derwolfe/klein/tags","blobs_url":"https://api.github.com/repos/derwolfe/klein/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/derwolfe/klein/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/derwolfe/klein/git/refs{/sha}","trees_url":"https://api.github.com/repos/derwolfe/klein/git/trees{/sha}","statuses_url":"https://api.github.com/repos/derwolfe/klein/statuses/{sha}","languages_url":"https://api.github.com/repos/derwolfe/klein/languages","stargazers_url":"https://api.github.com/repos/derwolfe/klein/stargazers","contributors_url":"https://api.github.com/repos/derwolfe/klein/contributors","subscribers_url":"https://api.github.com/repos/derwolfe/klein/subscribers","subscription_url":"https://api.github.com/repos/derwolfe/klein/subscription","commits_url":"https://api.github.com/repos/derwolfe/klein/commits{/sha}","git_commits_url":"https://api.github.com/repos/derwolfe/klein/git/commits{/sha}","comments_url":"https://api.github.com/repos/derwolfe/klein/comments{/number}","issue_comment_url":"https://api.github.com/repos/derwolfe/klein/issues/comments{/number}","contents_url":"https://api.github.com/repos/derwolfe/klein/contents/{+path}","compare_url":"https://api.github.com/repos/derwolfe/klein/compare/{base}...{head}","merges_url":"https://api.github.com/repos/derwolfe/klein/merges","archive_url":"https://api.github.com/repos/derwolfe/klein/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/derwolfe/klein/downloads","issues_url":"https://api.github.com/repos/derwolfe/klein/issues{/number}","pulls_url":"https://api.github.com/repos/derwolfe/klein/pulls{/number}","milestones_url":"https://api.github.com/repos/derwolfe/klein/milestones{/number}","notifications_url":"https://api.github.com/repos/derwolfe/klein/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/derwolfe/klein/labels{/name}","releases_url":"https://api.github.com/repos/derwolfe/klein/releases{/id}","deployments_url":"https://api.github.com/repos/derwolfe/klein/deployments","created_at":"2014-11-05T01:09:50Z","updated_at":"2014-10-26T01:20:44Z","pushed_at":"2016-09-20T00:27:32Z","git_url":"git://github.com/derwolfe/klein.git","ssh_url":"git@github.com:derwolfe/klein.git","clone_url":"https://github.com/derwolfe/klein.git","svn_url":"https://github.com/derwolfe/klein","homepage":"","size":307,"stargazers_count":0,"watchers_count":0,"language":null,"has_issues":false,"has_downloads":true,"has_wiki":false,"has_pages":false,"forks_count":0,"mirror_url":null,"open_issues_count":0,"forks":0,"open_issues":0,"watchers":0,"default_branch":"master"}},"base":{"label":"twisted:master","ref":"master","sha":"12df9ead0fd90fc3118dbae409cdbf9aaf4e8299","user":{"login":"twisted","id":716546,"avatar_url":"https://avatars.githubusercontent.com/u/716546?v=3","gravatar_id":"","url":"https://api.github.com/users/twisted","html_url":"https://github.com/twisted","followers_url":"https://api.github.com/users/twisted/followers","following_url":"https://api.github.com/users/twisted/following{/other_user}","gists_url":"https://api.github.com/users/twisted/gists{/gist_id}","starred_url":"https://api.github.com/users/twisted/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/twisted/subscriptions","organizations_url":"https://api.github.com/users/twisted/orgs","repos_url":"https://api.github.com/users/twisted/repos","events_url":"https://api.github.com/users/twisted/events{/privacy}","received_events_url":"https://api.github.com/users/twisted/received_events","type":"Organization","site_admin":false},"repo":{"id":3409513,"name":"klein","full_name":"twisted/klein","owner":{"login":"twisted","id":716546,"avatar_url":"https://avatars.githubusercontent.com/u/716546?v=3","gravatar_id":"","url":"https://api.github.com/users/twisted","html_url":"https://github.com/twisted","followers_url":"https://api.github.com/users/twisted/followers","following_url":"https://api.github.com/users/twisted/following{/other_user}","gists_url":"https://api.github.com/users/twisted/gists{/gist_id}","starred_url":"https://api.github.com/users/twisted/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/twisted/subscriptions","organizations_url":"https://api.github.com/users/twisted/orgs","repos_url":"https://api.github.com/users/twisted/repos","events_url":"https://api.github.com/users/twisted/events{/privacy}","received_events_url":"https://api.github.com/users/twisted/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/twisted/klein","description":"werkzeug + twisted.web","fork":false,"url":"https://api.github.com/repos/twisted/klein","forks_url":"https://api.github.com/repos/twisted/klein/forks","keys_url":"https://api.github.com/repos/twisted/klein/keys{/key_id}","collaborators_url":"https://api.github.com/repos/twisted/klein/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/twisted/klein/teams","hooks_url":"https://api.github.com/repos/twisted/klein/hooks","issue_events_url":"https://api.github.com/repos/twisted/klein/issues/events{/number}","events_url":"https://api.github.com/repos/twisted/klein/events","assignees_url":"https://api.github.com/repos/twisted/klein/assignees{/user}","branches_url":"https://api.github.com/repos/twisted/klein/branches{/branch}","tags_url":"https://api.github.com/repos/twisted/klein/tags","blobs_url":"https://api.github.com/repos/twisted/klein/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/twisted/klein/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/twisted/klein/git/refs{/sha}","trees_url":"https://api.github.com/repos/twisted/klein/git/trees{/sha}","statuses_url":"https://api.github.com/repos/twisted/klein/statuses/{sha}","languages_url":"https://api.github.com/repos/twisted/klein/languages","stargazers_url":"https://api.github.com/repos/twisted/klein/stargazers","contributors_url":"https://api.github.com/repos/twisted/klein/contributors","subscribers_url":"https://api.github.com/repos/twisted/klein/subscribers","subscription_url":"https://api.github.com/repos/twisted/klein/subscription","commits_url":"https://api.github.com/repos/twisted/klein/commits{/sha}","git_commits_url":"https://api.github.com/repos/twisted/klein/git/commits{/sha}","comments_url":"https://api.github.com/repos/twisted/klein/comments{/number}","issue_comment_url":"https://api.github.com/repos/twisted/klein/issues/comments{/number}","contents_url":"https://api.github.com/repos/twisted/klein/contents/{+path}","compare_url":"https://api.github.com/repos/twisted/klein/compare/{base}...{head}","merges_url":"https://api.github.com/repos/twisted/klein/merges","archive_url":"https://api.github.com/repos/twisted/klein/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/twisted/klein/downloads","issues_url":"https://api.github.com/repos/twisted/klein/issues{/number}","pulls_url":"https://api.github.com/repos/twisted/klein/pulls{/number}","milestones_url":"https://api.github.com/repos/twisted/klein/milestones{/number}","notifications_url":"https://api.github.com/repos/twisted/klein/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/twisted/klein/labels{/name}","releases_url":"https://api.github.com/repos/twisted/klein/releases{/id}","deployments_url":"https://api.github.com/repos/twisted/klein/deployments","created_at":"2012-02-10T17:55:04Z","updated_at":"2016-10-02T21:55:33Z","pushed_at":"2016-10-05T01:51:15Z","git_url":"git://github.com/twisted/klein.git","ssh_url":"git@github.com:twisted/klein.git","clone_url":"https://github.com/twisted/klein.git","svn_url":"https://github.com/twisted/klein","homepage":"","size":383,"stargazers_count":433,"watchers_count":433,"language":"Python","has_issues":true,"has_downloads":true,"has_wiki":false,"has_pages":false,"forks_count":67,"mirror_url":null,"open_issues_count":43,"forks":67,"open_issues":43,"watchers":433,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/twisted/klein/pulls/59"},"html":{"href":"https://github.com/twisted/klein/pull/59"},"issue":{"href":"https://api.github.com/repos/twisted/klein/issues/59"},"comments":{"href":"https://api.github.com/repos/twisted/klein/issues/59/comments"},"review_comments":{"href":"https://api.github.com/repos/twisted/klein/pulls/59/comments"},"review_comment":{"href":"https://api.github.com/repos/twisted/klein/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/twisted/klein/pulls/59/commits"},"statuses":{"href":"https://api.github.com/repos/twisted/klein/statuses/113213a96b400ddee497a0c0e2bdd385bf8793da"}}}}
{"actor":{"display_login":"derwolfe"}}