)]}'
{"networking_odl/common/config.py":[{"author":{"_account_id":26507,"name":"Michel Peterson","email":"michel@redhat.com","username":"mpeterson"},"change_message_id":"05e0926ab35845c33d0465424d93e5c5fff7ea83","unresolved":false,"context_lines":[{"line_number":37,"context_line":"    cfg.IntOpt(\u0027maintenance_interval\u0027, default\u003d300,"},{"line_number":38,"context_line":"               help\u003d_(\"(V2 driver) Journal maintenance operations interval \""},{"line_number":39,"context_line":"                      \"in seconds.\")),"},{"line_number":40,"context_line":"    cfg.IntOpt(\u0027completed_rows_retention\u0027, default\u003d600,"},{"line_number":41,"context_line":"               help\u003d_(\"(V2 driver) Time to keep completed rows (in seconds).\""},{"line_number":42,"context_line":"                      \"For performance reasons it\u0027s not recommended to \""},{"line_number":43,"context_line":"                      \"change this from the default value (0) which \""}],"source_content_type":"text/x-python","patch_set":1,"id":"5f2577a7_40fb4046","line":40,"range":{"start_line":40,"start_character":51,"end_line":40,"end_character":54},"updated":"2017-09-14 12:33:12.000000000","message":"you forgot to change the default","commit_id":"227e503cf541925ef6c1aa7e52002e732c3c6ec8"},{"author":{"_account_id":7921,"name":"Mike Kolesnik","email":"mkolesni@redhat.com","username":"mkolesni"},"change_message_id":"9f62b8a376363f1b7c0985997922e58c21eaf788","unresolved":false,"context_lines":[{"line_number":37,"context_line":"    cfg.IntOpt(\u0027maintenance_interval\u0027, default\u003d300,"},{"line_number":38,"context_line":"               help\u003d_(\"(V2 driver) Journal maintenance operations interval \""},{"line_number":39,"context_line":"                      \"in seconds.\")),"},{"line_number":40,"context_line":"    cfg.IntOpt(\u0027completed_rows_retention\u0027, default\u003d600,"},{"line_number":41,"context_line":"               help\u003d_(\"(V2 driver) Time to keep completed rows (in seconds).\""},{"line_number":42,"context_line":"                      \"For performance reasons it\u0027s not recommended to \""},{"line_number":43,"context_line":"                      \"change this from the default value (0) which \""}],"source_content_type":"text/x-python","patch_set":1,"id":"5f2577a7_b25c76ed","line":40,"range":{"start_line":40,"start_character":51,"end_line":40,"end_character":54},"in_reply_to":"5f2577a7_40fb4046","updated":"2017-09-14 16:30:16.000000000","message":"Done","commit_id":"227e503cf541925ef6c1aa7e52002e732c3c6ec8"},{"author":{"_account_id":26507,"name":"Michel Peterson","email":"michel@redhat.com","username":"mpeterson"},"change_message_id":"451953bdeb45dfb7d7e818aefe1eb18941957fdc","unresolved":false,"context_lines":[{"line_number":37,"context_line":"    cfg.IntOpt(\u0027maintenance_interval\u0027, default\u003d300,"},{"line_number":38,"context_line":"               help\u003d_(\"(V2 driver) Journal maintenance operations interval \""},{"line_number":39,"context_line":"                      \"in seconds.\")),"},{"line_number":40,"context_line":"    cfg.IntOpt(\u0027completed_rows_retention\u0027, default\u003d0,"},{"line_number":41,"context_line":"               help\u003d_(\"(V2 driver) Time to keep completed rows (in seconds).\""},{"line_number":42,"context_line":"                      \"For performance reasons it\u0027s not recommended to \""},{"line_number":43,"context_line":"                      \"change this from the default value (0) which \""}],"source_content_type":"text/x-python","patch_set":2,"id":"5f2577a7_a9fac8b9","line":40,"range":{"start_line":40,"start_character":43,"end_line":40,"end_character":52},"updated":"2017-09-14 17:27:21.000000000","message":"There should be a test that will check that on a default configuration this value is 0. If we had this, then this wouldn\u0027t have passed the CI tests.","commit_id":"412e566ee0ae870a9dc79a6a5f51335086a6059c"},{"author":{"_account_id":7921,"name":"Mike Kolesnik","email":"mkolesni@redhat.com","username":"mkolesni"},"change_message_id":"b72ee4233236b7a700fd9026fa388fd0a6ec657d","unresolved":false,"context_lines":[{"line_number":37,"context_line":"    cfg.IntOpt(\u0027maintenance_interval\u0027, default\u003d300,"},{"line_number":38,"context_line":"               help\u003d_(\"(V2 driver) Journal maintenance operations interval \""},{"line_number":39,"context_line":"                      \"in seconds.\")),"},{"line_number":40,"context_line":"    cfg.IntOpt(\u0027completed_rows_retention\u0027, default\u003d0,"},{"line_number":41,"context_line":"               help\u003d_(\"(V2 driver) Time to keep completed rows (in seconds).\""},{"line_number":42,"context_line":"                      \"For performance reasons it\u0027s not recommended to \""},{"line_number":43,"context_line":"                      \"change this from the default value (0) which \""}],"source_content_type":"text/x-python","patch_set":2,"id":"5f2577a7_505e6512","line":40,"range":{"start_line":40,"start_character":43,"end_line":40,"end_character":52},"in_reply_to":"5f2577a7_a9fac8b9","updated":"2017-09-14 21:00:20.000000000","message":"I don\u0027t think such a test would be valuable.\n\nAlso don\u0027t we have code review for this?","commit_id":"412e566ee0ae870a9dc79a6a5f51335086a6059c"}],"networking_odl/db/db.py":[{"author":{"_account_id":26507,"name":"Michel Peterson","email":"michel@redhat.com","username":"mpeterson"},"change_message_id":"451953bdeb45dfb7d7e818aefe1eb18941957fdc","unresolved":false,"context_lines":[{"line_number":141,"context_line":"    # Keep session flush for unit tests. NOOP for L2/L3 events since calls are"},{"line_number":142,"context_line":"    # made inside database session transaction with subtransactions\u003dTrue."},{"line_number":143,"context_line":"    session.flush()"},{"line_number":144,"context_line":"    return row"},{"line_number":145,"context_line":""},{"line_number":146,"context_line":""},{"line_number":147,"context_line":"@db_api.retry_db_errors"}],"source_content_type":"text/x-python","patch_set":2,"id":"5f2577a7_c9df5438","line":144,"updated":"2017-09-14 17:27:21.000000000","message":"Adding functionality for the sole purpose of making the tests easier is not proper. There are a lot of tests that didn\u0027t have this and still are able to test the functionality.\n\nNow, if you think that it is functionality that it\u0027s needed or it\u0027s an expected behavior, that\u0027s something else. In which case there should be a test for this.","commit_id":"412e566ee0ae870a9dc79a6a5f51335086a6059c"},{"author":{"_account_id":7921,"name":"Mike Kolesnik","email":"mkolesni@redhat.com","username":"mkolesni"},"change_message_id":"b72ee4233236b7a700fd9026fa388fd0a6ec657d","unresolved":false,"context_lines":[{"line_number":141,"context_line":"    # Keep session flush for unit tests. NOOP for L2/L3 events since calls are"},{"line_number":142,"context_line":"    # made inside database session transaction with subtransactions\u003dTrue."},{"line_number":143,"context_line":"    session.flush()"},{"line_number":144,"context_line":"    return row"},{"line_number":145,"context_line":""},{"line_number":146,"context_line":""},{"line_number":147,"context_line":"@db_api.retry_db_errors"}],"source_content_type":"text/x-python","patch_set":2,"id":"5f2577a7_d0adb59b","line":144,"in_reply_to":"5f2577a7_c9df5438","updated":"2017-09-14 21:00:20.000000000","message":"That\u0027s quite debateable since we\u0027re using the DB module a lot in tests (other than unit tests for the module itself) so doing one small change that doesnt affect production code whatsoever to improve the tests is a good trade-off in my opinion.\n\nI added a test","commit_id":"412e566ee0ae870a9dc79a6a5f51335086a6059c"},{"author":{"_account_id":333,"name":"Isaku Yamahata","email":"isaku.yamahata@gmail.com","username":"yamahata"},"change_message_id":"02338647743e6c71482e1aaacc3489617f382bd7","unresolved":false,"context_lines":[{"line_number":141,"context_line":"    # Keep session flush for unit tests. NOOP for L2/L3 events since calls are"},{"line_number":142,"context_line":"    # made inside database session transaction with subtransactions\u003dTrue."},{"line_number":143,"context_line":"    session.flush()"},{"line_number":144,"context_line":"    return row"},{"line_number":145,"context_line":""},{"line_number":146,"context_line":""},{"line_number":147,"context_line":"@db_api.retry_db_errors"}],"source_content_type":"text/x-python","patch_set":3,"id":"5f2577a7_7aa93722","line":144,"range":{"start_line":144,"start_character":0,"end_line":144,"end_character":14},"updated":"2017-09-15 01:02:38.000000000","message":"This isn\u0027t used except test.\nthis shouldn\u0027t be changed.","commit_id":"2b86ffa607878186e24e6eaccaa471a2da7c5396"},{"author":{"_account_id":7921,"name":"Mike Kolesnik","email":"mkolesni@redhat.com","username":"mkolesni"},"change_message_id":"b89b6e1df65c035a8641b10fc04e5ec3c7b568fd","unresolved":false,"context_lines":[{"line_number":141,"context_line":"    # Keep session flush for unit tests. NOOP for L2/L3 events since calls are"},{"line_number":142,"context_line":"    # made inside database session transaction with subtransactions\u003dTrue."},{"line_number":143,"context_line":"    session.flush()"},{"line_number":144,"context_line":"    return row"},{"line_number":145,"context_line":""},{"line_number":146,"context_line":""},{"line_number":147,"context_line":"@db_api.retry_db_errors"}],"source_content_type":"text/x-python","patch_set":3,"id":"3f4b6375_62f401d0","line":144,"range":{"start_line":144,"start_character":0,"end_line":144,"end_character":14},"in_reply_to":"3f4b6375_eaa16397","updated":"2017-10-23 15:47:54.000000000","message":"This is now sitting in a preliminary patch","commit_id":"2b86ffa607878186e24e6eaccaa471a2da7c5396"},{"author":{"_account_id":7921,"name":"Mike Kolesnik","email":"mkolesni@redhat.com","username":"mkolesni"},"change_message_id":"107f8f97a53500d66b4a5744d53994169e616058","unresolved":false,"context_lines":[{"line_number":141,"context_line":"    # Keep session flush for unit tests. NOOP for L2/L3 events since calls are"},{"line_number":142,"context_line":"    # made inside database session transaction with subtransactions\u003dTrue."},{"line_number":143,"context_line":"    session.flush()"},{"line_number":144,"context_line":"    return row"},{"line_number":145,"context_line":""},{"line_number":146,"context_line":""},{"line_number":147,"context_line":"@db_api.retry_db_errors"}],"source_content_type":"text/x-python","patch_set":3,"id":"7f515b1d_bc8195c5","line":144,"range":{"start_line":144,"start_character":0,"end_line":144,"end_character":14},"in_reply_to":"5f2577a7_7aa93722","updated":"2017-10-02 12:08:57.000000000","message":"I have another patch https://review.openstack.org/508826 also requiring this change.\n\nOverall I don\u0027t see any problem to do this, we have some much uglier stuff that\u0027s only used for testing, while this change is actually useful not only for testing.","commit_id":"2b86ffa607878186e24e6eaccaa471a2da7c5396"},{"author":{"_account_id":26507,"name":"Michel Peterson","email":"michel@redhat.com","username":"mpeterson"},"change_message_id":"563cf916f2ee6bbfe8fbf43ba00dc616be9c1517","unresolved":false,"context_lines":[{"line_number":141,"context_line":"    # Keep session flush for unit tests. NOOP for L2/L3 events since calls are"},{"line_number":142,"context_line":"    # made inside database session transaction with subtransactions\u003dTrue."},{"line_number":143,"context_line":"    session.flush()"},{"line_number":144,"context_line":"    return row"},{"line_number":145,"context_line":""},{"line_number":146,"context_line":""},{"line_number":147,"context_line":"@db_api.retry_db_errors"}],"source_content_type":"text/x-python","patch_set":3,"id":"3f4b6375_eaa16397","line":144,"range":{"start_line":144,"start_character":0,"end_line":144,"end_character":14},"in_reply_to":"7f515b1d_bc8195c5","updated":"2017-10-18 07:04:58.000000000","message":"\u003e Overall I don\u0027t see any problem to do this, we have some much\n \u003e uglier stuff that\u0027s only used for testing, while this change is\n \u003e actually useful not only for testing.\n\nThis is not a very good justification actually. We need to improve, not to settle with bad practices.\n\nI don\u0027t see a problem with it either. Just this patch doesn\u0027t require it. If the other patch requires it, then the other patch can add it and add a behavior definition through a test.","commit_id":"2b86ffa607878186e24e6eaccaa471a2da7c5396"}],"networking_odl/journal/cleanup.py":[{"author":{"_account_id":26507,"name":"Michel Peterson","email":"michel@redhat.com","username":"mpeterson"},"change_message_id":"29d55bbb9b10584b5de23e823b756def28d49b10","unresolved":false,"context_lines":[{"line_number":32,"context_line":"        self._processing_timeout \u003d cfg.CONF.ml2_odl.processing_timeout"},{"line_number":33,"context_line":""},{"line_number":34,"context_line":"    def delete_completed_rows(self, context):"},{"line_number":35,"context_line":"        if self._rows_retention \u003e 0:"},{"line_number":36,"context_line":"            LOG.debug(\"Deleting completed rows\")"},{"line_number":37,"context_line":"            db.delete_rows_by_state_and_time("},{"line_number":38,"context_line":"                context.session, odl_const.COMPLETED,"}],"source_content_type":"text/x-python","patch_set":1,"id":"5f2577a7_a9de486a","line":35,"range":{"start_line":35,"start_character":8,"end_line":35,"end_character":36},"updated":"2017-09-14 17:19:40.000000000","message":"It would be good to have a test that actually covers that:\n\n- entries are deleted after the retention time (which is the purpose of this conditional)\n- they are not deleted when the value is set to -1 (we might change this function in the future and that is the documented behavior, and therefore we need to make sure that it will be respected in future versions as well)","commit_id":"227e503cf541925ef6c1aa7e52002e732c3c6ec8"},{"author":{"_account_id":7921,"name":"Mike Kolesnik","email":"mkolesni@redhat.com","username":"mkolesni"},"change_message_id":"5146ae08a83214807bb6cab52f9fa982517abf43","unresolved":false,"context_lines":[{"line_number":32,"context_line":"        self._processing_timeout \u003d cfg.CONF.ml2_odl.processing_timeout"},{"line_number":33,"context_line":""},{"line_number":34,"context_line":"    def delete_completed_rows(self, context):"},{"line_number":35,"context_line":"        if self._rows_retention \u003e 0:"},{"line_number":36,"context_line":"            LOG.debug(\"Deleting completed rows\")"},{"line_number":37,"context_line":"            db.delete_rows_by_state_and_time("},{"line_number":38,"context_line":"                context.session, odl_const.COMPLETED,"}],"source_content_type":"text/x-python","patch_set":1,"id":"5f2577a7_eb25605d","line":35,"range":{"start_line":35,"start_character":8,"end_line":35,"end_character":36},"in_reply_to":"5f2577a7_a9de486a","updated":"2017-09-14 21:00:10.000000000","message":"Done","commit_id":"227e503cf541925ef6c1aa7e52002e732c3c6ec8"}],"networking_odl/journal/recovery.py":[{"author":{"_account_id":26507,"name":"Michel Peterson","email":"michel@redhat.com","username":"mpeterson"},"change_message_id":"451953bdeb45dfb7d7e818aefe1eb18941957fdc","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":2,"id":"5f2577a7_4972444b","updated":"2017-09-14 17:27:21.000000000","message":"Again, there should be the functionality should be needed to be added because there is a test that requires it.","commit_id":"412e566ee0ae870a9dc79a6a5f51335086a6059c"},{"author":{"_account_id":7921,"name":"Mike Kolesnik","email":"mkolesni@redhat.com","username":"mkolesni"},"change_message_id":"b72ee4233236b7a700fd9026fa388fd0a6ec657d","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":2,"id":"5f2577a7_b0a469a7","in_reply_to":"5f2577a7_4972444b","updated":"2017-09-14 21:00:20.000000000","message":"I don\u0027t understand what you mean, can you please explain?","commit_id":"412e566ee0ae870a9dc79a6a5f51335086a6059c"},{"author":{"_account_id":26507,"name":"Michel Peterson","email":"michel@redhat.com","username":"mpeterson"},"change_message_id":"4c883b5a5509ac328fe66d1121555555f40dd416","unresolved":false,"context_lines":[{"line_number":77,"context_line":"        journal.record(context, row.object_type, row.object_uuid,"},{"line_number":78,"context_line":"                       operation_type, resource)"},{"line_number":79,"context_line":""},{"line_number":80,"context_line":"    journal.entry_complete(context, row)"},{"line_number":81,"context_line":""},{"line_number":82,"context_line":""},{"line_number":83,"context_line":"def _handle_existing_resource(context, row):"}],"source_content_type":"text/x-python","patch_set":3,"id":"5f2577a7_44caf01a","line":80,"range":{"start_line":80,"start_character":4,"end_line":80,"end_character":40},"updated":"2017-09-18 14:38:58.000000000","message":"I did the exercise of not changing this line (leaving the base version) and running all the tests and it resulted in a PASS of Py27 and Py35.\n\nThis basically means that there is no test that actually expects the behavior that `entry_complete` provides, and therefore we are better left without this line changed.\n\nNow, if we had a test that actually expected this behavior AND failed in the absence of this line, then that would be different.","commit_id":"2b86ffa607878186e24e6eaccaa471a2da7c5396"},{"author":{"_account_id":7921,"name":"Mike Kolesnik","email":"mkolesni@redhat.com","username":"mkolesni"},"change_message_id":"107f8f97a53500d66b4a5744d53994169e616058","unresolved":false,"context_lines":[{"line_number":77,"context_line":"        journal.record(context, row.object_type, row.object_uuid,"},{"line_number":78,"context_line":"                       operation_type, resource)"},{"line_number":79,"context_line":""},{"line_number":80,"context_line":"    journal.entry_complete(context, row)"},{"line_number":81,"context_line":""},{"line_number":82,"context_line":""},{"line_number":83,"context_line":"def _handle_existing_resource(context, row):"}],"source_content_type":"text/x-python","patch_set":3,"id":"7f515b1d_5f58502f","line":80,"range":{"start_line":80,"start_character":4,"end_line":80,"end_character":40},"in_reply_to":"5f2577a7_44caf01a","updated":"2017-10-02 12:08:57.000000000","message":"Done","commit_id":"2b86ffa607878186e24e6eaccaa471a2da7c5396"},{"author":{"_account_id":26507,"name":"Michel Peterson","email":"michel@redhat.com","username":"mpeterson"},"change_message_id":"4c883b5a5509ac328fe66d1121555555f40dd416","unresolved":false,"context_lines":[{"line_number":82,"context_line":""},{"line_number":83,"context_line":"def _handle_existing_resource(context, row):"},{"line_number":84,"context_line":"    if row.operation \u003d\u003d odl_const.ODL_CREATE:"},{"line_number":85,"context_line":"        journal.entry_complete(context, row)"},{"line_number":86,"context_line":"    elif row.operation \u003d\u003d odl_const.ODL_DELETE:"},{"line_number":87,"context_line":"        db.update_db_row_state(context.session, row, odl_const.PENDING)"},{"line_number":88,"context_line":"    else:"}],"source_content_type":"text/x-python","patch_set":3,"id":"5f2577a7_24cda430","line":85,"updated":"2017-09-18 14:38:58.000000000","message":"IDEM","commit_id":"2b86ffa607878186e24e6eaccaa471a2da7c5396"},{"author":{"_account_id":26507,"name":"Michel Peterson","email":"michel@redhat.com","username":"mpeterson"},"change_message_id":"4c883b5a5509ac328fe66d1121555555f40dd416","unresolved":false,"context_lines":[{"line_number":91,"context_line":""},{"line_number":92,"context_line":"def _handle_non_existing_resource(context, row):"},{"line_number":93,"context_line":"    if row.operation \u003d\u003d odl_const.ODL_DELETE:"},{"line_number":94,"context_line":"        journal.entry_complete(context, row)"},{"line_number":95,"context_line":"    else:"},{"line_number":96,"context_line":"        _sync_resource_to_odl(context, row, odl_const.ODL_CREATE, False)"},{"line_number":97,"context_line":"        # TODO(mkolesni): Handle missing parent resources somehow."}],"source_content_type":"text/x-python","patch_set":3,"id":"5f2577a7_04d068c8","line":94,"updated":"2017-09-18 14:38:58.000000000","message":"IDEM","commit_id":"2b86ffa607878186e24e6eaccaa471a2da7c5396"}],"networking_odl/tests/unit/journal/test_journal.py":[{"author":{"_account_id":26507,"name":"Michel Peterson","email":"michel@redhat.com","username":"mpeterson"},"change_message_id":"05e0926ab35845c33d0465424d93e5c5fff7ea83","unresolved":false,"context_lines":[{"line_number":98,"context_line":"    def test_entry_complete_no_retention(self):"},{"line_number":99,"context_line":"        self._test_entry_complete(0, 0)"},{"line_number":100,"context_line":""},{"line_number":101,"context_line":"    def test_entry_complete_with_retention(self):"},{"line_number":102,"context_line":"        self._test_entry_complete(1, 1)"},{"line_number":103,"context_line":""},{"line_number":104,"context_line":"    def test_entry_complete_with_indefinite_retention(self):"},{"line_number":105,"context_line":"        self._test_entry_complete(-1, 1)"}],"source_content_type":"text/x-python","patch_set":1,"id":"5f2577a7_407ea0af","line":102,"range":{"start_line":101,"start_character":4,"end_line":102,"end_character":39},"updated":"2017-09-14 12:33:12.000000000","message":"This is not actually testing that it will be deleted after 1 second.","commit_id":"227e503cf541925ef6c1aa7e52002e732c3c6ec8"},{"author":{"_account_id":7921,"name":"Mike Kolesnik","email":"mkolesni@redhat.com","username":"mkolesni"},"change_message_id":"9f62b8a376363f1b7c0985997922e58c21eaf788","unresolved":false,"context_lines":[{"line_number":98,"context_line":"    def test_entry_complete_no_retention(self):"},{"line_number":99,"context_line":"        self._test_entry_complete(0, 0)"},{"line_number":100,"context_line":""},{"line_number":101,"context_line":"    def test_entry_complete_with_retention(self):"},{"line_number":102,"context_line":"        self._test_entry_complete(1, 1)"},{"line_number":103,"context_line":""},{"line_number":104,"context_line":"    def test_entry_complete_with_indefinite_retention(self):"},{"line_number":105,"context_line":"        self._test_entry_complete(-1, 1)"}],"source_content_type":"text/x-python","patch_set":1,"id":"5f2577a7_d2b38209","line":102,"range":{"start_line":101,"start_character":4,"end_line":102,"end_character":39},"in_reply_to":"5f2577a7_407ea0af","updated":"2017-09-14 16:30:16.000000000","message":"Indeed this is not the point of the test, so its not testing this.","commit_id":"227e503cf541925ef6c1aa7e52002e732c3c6ec8"},{"author":{"_account_id":7921,"name":"Mike Kolesnik","email":"mkolesni@redhat.com","username":"mkolesni"},"change_message_id":"5146ae08a83214807bb6cab52f9fa982517abf43","unresolved":false,"context_lines":[{"line_number":98,"context_line":"    def test_entry_complete_no_retention(self):"},{"line_number":99,"context_line":"        self._test_entry_complete(0, 0)"},{"line_number":100,"context_line":""},{"line_number":101,"context_line":"    def test_entry_complete_with_retention(self):"},{"line_number":102,"context_line":"        self._test_entry_complete(1, 1)"},{"line_number":103,"context_line":""},{"line_number":104,"context_line":"    def test_entry_complete_with_indefinite_retention(self):"},{"line_number":105,"context_line":"        self._test_entry_complete(-1, 1)"}],"source_content_type":"text/x-python","patch_set":1,"id":"5f2577a7_6b05f013","line":102,"range":{"start_line":101,"start_character":4,"end_line":102,"end_character":39},"in_reply_to":"5f2577a7_4917e446","updated":"2017-09-14 21:00:10.000000000","message":"Done","commit_id":"227e503cf541925ef6c1aa7e52002e732c3c6ec8"},{"author":{"_account_id":26507,"name":"Michel Peterson","email":"michel@redhat.com","username":"mpeterson"},"change_message_id":"29d55bbb9b10584b5de23e823b756def28d49b10","unresolved":false,"context_lines":[{"line_number":98,"context_line":"    def test_entry_complete_no_retention(self):"},{"line_number":99,"context_line":"        self._test_entry_complete(0, 0)"},{"line_number":100,"context_line":""},{"line_number":101,"context_line":"    def test_entry_complete_with_retention(self):"},{"line_number":102,"context_line":"        self._test_entry_complete(1, 1)"},{"line_number":103,"context_line":""},{"line_number":104,"context_line":"    def test_entry_complete_with_indefinite_retention(self):"},{"line_number":105,"context_line":"        self._test_entry_complete(-1, 1)"}],"source_content_type":"text/x-python","patch_set":1,"id":"5f2577a7_4917e446","line":102,"range":{"start_line":101,"start_character":4,"end_line":102,"end_character":39},"in_reply_to":"5f2577a7_d2b38209","updated":"2017-09-14 17:19:40.000000000","message":"Right, it would be good to test the whole functionality of `entry_complete`:\n\n- Deletes when the config is in 0 (covered)\n- Does not delete when the config is not 0 (partially covered)\n\nWhy partially covered? It\u0027s missing to check that it\u0027s leaving them in COMPLETED state and that it\u0027s deleting the dependencies.\n\nThis behavior needs to be tested as well.","commit_id":"227e503cf541925ef6c1aa7e52002e732c3c6ec8"}],"networking_odl/tests/unit/journal/test_recovery.py":[{"author":{"_account_id":333,"name":"Isaku Yamahata","email":"isaku.yamahata@gmail.com","username":"yamahata"},"change_message_id":"bd4d53614ac2557189ffaa7aeb3cd53a46225c51","unresolved":false,"context_lines":[{"line_number":109,"context_line":"        recovery.journal_recovery(self.db_context)"},{"line_number":110,"context_line":""},{"line_number":111,"context_line":"        if expected_state is None:"},{"line_number":112,"context_line":"            self.assertFalse(db.get_all_db_rows_by_state("},{"line_number":113,"context_line":"                self.db_context.session, odl_const.COMPLETED))"},{"line_number":114,"context_line":"        else:"},{"line_number":115,"context_line":"            row \u003d db.get_all_db_rows_by_state(self.db_context.session,"}],"source_content_type":"text/x-python","patch_set":5,"id":"3f4b6375_fb69b0f8","line":112,"range":{"start_line":112,"start_character":17,"end_line":112,"end_character":28},"updated":"2017-10-24 02:17:27.000000000","message":"assertEqual([], ...)","commit_id":"6779b66e106733a2491f8fa91dd9667980f17492"},{"author":{"_account_id":7921,"name":"Mike Kolesnik","email":"mkolesni@redhat.com","username":"mkolesni"},"change_message_id":"731eda5168d4d1a6148b1e5f67aa4f8929a381b1","unresolved":false,"context_lines":[{"line_number":109,"context_line":"        recovery.journal_recovery(self.db_context)"},{"line_number":110,"context_line":""},{"line_number":111,"context_line":"        if expected_state is None:"},{"line_number":112,"context_line":"            self.assertFalse(db.get_all_db_rows_by_state("},{"line_number":113,"context_line":"                self.db_context.session, odl_const.COMPLETED))"},{"line_number":114,"context_line":"        else:"},{"line_number":115,"context_line":"            row \u003d db.get_all_db_rows_by_state(self.db_context.session,"}],"source_content_type":"text/x-python","patch_set":5,"id":"3f4b6375_144e9996","line":112,"range":{"start_line":112,"start_character":17,"end_line":112,"end_character":28},"in_reply_to":"3f4b6375_fb69b0f8","updated":"2017-10-24 05:32:29.000000000","message":"Done","commit_id":"6779b66e106733a2491f8fa91dd9667980f17492"}],"networking_odl/tests/unit/test_base_db.py":[{"author":{"_account_id":333,"name":"Isaku Yamahata","email":"isaku.yamahata@gmail.com","username":"yamahata"},"change_message_id":"02338647743e6c71482e1aaacc3489617f382bd7","unresolved":false,"context_lines":[{"line_number":30,"context_line":"        self.db_session \u003d self.db_context.session"},{"line_number":31,"context_line":"        self.addCleanup(self._db_cleanup)"},{"line_number":32,"context_line":"        self.cfg \u003d self.useFixture(config_fixture.Config())"},{"line_number":33,"context_line":"        self.cfg.config(completed_rows_retention\u003d-1, group\u003d\u0027ml2_odl\u0027)"},{"line_number":34,"context_line":""},{"line_number":35,"context_line":"    def _db_cleanup(self):"},{"line_number":36,"context_line":"        self.db_session.query(models.OpenDaylightJournal).delete()"}],"source_content_type":"text/x-python","patch_set":3,"id":"5f2577a7_fa6ac7ea","line":33,"range":{"start_line":33,"start_character":9,"end_line":33,"end_character":69},"updated":"2017-09-15 01:02:38.000000000","message":"set_override","commit_id":"2b86ffa607878186e24e6eaccaa471a2da7c5396"},{"author":{"_account_id":7921,"name":"Mike Kolesnik","email":"mkolesni@redhat.com","username":"mkolesni"},"change_message_id":"107f8f97a53500d66b4a5744d53994169e616058","unresolved":false,"context_lines":[{"line_number":30,"context_line":"        self.db_session \u003d self.db_context.session"},{"line_number":31,"context_line":"        self.addCleanup(self._db_cleanup)"},{"line_number":32,"context_line":"        self.cfg \u003d self.useFixture(config_fixture.Config())"},{"line_number":33,"context_line":"        self.cfg.config(completed_rows_retention\u003d-1, group\u003d\u0027ml2_odl\u0027)"},{"line_number":34,"context_line":""},{"line_number":35,"context_line":"    def _db_cleanup(self):"},{"line_number":36,"context_line":"        self.db_session.query(models.OpenDaylightJournal).delete()"}],"source_content_type":"text/x-python","patch_set":3,"id":"7f515b1d_89445675","line":33,"range":{"start_line":33,"start_character":9,"end_line":33,"end_character":69},"in_reply_to":"5f2577a7_fa6ac7ea","updated":"2017-10-02 12:08:57.000000000","message":"Done","commit_id":"2b86ffa607878186e24e6eaccaa471a2da7c5396"}]}
