{"action":"created","issue":{"url":"https://api.github.com/repos/Valloric/ycmd/issues/637","repository_url":"https://api.github.com/repos/Valloric/ycmd","labels_url":"https://api.github.com/repos/Valloric/ycmd/issues/637/labels{/name}","comments_url":"https://api.github.com/repos/Valloric/ycmd/issues/637/comments","events_url":"https://api.github.com/repos/Valloric/ycmd/issues/637/events","html_url":"https://github.com/Valloric/ycmd/pull/637","id":186885046,"number":637,"title":"[READY] Extract filtering of tags as a generator","user":{"login":"vheon","id":90633,"avatar_url":"https://avatars.githubusercontent.com/u/90633?v=3","gravatar_id":"","url":"https://api.github.com/users/vheon","html_url":"https://github.com/vheon","followers_url":"https://api.github.com/users/vheon/followers","following_url":"https://api.github.com/users/vheon/following{/other_user}","gists_url":"https://api.github.com/users/vheon/gists{/gist_id}","starred_url":"https://api.github.com/users/vheon/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/vheon/subscriptions","organizations_url":"https://api.github.com/users/vheon/orgs","repos_url":"https://api.github.com/users/vheon/repos","events_url":"https://api.github.com/users/vheon/events{/privacy}","received_events_url":"https://api.github.com/users/vheon/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"assignees":[],"milestone":null,"comments":8,"created_at":"2016-11-02T18:34:43Z","updated_at":"2016-11-03T22:41:26Z","closed_at":null,"pull_request":{"url":"https://api.github.com/repos/Valloric/ycmd/pulls/637","html_url":"https://github.com/Valloric/ycmd/pull/637","diff_url":"https://github.com/Valloric/ycmd/pull/637.diff","patch_url":"https://github.com/Valloric/ycmd/pull/637.patch"},"body":"Looking at the coverage of the Python layer of ycmd I noticed that one of the least tested file was the `identifier_completer.py` file. I understand that this file is actually just a thin wrapper around the cpp class (conversion to/from ycm_core data structure) so is understandable that is not 100% tested, but one big section that was not tested is the tag insertion: before inserting the file paths into an array and passing it to the cpp class we filter some paths based on the last update time of the file. So I extracted that section of the function as a generator and unit tested that function. I've marked this as WIP because I'm adding also a test that actually exercise the feature end-to-end.\n\n<!-- Reviewable:start -->\n---\nThis change is [<img src=\"https://reviewable.io/review_button.svg\" height=\"34\" align=\"absmiddle\" alt=\"Reviewable\"/>](https://reviewable.io/reviews/valloric/ycmd/637)\n<!-- Reviewable:end -->\n"},"comment":{"url":"https://api.github.com/repos/Valloric/ycmd/issues/comments/258295783","html_url":"https://github.com/Valloric/ycmd/pull/637#issuecomment-258295783","issue_url":"https://api.github.com/repos/Valloric/ycmd/issues/637","id":258295783,"user":{"login":"vheon","id":90633,"avatar_url":"https://avatars.githubusercontent.com/u/90633?v=3","gravatar_id":"","url":"https://api.github.com/users/vheon","html_url":"https://github.com/vheon","followers_url":"https://api.github.com/users/vheon/followers","following_url":"https://api.github.com/users/vheon/following{/other_user}","gists_url":"https://api.github.com/users/vheon/gists{/gist_id}","starred_url":"https://api.github.com/users/vheon/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/vheon/subscriptions","organizations_url":"https://api.github.com/users/vheon/orgs","repos_url":"https://api.github.com/users/vheon/repos","events_url":"https://api.github.com/users/vheon/events{/privacy}","received_events_url":"https://api.github.com/users/vheon/received_events","type":"User","site_admin":false},"created_at":"2016-11-03T22:41:26Z","updated_at":"2016-11-03T22:41:26Z","body":"Apparently it failed a build both on Travis and Appveyor for different reasons unrelated to this change 😕 "}}
{"actor":{"display_login":"vheon"}}