{"action":"created","comment":{"url":"https://api.github.com/repos/mopidy/mopidy/pulls/comments/35483724","id":35483724,"diff_hunk":"@@ -167,6 +170,16 @@ def test_lookup_uris_returns_empty_list_for_dummy3_track(self):\n         self.assertFalse(self.library1.lookup.called)\n         self.assertFalse(self.library2.lookup.called)\n \n+    def test_lookup_adds_source(self):","path":"tests/core/test_library.py","position":28,"original_position":28,"commit_id":"a673756e7a1baf36799048a1c4a72adcefd91769","original_commit_id":"a673756e7a1baf36799048a1c4a72adcefd91769","user":{"login":"dbrgn","id":105168,"avatar_url":"https://avatars.githubusercontent.com/u/105168?v=3","gravatar_id":"","url":"https://api.github.com/users/dbrgn","html_url":"https://github.com/dbrgn","followers_url":"https://api.github.com/users/dbrgn/followers","following_url":"https://api.github.com/users/dbrgn/following{/other_user}","gists_url":"https://api.github.com/users/dbrgn/gists{/gist_id}","starred_url":"https://api.github.com/users/dbrgn/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/dbrgn/subscriptions","organizations_url":"https://api.github.com/users/dbrgn/orgs","repos_url":"https://api.github.com/users/dbrgn/repos","events_url":"https://api.github.com/users/dbrgn/events{/privacy}","received_events_url":"https://api.github.com/users/dbrgn/received_events","type":"User","site_admin":false},"body":"Oops :flushed: ","created_at":"2015-07-25T15:02:21Z","updated_at":"2015-07-25T15:02:21Z","html_url":"https://github.com/mopidy/mopidy/pull/1234#discussion_r35483724","pull_request_url":"https://api.github.com/repos/mopidy/mopidy/pulls/1234","_links":{"self":{"href":"https://api.github.com/repos/mopidy/mopidy/pulls/comments/35483724"},"html":{"href":"https://github.com/mopidy/mopidy/pull/1234#discussion_r35483724"},"pull_request":{"href":"https://api.github.com/repos/mopidy/mopidy/pulls/1234"}}},"pull_request":{"url":"https://api.github.com/repos/mopidy/mopidy/pulls/1234","id":40837123,"html_url":"https://github.com/mopidy/mopidy/pull/1234","diff_url":"https://github.com/mopidy/mopidy/pull/1234.diff","patch_url":"https://github.com/mopidy/mopidy/pull/1234.patch","issue_url":"https://api.github.com/repos/mopidy/mopidy/issues/1234","number":1234,"state":"open","locked":false,"title":"Added source field to Track model","user":{"login":"dbrgn","id":105168,"avatar_url":"https://avatars.githubusercontent.com/u/105168?v=3","gravatar_id":"","url":"https://api.github.com/users/dbrgn","html_url":"https://github.com/dbrgn","followers_url":"https://api.github.com/users/dbrgn/followers","following_url":"https://api.github.com/users/dbrgn/following{/other_user}","gists_url":"https://api.github.com/users/dbrgn/gists{/gist_id}","starred_url":"https://api.github.com/users/dbrgn/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/dbrgn/subscriptions","organizations_url":"https://api.github.com/users/dbrgn/orgs","repos_url":"https://api.github.com/users/dbrgn/repos","events_url":"https://api.github.com/users/dbrgn/events{/privacy}","received_events_url":"https://api.github.com/users/dbrgn/received_events","type":"User","site_admin":false},"body":"This fixes issue #1108.\r\n\r\n- New field `source` in `Track` model\r\n- Can be influenced by setting the `source_name` attribute on the backend (should we use `source` there too?)\r\n- The attribute is set automatically by core/library during lookup and search\r\n- Existing tests have been fixed\r\n- Two tests are provided\r\n- Changelog has been updated\r\n\r\nPlease review this well, especially the tests. I hope I didn't break the logic of any tests :)\r\n\r\nAre all cases covered in which songs are added to the playback queue?\r\n\r\nAlso, right now there's no fallback to using `ext_name` if a backend doesn't set the name. Would that be possible somehow?","created_at":"2015-07-25T13:44:47Z","updated_at":"2015-07-25T15:02:21Z","closed_at":null,"merged_at":null,"merge_commit_sha":"c3883e5b15385bcf4b946c5454b57b52f3beb108","assignee":null,"milestone":{"url":"https://api.github.com/repos/mopidy/mopidy/milestones/50","html_url":"https://github.com/mopidy/mopidy/milestones/EuroPython%202015%20sprint","labels_url":"https://api.github.com/repos/mopidy/mopidy/milestones/50/labels","id":1179947,"number":50,"title":"EuroPython 2015 sprint","description":"\r\n\r\n<!---\r\n@huboard:{\"order\":31.96875}\r\n-->\r\n","creator":{"login":"adamcik","id":82534,"avatar_url":"https://avatars.githubusercontent.com/u/82534?v=3","gravatar_id":"","url":"https://api.github.com/users/adamcik","html_url":"https://github.com/adamcik","followers_url":"https://api.github.com/users/adamcik/followers","following_url":"https://api.github.com/users/adamcik/following{/other_user}","gists_url":"https://api.github.com/users/adamcik/gists{/gist_id}","starred_url":"https://api.github.com/users/adamcik/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/adamcik/subscriptions","organizations_url":"https://api.github.com/users/adamcik/orgs","repos_url":"https://api.github.com/users/adamcik/repos","events_url":"https://api.github.com/users/adamcik/events{/privacy}","received_events_url":"https://api.github.com/users/adamcik/received_events","type":"User","site_admin":false},"open_issues":6,"closed_issues":0,"state":"open","created_at":"2015-06-24T20:33:57Z","updated_at":"2015-07-25T14:35:25Z","due_on":"2015-07-26T22:00:00Z","closed_at":null},"commits_url":"https://api.github.com/repos/mopidy/mopidy/pulls/1234/commits","review_comments_url":"https://api.github.com/repos/mopidy/mopidy/pulls/1234/comments","review_comment_url":"https://api.github.com/repos/mopidy/mopidy/pulls/comments{/number}","comments_url":"https://api.github.com/repos/mopidy/mopidy/issues/1234/comments","statuses_url":"https://api.github.com/repos/mopidy/mopidy/statuses/a673756e7a1baf36799048a1c4a72adcefd91769","head":{"label":"dbrgn:feature/1108-model-source-field","ref":"feature/1108-model-source-field","sha":"a673756e7a1baf36799048a1c4a72adcefd91769","user":{"login":"dbrgn","id":105168,"avatar_url":"https://avatars.githubusercontent.com/u/105168?v=3","gravatar_id":"","url":"https://api.github.com/users/dbrgn","html_url":"https://github.com/dbrgn","followers_url":"https://api.github.com/users/dbrgn/followers","following_url":"https://api.github.com/users/dbrgn/following{/other_user}","gists_url":"https://api.github.com/users/dbrgn/gists{/gist_id}","starred_url":"https://api.github.com/users/dbrgn/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/dbrgn/subscriptions","organizations_url":"https://api.github.com/users/dbrgn/orgs","repos_url":"https://api.github.com/users/dbrgn/repos","events_url":"https://api.github.com/users/dbrgn/events{/privacy}","received_events_url":"https://api.github.com/users/dbrgn/received_events","type":"User","site_admin":false},"repo":{"id":39679224,"name":"mopidy","full_name":"dbrgn/mopidy","owner":{"login":"dbrgn","id":105168,"avatar_url":"https://avatars.githubusercontent.com/u/105168?v=3","gravatar_id":"","url":"https://api.github.com/users/dbrgn","html_url":"https://github.com/dbrgn","followers_url":"https://api.github.com/users/dbrgn/followers","following_url":"https://api.github.com/users/dbrgn/following{/other_user}","gists_url":"https://api.github.com/users/dbrgn/gists{/gist_id}","starred_url":"https://api.github.com/users/dbrgn/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/dbrgn/subscriptions","organizations_url":"https://api.github.com/users/dbrgn/orgs","repos_url":"https://api.github.com/users/dbrgn/repos","events_url":"https://api.github.com/users/dbrgn/events{/privacy}","received_events_url":"https://api.github.com/users/dbrgn/received_events","type":"User","site_admin":false},"private":false,"html_url":"https://github.com/dbrgn/mopidy","description":"Mopidy is an extensible music server that plays music from local disk, Spotify, SoundCloud, Google Play Music, and more. You edit the playlist from any phone, tablet, or computer using a range of MPD and web clients.","fork":true,"url":"https://api.github.com/repos/dbrgn/mopidy","forks_url":"https://api.github.com/repos/dbrgn/mopidy/forks","keys_url":"https://api.github.com/repos/dbrgn/mopidy/keys{/key_id}","collaborators_url":"https://api.github.com/repos/dbrgn/mopidy/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/dbrgn/mopidy/teams","hooks_url":"https://api.github.com/repos/dbrgn/mopidy/hooks","issue_events_url":"https://api.github.com/repos/dbrgn/mopidy/issues/events{/number}","events_url":"https://api.github.com/repos/dbrgn/mopidy/events","assignees_url":"https://api.github.com/repos/dbrgn/mopidy/assignees{/user}","branches_url":"https://api.github.com/repos/dbrgn/mopidy/branches{/branch}","tags_url":"https://api.github.com/repos/dbrgn/mopidy/tags","blobs_url":"https://api.github.com/repos/dbrgn/mopidy/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/dbrgn/mopidy/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/dbrgn/mopidy/git/refs{/sha}","trees_url":"https://api.github.com/repos/dbrgn/mopidy/git/trees{/sha}","statuses_url":"https://api.github.com/repos/dbrgn/mopidy/statuses/{sha}","languages_url":"https://api.github.com/repos/dbrgn/mopidy/languages","stargazers_url":"https://api.github.com/repos/dbrgn/mopidy/stargazers","contributors_url":"https://api.github.com/repos/dbrgn/mopidy/contributors","subscribers_url":"https://api.github.com/repos/dbrgn/mopidy/subscribers","subscription_url":"https://api.github.com/repos/dbrgn/mopidy/subscription","commits_url":"https://api.github.com/repos/dbrgn/mopidy/commits{/sha}","git_commits_url":"https://api.github.com/repos/dbrgn/mopidy/git/commits{/sha}","comments_url":"https://api.github.com/repos/dbrgn/mopidy/comments{/number}","issue_comment_url":"https://api.github.com/repos/dbrgn/mopidy/issues/comments{/number}","contents_url":"https://api.github.com/repos/dbrgn/mopidy/contents/{+path}","compare_url":"https://api.github.com/repos/dbrgn/mopidy/compare/{base}...{head}","merges_url":"https://api.github.com/repos/dbrgn/mopidy/merges","archive_url":"https://api.github.com/repos/dbrgn/mopidy/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/dbrgn/mopidy/downloads","issues_url":"https://api.github.com/repos/dbrgn/mopidy/issues{/number}","pulls_url":"https://api.github.com/repos/dbrgn/mopidy/pulls{/number}","milestones_url":"https://api.github.com/repos/dbrgn/mopidy/milestones{/number}","notifications_url":"https://api.github.com/repos/dbrgn/mopidy/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/dbrgn/mopidy/labels{/name}","releases_url":"https://api.github.com/repos/dbrgn/mopidy/releases{/id}","created_at":"2015-07-25T09:21:12Z","updated_at":"2015-07-25T09:21:13Z","pushed_at":"2015-07-25T13:43:08Z","git_url":"git://github.com/dbrgn/mopidy.git","ssh_url":"git@github.com:dbrgn/mopidy.git","clone_url":"https://github.com/dbrgn/mopidy.git","svn_url":"https://github.com/dbrgn/mopidy","homepage":"www.mopidy.com","size":27139,"stargazers_count":0,"watchers_count":0,"language":"Python","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":"develop"}},"base":{"label":"mopidy:develop","ref":"develop","sha":"a83d9836f9c00c4d95a8d51dfa7f4e1ab23338ce","user":{"login":"mopidy","id":451998,"avatar_url":"https://avatars.githubusercontent.com/u/451998?v=3","gravatar_id":"","url":"https://api.github.com/users/mopidy","html_url":"https://github.com/mopidy","followers_url":"https://api.github.com/users/mopidy/followers","following_url":"https://api.github.com/users/mopidy/following{/other_user}","gists_url":"https://api.github.com/users/mopidy/gists{/gist_id}","starred_url":"https://api.github.com/users/mopidy/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/mopidy/subscriptions","organizations_url":"https://api.github.com/users/mopidy/orgs","repos_url":"https://api.github.com/users/mopidy/repos","events_url":"https://api.github.com/users/mopidy/events{/privacy}","received_events_url":"https://api.github.com/users/mopidy/received_events","type":"Organization","site_admin":false},"repo":{"id":447036,"name":"mopidy","full_name":"mopidy/mopidy","owner":{"login":"mopidy","id":451998,"avatar_url":"https://avatars.githubusercontent.com/u/451998?v=3","gravatar_id":"","url":"https://api.github.com/users/mopidy","html_url":"https://github.com/mopidy","followers_url":"https://api.github.com/users/mopidy/followers","following_url":"https://api.github.com/users/mopidy/following{/other_user}","gists_url":"https://api.github.com/users/mopidy/gists{/gist_id}","starred_url":"https://api.github.com/users/mopidy/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/mopidy/subscriptions","organizations_url":"https://api.github.com/users/mopidy/orgs","repos_url":"https://api.github.com/users/mopidy/repos","events_url":"https://api.github.com/users/mopidy/events{/privacy}","received_events_url":"https://api.github.com/users/mopidy/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/mopidy/mopidy","description":"Mopidy is an extensible music server that plays music from local disk, Spotify, SoundCloud, Google Play Music, and more. You edit the playlist from any phone, tablet, or computer using a range of MPD and web clients.","fork":false,"url":"https://api.github.com/repos/mopidy/mopidy","forks_url":"https://api.github.com/repos/mopidy/mopidy/forks","keys_url":"https://api.github.com/repos/mopidy/mopidy/keys{/key_id}","collaborators_url":"https://api.github.com/repos/mopidy/mopidy/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/mopidy/mopidy/teams","hooks_url":"https://api.github.com/repos/mopidy/mopidy/hooks","issue_events_url":"https://api.github.com/repos/mopidy/mopidy/issues/events{/number}","events_url":"https://api.github.com/repos/mopidy/mopidy/events","assignees_url":"https://api.github.com/repos/mopidy/mopidy/assignees{/user}","branches_url":"https://api.github.com/repos/mopidy/mopidy/branches{/branch}","tags_url":"https://api.github.com/repos/mopidy/mopidy/tags","blobs_url":"https://api.github.com/repos/mopidy/mopidy/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/mopidy/mopidy/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/mopidy/mopidy/git/refs{/sha}","trees_url":"https://api.github.com/repos/mopidy/mopidy/git/trees{/sha}","statuses_url":"https://api.github.com/repos/mopidy/mopidy/statuses/{sha}","languages_url":"https://api.github.com/repos/mopidy/mopidy/languages","stargazers_url":"https://api.github.com/repos/mopidy/mopidy/stargazers","contributors_url":"https://api.github.com/repos/mopidy/mopidy/contributors","subscribers_url":"https://api.github.com/repos/mopidy/mopidy/subscribers","subscription_url":"https://api.github.com/repos/mopidy/mopidy/subscription","commits_url":"https://api.github.com/repos/mopidy/mopidy/commits{/sha}","git_commits_url":"https://api.github.com/repos/mopidy/mopidy/git/commits{/sha}","comments_url":"https://api.github.com/repos/mopidy/mopidy/comments{/number}","issue_comment_url":"https://api.github.com/repos/mopidy/mopidy/issues/comments{/number}","contents_url":"https://api.github.com/repos/mopidy/mopidy/contents/{+path}","compare_url":"https://api.github.com/repos/mopidy/mopidy/compare/{base}...{head}","merges_url":"https://api.github.com/repos/mopidy/mopidy/merges","archive_url":"https://api.github.com/repos/mopidy/mopidy/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/mopidy/mopidy/downloads","issues_url":"https://api.github.com/repos/mopidy/mopidy/issues{/number}","pulls_url":"https://api.github.com/repos/mopidy/mopidy/pulls{/number}","milestones_url":"https://api.github.com/repos/mopidy/mopidy/milestones{/number}","notifications_url":"https://api.github.com/repos/mopidy/mopidy/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/mopidy/mopidy/labels{/name}","releases_url":"https://api.github.com/repos/mopidy/mopidy/releases{/id}","created_at":"2009-12-23T14:25:36Z","updated_at":"2015-07-25T09:21:09Z","pushed_at":"2015-07-25T14:57:38Z","git_url":"git://github.com/mopidy/mopidy.git","ssh_url":"git@github.com:mopidy/mopidy.git","clone_url":"https://github.com/mopidy/mopidy.git","svn_url":"https://github.com/mopidy/mopidy","homepage":"www.mopidy.com","size":27139,"stargazers_count":2098,"watchers_count":2098,"language":"Python","has_issues":true,"has_downloads":true,"has_wiki":false,"has_pages":false,"forks_count":251,"mirror_url":null,"open_issues_count":148,"forks":251,"open_issues":148,"watchers":2098,"default_branch":"develop"}},"_links":{"self":{"href":"https://api.github.com/repos/mopidy/mopidy/pulls/1234"},"html":{"href":"https://github.com/mopidy/mopidy/pull/1234"},"issue":{"href":"https://api.github.com/repos/mopidy/mopidy/issues/1234"},"comments":{"href":"https://api.github.com/repos/mopidy/mopidy/issues/1234/comments"},"review_comments":{"href":"https://api.github.com/repos/mopidy/mopidy/pulls/1234/comments"},"review_comment":{"href":"https://api.github.com/repos/mopidy/mopidy/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/mopidy/mopidy/pulls/1234/commits"},"statuses":{"href":"https://api.github.com/repos/mopidy/mopidy/statuses/a673756e7a1baf36799048a1c4a72adcefd91769"}}}}