)]}'
{"subunit2sql/db/api.py":[{"author":{"_account_id":1921,"name":"Andrea Frittoli","email":"andrea.frittoli@gmail.com","username":"andrea-frittoli"},"change_message_id":"6de82ef68d57e2f3bd5943523b87e2526d5304f7","unresolved":false,"context_lines":[{"line_number":992,"context_line":"    query \u003d db_utils.model_query(models.RunMetadata, session).filter("},{"line_number":993,"context_line":"        models.RunMetadata.key \u003d\u003d key,"},{"line_number":994,"context_line":"        models.RunMetadata.value \u003d\u003d value).join(models.Run).join("},{"line_number":995,"context_line":"            models.TestRun).join(models.Test)"},{"line_number":996,"context_line":"    query \u003d _filter_runs_by_date(query, start_date\u003dNone, stop_date\u003dNone)"},{"line_number":997,"context_line":"    query \u003d query.values(models.Test.test_id,"},{"line_number":998,"context_line":"                         models.TestRun.status,"}],"source_content_type":"text/x-python","patch_set":5,"id":"9a1a9d01_156e95c9","line":995,"updated":"2015-09-24 23:12:16.000000000","message":"So I\u0027m confused why do you need Run in these joins?\nrun_id is in run_metadata and in test_runs, so you can join the two on run_id. test_id iin test_runs matches id in tests so you can join them there.\n\nBTW test_id in tests is not the same as test_id in test_runs which is a bit confusing, perhaps we could rename test_id in tests to name?","commit_id":"d7476fa27cd8c9501e0ba2b62460a51e6696698e"},{"author":{"_account_id":5196,"name":"Matthew Treinish","email":"mtreinish@kortar.org","username":"treinish"},"change_message_id":"5030be8e663400bb1789454b93efe4c928529c1e","unresolved":false,"context_lines":[{"line_number":992,"context_line":"    query \u003d db_utils.model_query(models.RunMetadata, session).filter("},{"line_number":993,"context_line":"        models.RunMetadata.key \u003d\u003d key,"},{"line_number":994,"context_line":"        models.RunMetadata.value \u003d\u003d value).join(models.Run).join("},{"line_number":995,"context_line":"            models.TestRun).join(models.Test)"},{"line_number":996,"context_line":"    query \u003d _filter_runs_by_date(query, start_date\u003dNone, stop_date\u003dNone)"},{"line_number":997,"context_line":"    query \u003d query.values(models.Test.test_id,"},{"line_number":998,"context_line":"                         models.TestRun.status,"}],"source_content_type":"text/x-python","patch_set":5,"id":"9a1a9d01_b569e98d","line":995,"in_reply_to":"9a1a9d01_156e95c9","updated":"2015-09-24 23:22:21.000000000","message":"You\u0027re right I don\u0027t need the Run join here, I\u0027ll probably have to be explicit about the relationship between RunMetadata and and TestRun because I\u0027m not sure sqlalchemy is smart enough to know that.\n\nThey\u0027re not, I suck at naming things I never claimed otherwise. In my head the id columns in test_runs are run.id and test.id but I used an underscore because I\u0027m sloppy, and I had concerns about using . in python although I guess it\u0027s a string so that doesn\u0027t matter.","commit_id":"d7476fa27cd8c9501e0ba2b62460a51e6696698e"},{"author":{"_account_id":6167,"name":"Ken\u0027ichi Ohmichi","email":"ken1ohmichi@gmail.com","username":"oomichi"},"change_message_id":"14fe7cbb3661bd385d6d93a8708170dbf12942b6","unresolved":false,"context_lines":[{"line_number":981,"context_line":"                      against"},{"line_number":982,"context_line":"    :param start_date: Optional start date to filter results on"},{"line_number":983,"context_line":"    :param stop_date: Optional stop date to filter results on"},{"line_number":984,"context_line":"    :param session: optional session object if one isn\u0027t provided a new session"},{"line_number":985,"context_line":"                    will be acquired for the duration of this operation"},{"line_number":986,"context_line":""},{"line_number":987,"context_line":"    :return test_runs: The dictionary of all the tests run on any run that had"}],"source_content_type":"text/x-python","patch_set":6,"id":"9a1a9d01_75091195","line":984,"updated":"2015-09-24 23:37:28.000000000","message":"Why isn\u0027t here Optional like the above?","commit_id":"b16b13e40df9d84c36319e1c719bd5a6c56a7ddd"},{"author":{"_account_id":5196,"name":"Matthew Treinish","email":"mtreinish@kortar.org","username":"treinish"},"change_message_id":"c2ad8eda0628a193ad9c967c006bc93ec25bbd7b","unresolved":false,"context_lines":[{"line_number":981,"context_line":"                      against"},{"line_number":982,"context_line":"    :param start_date: Optional start date to filter results on"},{"line_number":983,"context_line":"    :param stop_date: Optional stop date to filter results on"},{"line_number":984,"context_line":"    :param session: optional session object if one isn\u0027t provided a new session"},{"line_number":985,"context_line":"                    will be acquired for the duration of this operation"},{"line_number":986,"context_line":""},{"line_number":987,"context_line":"    :return test_runs: The dictionary of all the tests run on any run that had"}],"source_content_type":"text/x-python","patch_set":6,"id":"9a1a9d01_d589fdcb","line":984,"in_reply_to":"9a1a9d01_75091195","updated":"2015-09-24 23:44:10.000000000","message":"meh","commit_id":"b16b13e40df9d84c36319e1c719bd5a6c56a7ddd"},{"author":{"_account_id":6167,"name":"Ken\u0027ichi Ohmichi","email":"ken1ohmichi@gmail.com","username":"oomichi"},"change_message_id":"14fe7cbb3661bd385d6d93a8708170dbf12942b6","unresolved":false,"context_lines":[{"line_number":995,"context_line":"            models.TestRun,"},{"line_number":996,"context_line":"            models.RunMetadata.run_id \u003d\u003d models.TestRun.run_id).join("},{"line_number":997,"context_line":"                models.Test)"},{"line_number":998,"context_line":"    query \u003d _filter_runs_by_date(query, start_date\u003dNone, stop_date\u003dNone)"},{"line_number":999,"context_line":"    query \u003d query.values(models.Test.test_id,"},{"line_number":1000,"context_line":"                         models.TestRun.status,"},{"line_number":1001,"context_line":"                         models.TestRun.start_time,"}],"source_content_type":"text/x-python","patch_set":6,"id":"9a1a9d01_15353545","line":998,"updated":"2015-09-24 23:37:28.000000000","message":"Here should be\n\n query \u003d _filter_runs_by_date(query, start_date\u003dstart_date, stop_date\u003dstop_date)\n\nI guess","commit_id":"b16b13e40df9d84c36319e1c719bd5a6c56a7ddd"},{"author":{"_account_id":5196,"name":"Matthew Treinish","email":"mtreinish@kortar.org","username":"treinish"},"change_message_id":"c2ad8eda0628a193ad9c967c006bc93ec25bbd7b","unresolved":false,"context_lines":[{"line_number":995,"context_line":"            models.TestRun,"},{"line_number":996,"context_line":"            models.RunMetadata.run_id \u003d\u003d models.TestRun.run_id).join("},{"line_number":997,"context_line":"                models.Test)"},{"line_number":998,"context_line":"    query \u003d _filter_runs_by_date(query, start_date\u003dNone, stop_date\u003dNone)"},{"line_number":999,"context_line":"    query \u003d query.values(models.Test.test_id,"},{"line_number":1000,"context_line":"                         models.TestRun.status,"},{"line_number":1001,"context_line":"                         models.TestRun.start_time,"}],"source_content_type":"text/x-python","patch_set":6,"id":"9a1a9d01_159f7504","line":998,"in_reply_to":"9a1a9d01_15353545","updated":"2015-09-24 23:44:10.000000000","message":"Good catch this is quite wrong","commit_id":"b16b13e40df9d84c36319e1c719bd5a6c56a7ddd"}]}
