)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":9189,"name":"Anderson Mesquita","email":"andersonvom@gmail.com","username":"andersonvom"},"change_message_id":"1e7728f7826a0d49c5c9b60b9a93123153b75b2d","unresolved":false,"context_lines":[{"line_number":12,"context_line":"grouping information by project."},{"line_number":13,"context_line":""},{"line_number":14,"context_line":"There is still a lot of working to do on getting this page more"},{"line_number":15,"context_line":"responsive to users. Adding a \u0027loading\u0027 or some sort of feedback message"},{"line_number":16,"context_line":"will be very useful, but this will be tackled in a future patch."},{"line_number":17,"context_line":""},{"line_number":18,"context_line":"Change-Id: I31514e75629483f91a35c8e7b622bc298db6a41f"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":14,"id":"9a8ffd7b_3f8ca57e","line":15,"updated":"2015-11-25 15:50:42.000000000","message":"This seems to be outdated, since we already have the \"loading\" info message.","commit_id":"34bcfb48d8b5326127671c99fadf1ddd4cd877b4"}],"app/js/controllers/home.js":[{"author":{"_account_id":5196,"name":"Matthew Treinish","email":"mtreinish@kortar.org","username":"treinish"},"change_message_id":"8d59fcbc587f7f42cd22518510582ff1adb30c16","unresolved":false,"context_lines":[{"line_number":55,"context_line":""},{"line_number":56,"context_line":"  function loadRunMetadataKeys() {"},{"line_number":57,"context_line":"    healthService.getRunMetadataKeys().then(function(response) {"},{"line_number":58,"context_line":"\t  vm.runMetadataKeys \u003d response.data;"},{"line_number":59,"context_line":"    });"},{"line_number":60,"context_line":"  }"},{"line_number":61,"context_line":""}],"source_content_type":"text/javascript","patch_set":17,"id":"3a7e1126_0679ae93","line":58,"range":{"start_line":58,"start_character":0,"end_line":58,"end_character":3},"updated":"2015-12-16 23:19:13.000000000","message":"So I\u0027m not used to the new view yet, but I think this is a hard tab...","commit_id":"2822a788d10d2e9ce2771db85cd046ca883078f6"}],"app/styles/_vars.scss":[{"author":{"_account_id":9189,"name":"Anderson Mesquita","email":"andersonvom@gmail.com","username":"andersonvom"},"change_message_id":"1e7728f7826a0d49c5c9b60b9a93123153b75b2d","unresolved":false,"context_lines":[{"line_number":16,"context_line":"$font-size--sm: 12px;"},{"line_number":17,"context_line":"$font-size--md: 16px;"},{"line_number":18,"context_line":"$font-size--lg: 24px;"},{"line_number":19,"context_line":"$font-size--xl: 32px;"}],"source_content_type":"text/x-scss","patch_set":14,"id":"9a8ffd7b_1f1be11c","line":19,"updated":"2015-11-25 15:50:42.000000000","message":"this seems unrelated","commit_id":"34bcfb48d8b5326127671c99fadf1ddd4cd877b4"}],"app/views/home.html":[{"author":{"_account_id":18001,"name":"Caio Carrara","email":"ccarrara@thoughtworks.com","username":"caiocarrara"},"change_message_id":"90fe24afab5ea69076b85f80448a795b1071e336","unresolved":false,"context_lines":[{"line_number":18,"context_line":"                \u003c/form\u003e"},{"line_number":19,"context_line":"                \u003chr\u003e"},{"line_number":20,"context_line":"            \u003c/div\u003e"},{"line_number":21,"context_line":"        \u003c/div\u003e"},{"line_number":22,"context_line":"    \u003c/div\u003e"},{"line_number":23,"context_line":"\u003c/header\u003e"},{"line_number":24,"context_line":""}],"source_content_type":"text/html","patch_set":11,"id":"ba8a016a_0f75ac30","line":21,"updated":"2015-11-18 17:40:55.000000000","message":"Since this information only changes the gauge part of dashboard. I would put this select controller below the charts.","commit_id":"88a01a5bb79a35b02d773e590f5b625d16d521f9"},{"author":{"_account_id":17995,"name":"Glauco Oliveira","email":"gvinici@thoughtworks.com","username":"glauco"},"change_message_id":"b06a0381f88f6e55ad58dc74b94232b18c3e505c","unresolved":false,"context_lines":[{"line_number":18,"context_line":"                \u003c/form\u003e"},{"line_number":19,"context_line":"                \u003chr\u003e"},{"line_number":20,"context_line":"            \u003c/div\u003e"},{"line_number":21,"context_line":"        \u003c/div\u003e"},{"line_number":22,"context_line":"    \u003c/div\u003e"},{"line_number":23,"context_line":"\u003c/header\u003e"},{"line_number":24,"context_line":""}],"source_content_type":"text/html","patch_set":11,"id":"ba8a016a_038fc375","line":21,"in_reply_to":"ba8a016a_0f75ac30","updated":"2015-11-18 18:20:26.000000000","message":"Done","commit_id":"88a01a5bb79a35b02d773e590f5b625d16d521f9"},{"author":{"_account_id":18001,"name":"Caio Carrara","email":"ccarrara@thoughtworks.com","username":"caiocarrara"},"change_message_id":"90fe24afab5ea69076b85f80448a795b1071e336","unresolved":false,"context_lines":[{"line_number":49,"context_line":"                \u003cdiv class\u003d\"form-group\"\u003e"},{"line_number":50,"context_line":"                    \u003cdiv class\u003d\"input-group\"\u003e"},{"line_number":51,"context_line":"                        \u003cdiv class\u003d\"input-group-addon\"\u003e\u003ci class\u003d\"fa fa-search\"\u003e\u003c/i\u003e\u003c/div\u003e"},{"line_number":52,"context_line":"                        \u003cinput type\u003d\"text\" class\u003d\"form-control\" placeholder\u003d\"Search for project\" ng-model\u003d\"home.searchProject\"\u003e"},{"line_number":53,"context_line":"                    \u003c/div\u003e"},{"line_number":54,"context_line":"                \u003c/div\u003e"},{"line_number":55,"context_line":"            \u003c/form\u003e"}],"source_content_type":"text/html","patch_set":11,"id":"ba8a016a_af5b40f5","line":52,"updated":"2015-11-18 17:40:55.000000000","message":"We have to change this placeholder to show the metadata key used to group runs.","commit_id":"88a01a5bb79a35b02d773e590f5b625d16d521f9"},{"author":{"_account_id":17995,"name":"Glauco Oliveira","email":"gvinici@thoughtworks.com","username":"glauco"},"change_message_id":"b06a0381f88f6e55ad58dc74b94232b18c3e505c","unresolved":false,"context_lines":[{"line_number":49,"context_line":"                \u003cdiv class\u003d\"form-group\"\u003e"},{"line_number":50,"context_line":"                    \u003cdiv class\u003d\"input-group\"\u003e"},{"line_number":51,"context_line":"                        \u003cdiv class\u003d\"input-group-addon\"\u003e\u003ci class\u003d\"fa fa-search\"\u003e\u003c/i\u003e\u003c/div\u003e"},{"line_number":52,"context_line":"                        \u003cinput type\u003d\"text\" class\u003d\"form-control\" placeholder\u003d\"Search for project\" ng-model\u003d\"home.searchProject\"\u003e"},{"line_number":53,"context_line":"                    \u003c/div\u003e"},{"line_number":54,"context_line":"                \u003c/div\u003e"},{"line_number":55,"context_line":"            \u003c/form\u003e"}],"source_content_type":"text/html","patch_set":11,"id":"ba8a016a_a30cb73b","line":52,"in_reply_to":"ba8a016a_af5b40f5","updated":"2015-11-18 18:20:26.000000000","message":"Done","commit_id":"88a01a5bb79a35b02d773e590f5b625d16d521f9"},{"author":{"_account_id":9189,"name":"Anderson Mesquita","email":"andersonvom@gmail.com","username":"andersonvom"},"change_message_id":"1e7728f7826a0d49c5c9b60b9a93123153b75b2d","unresolved":false,"context_lines":[{"line_number":10,"context_line":"    \u003c/div\u003e"},{"line_number":11,"context_line":"\u003c/header\u003e"},{"line_number":12,"context_line":""},{"line_number":13,"context_line":"\u003cdiv class\u003d\"container\"\u003e"},{"line_number":14,"context_line":"    \u003cdiv class\u003d\"row\"\u003e"},{"line_number":15,"context_line":"        \u003cdiv class\u003d\"col-lg-12\"\u003e"},{"line_number":16,"context_line":"            \u003cdiv class\u003d\"panel panel-default\"\u003e"}],"source_content_type":"text/html","patch_set":14,"id":"9a8ffd7b_5f4089a5","line":13,"updated":"2015-11-25 15:50:42.000000000","message":"why was the loading indicator removed?","commit_id":"34bcfb48d8b5326127671c99fadf1ddd4cd877b4"}],"etc/openstack-health-api.conf":[{"author":{"_account_id":18001,"name":"Caio Carrara","email":"ccarrara@thoughtworks.com","username":"caiocarrara"},"change_message_id":"90fe24afab5ea69076b85f80448a795b1071e336","unresolved":false,"context_lines":[{"line_number":1,"context_line":"[default]"},{"line_number":2,"context_line":"db_uri \u003d mysql+pymysql://query:query@logstash.openstack.org/subunit2sql"},{"line_number":3,"context_line":"ignored_run_metadata_keys \u003d build_branch"},{"line_number":4,"context_line":"                            build_change"},{"line_number":5,"context_line":"                            build_master"},{"line_number":6,"context_line":"                            build_name"}],"source_content_type":"text/plain","patch_set":11,"id":"ba8a016a_f2bdabb7","line":3,"updated":"2015-11-18 17:40:55.000000000","message":"I would recommend to put the values of this config in a new line and use tab:\nconfig \u003d \n    value1\n    value2","commit_id":"88a01a5bb79a35b02d773e590f5b625d16d521f9"},{"author":{"_account_id":17995,"name":"Glauco Oliveira","email":"gvinici@thoughtworks.com","username":"glauco"},"change_message_id":"b06a0381f88f6e55ad58dc74b94232b18c3e505c","unresolved":false,"context_lines":[{"line_number":1,"context_line":"[default]"},{"line_number":2,"context_line":"db_uri \u003d mysql+pymysql://query:query@logstash.openstack.org/subunit2sql"},{"line_number":3,"context_line":"ignored_run_metadata_keys \u003d build_branch"},{"line_number":4,"context_line":"                            build_change"},{"line_number":5,"context_line":"                            build_master"},{"line_number":6,"context_line":"                            build_name"}],"source_content_type":"text/plain","patch_set":11,"id":"ba8a016a_08f12295","line":3,"in_reply_to":"ba8a016a_f2bdabb7","updated":"2015-11-18 18:20:26.000000000","message":"Done","commit_id":"88a01a5bb79a35b02d773e590f5b625d16d521f9"},{"author":{"_account_id":5196,"name":"Matthew Treinish","email":"mtreinish@kortar.org","username":"treinish"},"change_message_id":"fd4c07eb83e5211836d62ce4947c50b2d814ea95","unresolved":false,"context_lines":[{"line_number":1,"context_line":"[default]"},{"line_number":2,"context_line":"db_uri \u003d mysql+pymysql://query:query@logstash.openstack.org/subunit2sql"},{"line_number":3,"context_line":"ignored_run_metadata_keys \u003d"},{"line_number":4,"context_line":"  build_branch"},{"line_number":5,"context_line":"  build_change"},{"line_number":6,"context_line":"  build_master"},{"line_number":7,"context_line":"  build_name"}],"source_content_type":"text/plain","patch_set":12,"id":"ba8a016a_838093f8","line":4,"updated":"2015-11-18 18:30:05.000000000","message":"We should allow this key","commit_id":"1b94a670ba631fd2efc77528190f0670f353d427"},{"author":{"_account_id":5196,"name":"Matthew Treinish","email":"mtreinish@kortar.org","username":"treinish"},"change_message_id":"fd4c07eb83e5211836d62ce4947c50b2d814ea95","unresolved":false,"context_lines":[{"line_number":3,"context_line":"ignored_run_metadata_keys \u003d"},{"line_number":4,"context_line":"  build_branch"},{"line_number":5,"context_line":"  build_change"},{"line_number":6,"context_line":"  build_master"},{"line_number":7,"context_line":"  build_name"},{"line_number":8,"context_line":"  build_node"},{"line_number":9,"context_line":"  build_patchset"}],"source_content_type":"text/plain","patch_set":12,"id":"ba8a016a_830ad377","line":6,"updated":"2015-11-18 18:30:05.000000000","message":"I\u0027m on the fence about this one, I don\u0027t think it\u0027s necessarily valuable but it does have a discrete number of groups","commit_id":"1b94a670ba631fd2efc77528190f0670f353d427"},{"author":{"_account_id":5196,"name":"Matthew Treinish","email":"mtreinish@kortar.org","username":"treinish"},"change_message_id":"fd4c07eb83e5211836d62ce4947c50b2d814ea95","unresolved":false,"context_lines":[{"line_number":4,"context_line":"  build_branch"},{"line_number":5,"context_line":"  build_change"},{"line_number":6,"context_line":"  build_master"},{"line_number":7,"context_line":"  build_name"},{"line_number":8,"context_line":"  build_node"},{"line_number":9,"context_line":"  build_patchset"},{"line_number":10,"context_line":"  build_queue"}],"source_content_type":"text/plain","patch_set":12,"id":"ba8a016a_a39cb75d","line":7,"updated":"2015-11-18 18:30:05.000000000","message":"We should allow this key","commit_id":"1b94a670ba631fd2efc77528190f0670f353d427"},{"author":{"_account_id":5196,"name":"Matthew Treinish","email":"mtreinish@kortar.org","username":"treinish"},"change_message_id":"fd4c07eb83e5211836d62ce4947c50b2d814ea95","unresolved":false,"context_lines":[{"line_number":7,"context_line":"  build_name"},{"line_number":8,"context_line":"  build_node"},{"line_number":9,"context_line":"  build_patchset"},{"line_number":10,"context_line":"  build_queue"},{"line_number":11,"context_line":"  build_ref"},{"line_number":12,"context_line":"  build_short_uuid"},{"line_number":13,"context_line":"  build_uuid"}],"source_content_type":"text/plain","patch_set":12,"id":"ba8a016a_23a9a77b","line":10,"updated":"2015-11-18 18:30:05.000000000","message":"We should allow this key","commit_id":"1b94a670ba631fd2efc77528190f0670f353d427"},{"author":{"_account_id":5196,"name":"Matthew Treinish","email":"mtreinish@kortar.org","username":"treinish"},"change_message_id":"fd4c07eb83e5211836d62ce4947c50b2d814ea95","unresolved":false,"context_lines":[{"line_number":11,"context_line":"  build_ref"},{"line_number":12,"context_line":"  build_short_uuid"},{"line_number":13,"context_line":"  build_uuid"},{"line_number":14,"context_line":"  build_zuul_url"}],"source_content_type":"text/plain","patch_set":12,"id":"ba8a016a_633faf24","line":14,"updated":"2015-11-18 18:30:05.000000000","message":"We should also add filename here, it\u0027s useless","commit_id":"1b94a670ba631fd2efc77528190f0670f353d427"},{"author":{"_account_id":5196,"name":"Matthew Treinish","email":"mtreinish@kortar.org","username":"treinish"},"change_message_id":"053b68a892c695623f13e4e38f5e1fef80cc5314","unresolved":false,"context_lines":[{"line_number":1,"context_line":"[default]"},{"line_number":2,"context_line":"db_uri \u003d mysql+pymysql://query:query@logstash.openstack.org/subunit2sql"},{"line_number":3,"context_line":"ignored_run_metadata_keys \u003d"},{"line_number":4,"context_line":"  build_branch"},{"line_number":5,"context_line":"  build_change"},{"line_number":6,"context_line":"  build_master"}],"source_content_type":"text/plain","patch_set":14,"id":"ba8a016a_7645b6b1","line":3,"updated":"2015-12-11 17:38:43.000000000","message":"I still think we should have this list for testing reflect what we actually want to put on the prod server. We shouldn\u0027t ignore build_branch, build_name, build_queue. (or build_master maybe, although that\u0027s not really useful)","commit_id":"34bcfb48d8b5326127671c99fadf1ddd4cd877b4"},{"author":{"_account_id":5196,"name":"Matthew Treinish","email":"mtreinish@kortar.org","username":"treinish"},"change_message_id":"39f53b44c7daa259e6e78d0f4c92298affca126a","unresolved":false,"context_lines":[{"line_number":8,"context_line":"  build_ref"},{"line_number":9,"context_line":"  build_short_uuid"},{"line_number":10,"context_line":"  build_uuid"},{"line_number":11,"context_line":"  build_zuul_url"}],"source_content_type":"text/plain","patch_set":20,"id":"3a7e1126_896a8e19","line":11,"range":{"start_line":11,"start_character":0,"end_line":11,"end_character":2},"updated":"2015-12-17 01:37:12.000000000","message":"filename should arguably be on this list, because it\u0027s useless. But I guess for a sample file this is good enough","commit_id":"8ea97d4e57843893710bb1950d9dc1b869cbb19a"}],"openstack_health/api.py":[{"author":{"_account_id":18001,"name":"Caio Carrara","email":"ccarrara@thoughtworks.com","username":"caiocarrara"},"change_message_id":"90fe24afab5ea69076b85f80448a795b1071e336","unresolved":false,"context_lines":[{"line_number":98,"context_line":"        if config:"},{"line_number":99,"context_line":"            ignored_keys \u003d (config"},{"line_number":100,"context_line":"                            .get(\u0027default\u0027, \u0027ignored_run_metadata_keys\u0027)"},{"line_number":101,"context_line":"                            .split(\u0027\\n\u0027))"},{"line_number":102,"context_line":"        else:"},{"line_number":103,"context_line":"            ignored_keys \u003d []"},{"line_number":104,"context_line":"    except ConfigParser.NoOptionError:"}],"source_content_type":"text/x-python","patch_set":11,"id":"ba8a016a_72d1bbf9","line":101,"updated":"2015-11-18 17:40:55.000000000","message":"I would recommend you to use splitlines() method instead split(\u0027\\n\u0027)","commit_id":"88a01a5bb79a35b02d773e590f5b625d16d521f9"},{"author":{"_account_id":17995,"name":"Glauco Oliveira","email":"gvinici@thoughtworks.com","username":"glauco"},"change_message_id":"b06a0381f88f6e55ad58dc74b94232b18c3e505c","unresolved":false,"context_lines":[{"line_number":98,"context_line":"        if config:"},{"line_number":99,"context_line":"            ignored_keys \u003d (config"},{"line_number":100,"context_line":"                            .get(\u0027default\u0027, \u0027ignored_run_metadata_keys\u0027)"},{"line_number":101,"context_line":"                            .split(\u0027\\n\u0027))"},{"line_number":102,"context_line":"        else:"},{"line_number":103,"context_line":"            ignored_keys \u003d []"},{"line_number":104,"context_line":"    except ConfigParser.NoOptionError:"}],"source_content_type":"text/x-python","patch_set":11,"id":"ba8a016a_e8961e3e","line":101,"in_reply_to":"ba8a016a_72d1bbf9","updated":"2015-11-18 18:20:26.000000000","message":"Done","commit_id":"88a01a5bb79a35b02d773e590f5b625d16d521f9"},{"author":{"_account_id":9189,"name":"Anderson Mesquita","email":"andersonvom@gmail.com","username":"andersonvom"},"change_message_id":"1e7728f7826a0d49c5c9b60b9a93123153b75b2d","unresolved":false,"context_lines":[{"line_number":95,"context_line":"def get_run_metadata_keys():"},{"line_number":96,"context_line":"    global config"},{"line_number":97,"context_line":"    try:"},{"line_number":98,"context_line":"        if config:"},{"line_number":99,"context_line":"            ignored_keys \u003d (config"},{"line_number":100,"context_line":"                            .get(\u0027default\u0027, \u0027ignored_run_metadata_keys\u0027)"},{"line_number":101,"context_line":"                            .splitlines())"}],"source_content_type":"text/x-python","patch_set":14,"id":"9a8ffd7b_4896914d","line":98,"updated":"2015-11-25 15:50:42.000000000","message":"is this test required? isn\u0027t the ``setup()`` method above supposed to have populated the config variable by this point?","commit_id":"34bcfb48d8b5326127671c99fadf1ddd4cd877b4"},{"author":{"_account_id":9189,"name":"Anderson Mesquita","email":"andersonvom@gmail.com","username":"andersonvom"},"change_message_id":"1e7728f7826a0d49c5c9b60b9a93123153b75b2d","unresolved":false,"context_lines":[{"line_number":107,"context_line":"    session \u003d Session()"},{"line_number":108,"context_line":"    existing_keys \u003d api.get_all_run_metadata_keys(session)"},{"line_number":109,"context_line":""},{"line_number":110,"context_line":"    allowed_keys \u003d [key for key in existing_keys if key not in ignored_keys]"},{"line_number":111,"context_line":"    return jsonify({\u0027runs\u0027: {\u0027metadata\u0027: {\u0027keys\u0027: allowed_keys}}})"},{"line_number":112,"context_line":""},{"line_number":113,"context_line":""}],"source_content_type":"text/x-python","patch_set":14,"id":"9a8ffd7b_a8b37de8","line":110,"updated":"2015-11-25 15:50:42.000000000","message":"This looks like we could use set difference instead of list inclusion tests, as it\u0027s a lot faster:\n\n    allowed_keys \u003d set(existing_keys).difference(ignored_keys)\n\nor, if they\u0027re already sets, even:\n\n    allowed_keys \u003d existing_keys - ignored_keys","commit_id":"34bcfb48d8b5326127671c99fadf1ddd4cd877b4"},{"author":{"_account_id":9189,"name":"Anderson Mesquita","email":"andersonvom@gmail.com","username":"andersonvom"},"change_message_id":"1e7728f7826a0d49c5c9b60b9a93123153b75b2d","unresolved":false,"context_lines":[{"line_number":108,"context_line":"    existing_keys \u003d api.get_all_run_metadata_keys(session)"},{"line_number":109,"context_line":""},{"line_number":110,"context_line":"    allowed_keys \u003d [key for key in existing_keys if key not in ignored_keys]"},{"line_number":111,"context_line":"    return jsonify({\u0027runs\u0027: {\u0027metadata\u0027: {\u0027keys\u0027: allowed_keys}}})"},{"line_number":112,"context_line":""},{"line_number":113,"context_line":""},{"line_number":114,"context_line":"def _parse_datetimes(datetime_str):"}],"source_content_type":"text/x-python","patch_set":14,"id":"9a8ffd7b_48dc51e4","line":111,"updated":"2015-11-25 15:50:42.000000000","message":"Then, since sets are not serializable, return:\n\n    list(allowed_keys)","commit_id":"34bcfb48d8b5326127671c99fadf1ddd4cd877b4"},{"author":{"_account_id":5196,"name":"Matthew Treinish","email":"mtreinish@kortar.org","username":"treinish"},"change_message_id":"2fe1d8e1dfcf0175b3d0a90fa2e23838e5eee134","unresolved":false,"context_lines":[{"line_number":108,"context_line":"    existing_keys \u003d set(api.get_all_run_metadata_keys(session))"},{"line_number":109,"context_line":"    allowed_keys \u003d existing_keys.difference(ignored_keys)"},{"line_number":110,"context_line":""},{"line_number":111,"context_line":"    return jsonify({\u0027runs\u0027: {\u0027metadata\u0027: {\u0027keys\u0027: list(allowed_keys)}}})"},{"line_number":112,"context_line":""},{"line_number":113,"context_line":""},{"line_number":114,"context_line":"def _parse_datetimes(datetime_str):"}],"source_content_type":"text/x-python","patch_set":16,"id":"3a7e1126_15779603","line":111,"range":{"start_line":111,"start_character":30,"end_line":111,"end_character":38},"updated":"2015-12-16 22:25:24.000000000","message":"Does adding the 2 layers of dict here really add anything? Why do we need to change this?","commit_id":"d2dd022766bd82eb0d7fecc6471c6b3c480525db"}],"openstack_health/tests/test_api.py":[{"author":{"_account_id":9189,"name":"Anderson Mesquita","email":"andersonvom@gmail.com","username":"andersonvom"},"change_message_id":"1e7728f7826a0d49c5c9b60b9a93123153b75b2d","unresolved":false,"context_lines":[{"line_number":71,"context_line":"                    ]"},{"line_number":72,"context_line":"                }"},{"line_number":73,"context_line":"            }"},{"line_number":74,"context_line":"        }"},{"line_number":75,"context_line":"        self.assertEqual(expected_response, json.loads(res.data))"},{"line_number":76,"context_line":""},{"line_number":77,"context_line":"    @mock.patch(\u0027subunit2sql.db.api.get_test_run_dict_by_run_meta_key_value\u0027,"}],"source_content_type":"text/x-python","patch_set":14,"id":"9a8ffd7b_d3823252","line":74,"updated":"2015-11-25 15:50:42.000000000","message":"aren\u0027t we missing a test for the ignored keys functionality?","commit_id":"34bcfb48d8b5326127671c99fadf1ddd4cd877b4"}]}
