)]}'
{"/PATCHSET_LEVEL":[{"author":{"_account_id":9656,"name":"Ihar Hrachyshka","email":"ihrachys@redhat.com","username":"ihrachys","status":"Red Hat Networking Systems Engineer"},"change_message_id":"50fea848250876b27dbb7f3c58f033e8775314c5","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":1,"id":"8bcd65a2_9614fa09","updated":"2024-02-08 20:49:59.000000000","message":"I think at least some assertEquals in production code are wrong.","commit_id":"8b3f724e2fdd7efb36eba7b6ea9eb38e10af2772"},{"author":{"_account_id":9656,"name":"Ihar Hrachyshka","email":"ihrachys@redhat.com","username":"ihrachys","status":"Red Hat Networking Systems Engineer"},"change_message_id":"064e847c18e4d8bb7c7bfbf305455bea8f288e4f","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":3,"id":"f3ecb668_c0a416ab","updated":"2024-02-09 15:02:34.000000000","message":"Thank you.","commit_id":"8942c58f20684a1e3f5f944ddbf4967d0468534a"}],"networking_bagpipe/bagpipe_bgp/vpn/evpn/__init__.py":[{"author":{"_account_id":9656,"name":"Ihar Hrachyshka","email":"ihrachys@redhat.com","username":"ihrachys","status":"Red Hat Networking Systems Engineer"},"change_message_id":"50fea848250876b27dbb7f3c58f033e8775314c5","unresolved":true,"context_lines":[{"line_number":146,"context_line":"        # Generate BGP route and advertise it..."},{"line_number":147,"context_line":""},{"line_number":148,"context_line":"        if ip_prefix:"},{"line_number":149,"context_line":"            self.assertEqual(plen, 32)"},{"line_number":150,"context_line":""},{"line_number":151,"context_line":"        if self._vxlan_dp_driver():"},{"line_number":152,"context_line":"            mpls_label_field \u003d exa.Labels([], raw_labels\u003d[self.instance_label])"}],"source_content_type":"text/x-python","patch_set":1,"id":"a76ad921_9cc873ce","line":149,"updated":"2024-02-08 20:49:59.000000000","message":"this looks wrong. it\u0027s not a test case.","commit_id":"8b3f724e2fdd7efb36eba7b6ea9eb38e10af2772"},{"author":{"_account_id":8313,"name":"Lajos Katona","display_name":"lajoskatona","email":"katonalala@gmail.com","username":"elajkat","status":"Ericsson Software Technology"},"change_message_id":"7a28f6d778fbcccd9ec529ecc3b9b4f80a291859","unresolved":true,"context_lines":[{"line_number":146,"context_line":"        # Generate BGP route and advertise it..."},{"line_number":147,"context_line":""},{"line_number":148,"context_line":"        if ip_prefix:"},{"line_number":149,"context_line":"            self.assertEqual(plen, 32)"},{"line_number":150,"context_line":""},{"line_number":151,"context_line":"        if self._vxlan_dp_driver():"},{"line_number":152,"context_line":"            mpls_label_field \u003d exa.Labels([], raw_labels\u003d[self.instance_label])"}],"source_content_type":"text/x-python","patch_set":1,"id":"86e1644c_bb4872a6","line":149,"in_reply_to":"a76ad921_9cc873ce","updated":"2024-02-09 09:00:09.000000000","message":"huuh, thanks","commit_id":"8b3f724e2fdd7efb36eba7b6ea9eb38e10af2772"}],"networking_bagpipe/bagpipe_bgp/vpn/ipvpn/mpls_ovs_dataplane.py":[{"author":{"_account_id":9656,"name":"Ihar Hrachyshka","email":"ihrachys@redhat.com","username":"ihrachys","status":"Red Hat Networking Systems Engineer"},"change_message_id":"50fea848250876b27dbb7f3c58f033e8775314c5","unresolved":true,"context_lines":[{"line_number":556,"context_line":""},{"line_number":557,"context_line":"    def _get_port_range_from_classifier(self, classifier_port):"},{"line_number":558,"context_line":"        if classifier_port:"},{"line_number":559,"context_line":"            if isinstance(classifier_port, tuple):"},{"line_number":560,"context_line":"                port_min, port_max \u003d classifier_port"},{"line_number":561,"context_line":"            else:"},{"line_number":562,"context_line":"                port_min \u003d port_max \u003d classifier_port"}],"source_content_type":"text/x-python","patch_set":1,"id":"f25812bc_6da8eb0e","line":559,"updated":"2024-02-08 20:49:59.000000000","message":"(no action required)\n\nthis is ok as a matter of hacking adoption, but actually these checks should probably be transformed into something that works with any iterable (e.g. __iter__ can be checked; or iter() is attempted to detect it\u0027s an iterable), because this code has no reason to work just with tuples but not e.g. with lists.","commit_id":"8b3f724e2fdd7efb36eba7b6ea9eb38e10af2772"},{"author":{"_account_id":8313,"name":"Lajos Katona","display_name":"lajoskatona","email":"katonalala@gmail.com","username":"elajkat","status":"Ericsson Software Technology"},"change_message_id":"7a28f6d778fbcccd9ec529ecc3b9b4f80a291859","unresolved":true,"context_lines":[{"line_number":556,"context_line":""},{"line_number":557,"context_line":"    def _get_port_range_from_classifier(self, classifier_port):"},{"line_number":558,"context_line":"        if classifier_port:"},{"line_number":559,"context_line":"            if isinstance(classifier_port, tuple):"},{"line_number":560,"context_line":"                port_min, port_max \u003d classifier_port"},{"line_number":561,"context_line":"            else:"},{"line_number":562,"context_line":"                port_min \u003d port_max \u003d classifier_port"}],"source_content_type":"text/x-python","patch_set":1,"id":"e4f5845c_4f947761","line":559,"in_reply_to":"f25812bc_6da8eb0e","updated":"2024-02-09 09:00:09.000000000","message":"agree, good catch. These code parts are quite under the radar and few people revisit these lines","commit_id":"8b3f724e2fdd7efb36eba7b6ea9eb38e10af2772"}],"networking_bagpipe/bagpipe_bgp/vpn/manager.py":[{"author":{"_account_id":9656,"name":"Ihar Hrachyshka","email":"ihrachys@redhat.com","username":"ihrachys","status":"Red Hat Networking Systems Engineer"},"change_message_id":"50fea848250876b27dbb7f3c58f033e8775314c5","unresolved":true,"context_lines":[{"line_number":144,"context_line":""},{"line_number":145,"context_line":"        if \u0027ovs_port_name\u0027 in localport[\u0027evpn\u0027]:"},{"line_number":146,"context_line":"            try:"},{"line_number":147,"context_line":"                self.assertTrue(localport[\u0027ovs\u0027][\u0027plugged\u0027])"},{"line_number":148,"context_line":"                self.assertTrue(localport[\u0027ovs\u0027][\u0027port_name\u0027] or"},{"line_number":149,"context_line":"                                localport[\u0027ovs\u0027][\u0027port_number\u0027])"},{"line_number":150,"context_line":"            except Exception:"}],"source_content_type":"text/x-python","patch_set":1,"id":"2fce6a0a_bb4b082e","line":147,"updated":"2024-02-08 20:49:59.000000000","message":"it\u0027s not a test case though, no?","commit_id":"8b3f724e2fdd7efb36eba7b6ea9eb38e10af2772"},{"author":{"_account_id":8313,"name":"Lajos Katona","display_name":"lajoskatona","email":"katonalala@gmail.com","username":"elajkat","status":"Ericsson Software Technology"},"change_message_id":"7a28f6d778fbcccd9ec529ecc3b9b4f80a291859","unresolved":true,"context_lines":[{"line_number":144,"context_line":""},{"line_number":145,"context_line":"        if \u0027ovs_port_name\u0027 in localport[\u0027evpn\u0027]:"},{"line_number":146,"context_line":"            try:"},{"line_number":147,"context_line":"                self.assertTrue(localport[\u0027ovs\u0027][\u0027plugged\u0027])"},{"line_number":148,"context_line":"                self.assertTrue(localport[\u0027ovs\u0027][\u0027port_name\u0027] or"},{"line_number":149,"context_line":"                                localport[\u0027ovs\u0027][\u0027port_number\u0027])"},{"line_number":150,"context_line":"            except Exception:"}],"source_content_type":"text/x-python","patch_set":1,"id":"1888f985_b40d3b86","line":147,"in_reply_to":"2fce6a0a_bb4b082e","updated":"2024-02-09 09:00:09.000000000","message":"thanks","commit_id":"8b3f724e2fdd7efb36eba7b6ea9eb38e10af2772"}],"networking_bagpipe/tests/unit/bagpipe_bgp/test_tracker_worker.py":[{"author":{"_account_id":9656,"name":"Ihar Hrachyshka","email":"ihrachys@redhat.com","username":"ihrachys","status":"Red Hat Networking Systems Engineer"},"change_message_id":"50fea848250876b27dbb7f3c58f033e8775314c5","unresolved":true,"context_lines":[{"line_number":130,"context_line":"            elif len(expected) \u003d\u003d 3:"},{"line_number":131,"context_line":"                expected_list_copy.append((expected[0], route, expected[2]))"},{"line_number":132,"context_line":"            else:"},{"line_number":133,"context_line":"                self.assertTrue(False)"},{"line_number":134,"context_line":""},{"line_number":135,"context_line":"        if not ordered:"},{"line_number":136,"context_line":"            expected_list_copy \u003d sorted(expected_list_copy,"}],"source_content_type":"text/x-python","patch_set":1,"id":"640845de_83ba8e11","line":133,"updated":"2024-02-08 20:49:59.000000000","message":"this should really go before line 128 and be transformed into a check of self.assertIn(len(expected), (2, 3)), then we would know the number actually found when a failure occurs.","commit_id":"8b3f724e2fdd7efb36eba7b6ea9eb38e10af2772"},{"author":{"_account_id":8313,"name":"Lajos Katona","display_name":"lajoskatona","email":"katonalala@gmail.com","username":"elajkat","status":"Ericsson Software Technology"},"change_message_id":"7a28f6d778fbcccd9ec529ecc3b9b4f80a291859","unresolved":false,"context_lines":[{"line_number":130,"context_line":"            elif len(expected) \u003d\u003d 3:"},{"line_number":131,"context_line":"                expected_list_copy.append((expected[0], route, expected[2]))"},{"line_number":132,"context_line":"            else:"},{"line_number":133,"context_line":"                self.assertTrue(False)"},{"line_number":134,"context_line":""},{"line_number":135,"context_line":"        if not ordered:"},{"line_number":136,"context_line":"            expected_list_copy \u003d sorted(expected_list_copy,"}],"source_content_type":"text/x-python","patch_set":1,"id":"36fc89de_4b669562","line":133,"in_reply_to":"640845de_83ba8e11","updated":"2024-02-09 09:00:09.000000000","message":"Done","commit_id":"8b3f724e2fdd7efb36eba7b6ea9eb38e10af2772"},{"author":{"_account_id":9656,"name":"Ihar Hrachyshka","email":"ihrachys@redhat.com","username":"ihrachys","status":"Red Hat Networking Systems Engineer"},"change_message_id":"064e847c18e4d8bb7c7bfbf305455bea8f288e4f","unresolved":true,"context_lines":[{"line_number":125,"context_line":"        for expected in expected_list:"},{"line_number":126,"context_line":"            route \u003d copy.copy(expected[1])"},{"line_number":127,"context_line":"            route.source \u003d None"},{"line_number":128,"context_line":"            self.assertIn(len(expected), (2, 3))"},{"line_number":129,"context_line":"            if len(expected) \u003d\u003d 2:"},{"line_number":130,"context_line":"                expected_list_copy.append((expected[0], route))"},{"line_number":131,"context_line":"            elif len(expected) \u003d\u003d 3:"}],"source_content_type":"text/x-python","patch_set":3,"id":"219b04af_6f658dac","line":128,"updated":"2024-02-09 15:02:34.000000000","message":"nit: you could calculate the len into a variable once, then reuse the value here and in lines 129 and 131. of course it\u0027s not much in this context, just a bit cleaner.","commit_id":"8942c58f20684a1e3f5f944ddbf4967d0468534a"}],"requirements.txt":[{"author":{"_account_id":9656,"name":"Ihar Hrachyshka","email":"ihrachys@redhat.com","username":"ihrachys","status":"Red Hat Networking Systems Engineer"},"change_message_id":"50fea848250876b27dbb7f3c58f033e8775314c5","unresolved":true,"context_lines":[{"line_number":2,"context_line":"# date but we do not test them so no guarantee of having them all correct. If"},{"line_number":3,"context_line":"# you find any incorrect lower bounds, let us know or propose a fix."},{"line_number":4,"context_line":""},{"line_number":5,"context_line":"# The order of packages is significant, because pip processes them in the order"},{"line_number":6,"context_line":"# of appearance. Changing the order has an impact on the overall integration"},{"line_number":7,"context_line":"# process, which may cause wedges in the gate later."},{"line_number":8,"context_line":""}],"source_content_type":"text/plain","patch_set":1,"id":"277e3212_5f168031","side":"PARENT","line":5,"updated":"2024-02-08 20:49:59.000000000","message":"I have no context as to whether this change is correct - and if so, if it belongs to the commit. Could you please clarify?","commit_id":"82183b210b8c511449700f0e9bbb7ae6f9957d05"},{"author":{"_account_id":8313,"name":"Lajos Katona","display_name":"lajoskatona","email":"katonalala@gmail.com","username":"elajkat","status":"Ericsson Software Technology"},"change_message_id":"acf2b76c4b8470210932bc03fdc9446717246546","unresolved":true,"context_lines":[{"line_number":2,"context_line":"# date but we do not test them so no guarantee of having them all correct. If"},{"line_number":3,"context_line":"# you find any incorrect lower bounds, let us know or propose a fix."},{"line_number":4,"context_line":""},{"line_number":5,"context_line":"# The order of packages is significant, because pip processes them in the order"},{"line_number":6,"context_line":"# of appearance. Changing the order has an impact on the overall integration"},{"line_number":7,"context_line":"# process, which may cause wedges in the gate later."},{"line_number":8,"context_line":""}],"source_content_type":"text/plain","patch_set":1,"id":"4becd477_1b44c1c1","side":"PARENT","line":5,"in_reply_to":"277e3212_5f168031","updated":"2024-02-09 09:02:20.000000000","message":"I checked it after the first similar patches I found, and I think this part of pip documentation is relevant:\nhttps://pip.pypa.io/en/stable/cli/pip_install/#installation-order","commit_id":"82183b210b8c511449700f0e9bbb7ae6f9957d05"}]}
