{"action":"opened","issue":{"url":"https://api.github.com/repos/google/grr/issues/358","repository_url":"https://api.github.com/repos/google/grr","labels_url":"https://api.github.com/repos/google/grr/issues/358/labels{/name}","comments_url":"https://api.github.com/repos/google/grr/issues/358/comments","events_url":"https://api.github.com/repos/google/grr/issues/358/events","html_url":"https://github.com/google/grr/issues/358","id":149530715,"number":358,"title":"test_data missing from 3.1.0rc2, breaks settings gui pane","user":{"login":"destijl","id":1291767,"avatar_url":"https://avatars.githubusercontent.com/u/1291767?v=3","gravatar_id":"","url":"https://api.github.com/users/destijl","html_url":"https://github.com/destijl","followers_url":"https://api.github.com/users/destijl/followers","following_url":"https://api.github.com/users/destijl/following{/other_user}","gists_url":"https://api.github.com/users/destijl/gists{/gist_id}","starred_url":"https://api.github.com/users/destijl/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/destijl/subscriptions","organizations_url":"https://api.github.com/users/destijl/orgs","repos_url":"https://api.github.com/users/destijl/repos","events_url":"https://api.github.com/users/destijl/events{/privacy}","received_events_url":"https://api.github.com/users/destijl/received_events","type":"User","site_admin":false},"labels":[{"url":"https://api.github.com/repos/google/grr/labels/bug","name":"bug","color":"fc2929"}],"state":"open","locked":false,"assignee":null,"milestone":null,"comments":0,"created_at":"2016-04-19T17:40:01Z","updated_at":"2016-04-19T17:40:01Z","closed_at":null,"body":"The test data is missing from 3.1.0rc2. This was a deliberate decision to clearly separate production code from test data, but it breaks the settings display.\r\n\r\nWe think the solution is to create another package for test data and dependencies, and just have an empty dir in the core package.\r\n\r\n```\r\nTraceback (most recent call last):\r\n  File \"/home/dev/GRR_ENV/local/lib/python2.7/site-packages/grr/gui/http_api.py\", line 415, in HandleRequest\r\n    rendered_data = self.CallApiHandler(handler, args, token=token)\r\n  File \"/home/dev/GRR_ENV/local/lib/python2.7/site-packages/grr/gui/http_api.py\", line 225, in CallApiHandler\r\n    return handler.Render(args, token=token)\r\n  File \"/home/dev/GRR_ENV/local/lib/python2.7/site-packages/grr/gui/api_plugins/config.py\", line 80, in Render\r\n    parameter_data = RenderConfigOption(parameter)\r\n  File \"/home/dev/GRR_ENV/local/lib/python2.7/site-packages/grr/gui/api_plugins/config.py\", line 25, in RenderConfigOption\r\n    option_value = config_lib.CONFIG.Get(name)\r\n  File \"/home/dev/GRR_ENV/local/lib/python2.7/site-packages/grr/lib/config_lib.py\", line 1162, in Get\r\n    type_info_obj=type_info_obj, context=calc_context)\r\n  File \"/home/dev/GRR_ENV/local/lib/python2.7/site-packages/grr/lib/config_lib.py\", line 1291, in InterpolateValue\r\n    parameter=type_info_obj.name, context=context).Parse()\r\n  File \"/home/dev/GRR_ENV/local/lib/python2.7/site-packages/grr/lib/config_lib.py\", line 671, in Parse\r\n    self.Close()\r\n  File \"/home/dev/GRR_ENV/local/lib/python2.7/site-packages/grr/lib/lexer.py\", line 187, in Close\r\n    while self.NextToken():\r\n  File \"/home/dev/GRR_ENV/local/lib/python2.7/site-packages/grr/lib/lexer.py\", line 127, in NextToken\r\n    possible_next_state = cb(string=m.group(0), match=m)\r\n  File \"/home/dev/GRR_ENV/local/lib/python2.7/site-packages/grr/lib/config_lib.py\", line 657, in ExpandArg\r\n    final_value = self.config.Get(parameter_name, context=self.context)\r\n  File \"/home/dev/GRR_ENV/local/lib/python2.7/site-packages/grr/lib/config_lib.py\", line 1162, in Get\r\n    type_info_obj=type_info_obj, context=calc_context)\r\n  File \"/home/dev/GRR_ENV/local/lib/python2.7/site-packages/grr/lib/config_lib.py\", line 1291, in InterpolateValue\r\n    parameter=type_info_obj.name, context=context).Parse()\r\n  File \"/home/dev/GRR_ENV/local/lib/python2.7/site-packages/grr/lib/config_lib.py\", line 671, in Parse\r\n    self.Close()\r\n  File \"/home/dev/GRR_ENV/local/lib/python2.7/site-packages/grr/lib/lexer.py\", line 187, in Close\r\n    while self.NextToken():\r\n  File \"/home/dev/GRR_ENV/local/lib/python2.7/site-packages/grr/lib/lexer.py\", line 127, in NextToken\r\n    possible_next_state = cb(string=m.group(0), match=m)\r\n  File \"/home/dev/GRR_ENV/local/lib/python2.7/site-packages/grr/lib/config_lib.py\", line 640, in Filter\r\n    arg = filter_object().Filter(arg)\r\n  File \"/home/dev/GRR_ENV/local/lib/python2.7/site-packages/grr/lib/config_lib.py\", line 220, in Filter\r\n    raise IOError(\"Unable to find resource %s\" % filename)\r\nIOError: Unable to find resource test_data\r\n```"}}