)]}'
{"neutron/agent/ovsdb/native/connection.py":[{"author":{"_account_id":1653,"name":"garyk","email":"gkotton@vmware.com","username":"garyk"},"change_message_id":"1a7b42430618e45f94ef7af8c57ebd45d7f7970c","unresolved":false,"context_lines":[{"line_number":44,"context_line":""},{"line_number":45,"context_line":"    def put(self, *args, **kwargs):"},{"line_number":46,"context_line":"        super(TransactionQueue, self).put(*args, **kwargs)"},{"line_number":47,"context_line":"        self.alertout.write(b\u0027X\u0027)"},{"line_number":48,"context_line":"        self.alertout.flush()"},{"line_number":49,"context_line":""},{"line_number":50,"context_line":"    @property"}],"source_content_type":"text/x-python","patch_set":3,"id":"fa6399be_73df423a","line":47,"updated":"2016-10-20 07:39:00.000000000","message":"do we have unit tests for this?","commit_id":"cc91ac0753124e824a14b5d7de238b928c92a11e"},{"author":{"_account_id":5756,"name":"Terry Wilson","email":"twilson@redhat.com","username":"otherwiseguy"},"change_message_id":"7e33800f46eb2eb31f39dc61922305e910ba88f1","unresolved":false,"context_lines":[{"line_number":44,"context_line":""},{"line_number":45,"context_line":"    def put(self, *args, **kwargs):"},{"line_number":46,"context_line":"        super(TransactionQueue, self).put(*args, **kwargs)"},{"line_number":47,"context_line":"        self.alertout.write(b\u0027X\u0027)"},{"line_number":48,"context_line":"        self.alertout.flush()"},{"line_number":49,"context_line":""},{"line_number":50,"context_line":"    @property"}],"source_content_type":"text/x-python","patch_set":3,"id":"fa6399be_009dbf65","line":47,"in_reply_to":"fa6399be_73df423a","updated":"2016-10-20 13:17:18.000000000","message":"No. I see no point to a unit test that is essentially just \"hey, did you mean to change this one character of text?\" If a change is made to this one character, it will be done on purpose--how would someone accidentally change it? There\u0027s no logic in the function. Th only thing I think a unit test could do for this code is make someone\u0027s life harder in the future if they want to refactor it.","commit_id":"cc91ac0753124e824a14b5d7de238b928c92a11e"}],"neutron/tests/unit/agent/ovsdb/native/test_connection.py":[{"author":{"_account_id":5756,"name":"Terry Wilson","email":"twilson@redhat.com","username":"otherwiseguy"},"change_message_id":"c15c6cab4b8d9f52e1c3e2bdf444ae77bfc81ffb","unresolved":false,"context_lines":[{"line_number":45,"context_line":"        self.assertEqual(reg_all_called, helper.register_all.called)"},{"line_number":46,"context_line":"        self.assertEqual(reg_table_called, helper.register_table.called)"},{"line_number":47,"context_line":""},{"line_number":48,"context_line":"    @helpers.requires_py2"},{"line_number":49,"context_line":"    def test_start_without_table_name_list(self):"},{"line_number":50,"context_line":"        self._test_start()"},{"line_number":51,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"9ad45d7e_f6adf29b","line":48,"updated":"2016-08-10 19:44:28.000000000","message":"The only reason this exists is to work around the breakage that we are fixing by passing a byte. It should be removed.","commit_id":"d93a0e1cea9de7a977c6b92f47b3eee7c564fc65"},{"author":{"_account_id":5756,"name":"Terry Wilson","email":"twilson@redhat.com","username":"otherwiseguy"},"change_message_id":"c15c6cab4b8d9f52e1c3e2bdf444ae77bfc81ffb","unresolved":false,"context_lines":[{"line_number":49,"context_line":"    def test_start_without_table_name_list(self):"},{"line_number":50,"context_line":"        self._test_start()"},{"line_number":51,"context_line":""},{"line_number":52,"context_line":"    @helpers.requires_py2"},{"line_number":53,"context_line":"    def test_start_with_table_name_list(self):"},{"line_number":54,"context_line":"        self._test_start(table_name_list\u003d[\u0027fake-table1\u0027, \u0027fake-table2\u0027])"},{"line_number":55,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"9ad45d7e_56979e47","line":52,"updated":"2016-08-10 19:44:28.000000000","message":"ditto","commit_id":"d93a0e1cea9de7a977c6b92f47b3eee7c564fc65"},{"author":{"_account_id":5756,"name":"Terry Wilson","email":"twilson@redhat.com","username":"otherwiseguy"},"change_message_id":"c15c6cab4b8d9f52e1c3e2bdf444ae77bfc81ffb","unresolved":false,"context_lines":[{"line_number":53,"context_line":"    def test_start_with_table_name_list(self):"},{"line_number":54,"context_line":"        self._test_start(table_name_list\u003d[\u0027fake-table1\u0027, \u0027fake-table2\u0027])"},{"line_number":55,"context_line":""},{"line_number":56,"context_line":"    def test_transaction_queue(self):"},{"line_number":57,"context_line":"        # a test to cover py34 failure during initialization (LP Bug #1580270)"},{"line_number":58,"context_line":"        # make sure no ValueError: can\u0027t have unbuffered text I/O is raised"},{"line_number":59,"context_line":"        queue \u003d connection.TransactionQueue()"}],"source_content_type":"text/x-python","patch_set":2,"id":"9ad45d7e_168086f6","line":56,"updated":"2016-08-10 19:44:28.000000000","message":"With the above two tests running under both py2 and py3, this test can be completely removed.","commit_id":"d93a0e1cea9de7a977c6b92f47b3eee7c564fc65"},{"author":{"_account_id":8873,"name":"Assaf Muller","email":"amuller@redhat.com","username":"amuller"},"change_message_id":"2efd825869b32c44f94e15f5020524d067f21c19","unresolved":false,"context_lines":[{"line_number":56,"context_line":"    def test_transaction_queue(self):"},{"line_number":57,"context_line":"        # a test to cover py34 failure during initialization (LP Bug #1580270)"},{"line_number":58,"context_line":"        # make sure no ValueError: can\u0027t have unbuffered text I/O is raised"},{"line_number":59,"context_line":"        queue \u003d connection.TransactionQueue()"},{"line_number":60,"context_line":"        queue.put(b\"O\")"}],"source_content_type":"text/x-python","patch_set":2,"id":"dada55a8_d802100b","line":59,"updated":"2016-07-22 22:05:03.000000000","message":"Is this an actual unit test? This opens a pipe in the file system and writes something to it. Unit tests don\u0027t typically interact with the machine. I think it makes sense to take the test as is and just move it to the functional test tree.\n\nSecondly, is this warning something that we want to do anything about?\n\n    {0} neutron.tests.unit.agent.ovsdb.native.test_connection.TestOVSNativeConnection.test_transaction_queue [0.219841s] ... ok\n    sys:1: ResourceWarning: unclosed file \u003c_io.TextIOWrapper name\u003d1 encoding\u003d\u0027UTF-8\u0027\u003e","commit_id":"d93a0e1cea9de7a977c6b92f47b3eee7c564fc65"},{"author":{"_account_id":13717,"name":"Inessa Vasilevskaya","email":"ivasilevskaya@mirantis.com","username":"ivasilevskaya"},"change_message_id":"309e7c4260cf7fb48a8e92aec0e5d56c00525c94","unresolved":false,"context_lines":[{"line_number":56,"context_line":"    def test_transaction_queue(self):"},{"line_number":57,"context_line":"        # a test to cover py34 failure during initialization (LP Bug #1580270)"},{"line_number":58,"context_line":"        # make sure no ValueError: can\u0027t have unbuffered text I/O is raised"},{"line_number":59,"context_line":"        queue \u003d connection.TransactionQueue()"},{"line_number":60,"context_line":"        queue.put(b\"O\")"}],"source_content_type":"text/x-python","patch_set":2,"id":"dada55a8_ec5efa43","line":59,"in_reply_to":"dada55a8_d802100b","updated":"2016-07-25 17:07:09.000000000","message":"Hmm, this test was placed here to cover py34 TransactionQueue initialization (https://bugs.launchpad.net/neutron/+bug/1580270). \nConceptually I agree with Assaf, but I see one reason against moving it to functional tests - gate-neutron-dsvm-functional-py34 is in non-voting mode and in case of regression we can miss it.","commit_id":"d93a0e1cea9de7a977c6b92f47b3eee7c564fc65"}]}
