)]}'
{"neutron/plugins/ml2/plugin.py":[{"author":{"_account_id":1131,"name":"Brian Haley","email":"haleyb.dev@gmail.com","username":"brian-haley"},"change_message_id":"b071bccd35917701dc271924b6063f6773c96952","unresolved":false,"context_lines":[{"line_number":1122,"context_line":"                context, id, port, updated_port)"},{"line_number":1123,"context_line":"            levels \u003d db.get_binding_levels(session, id, binding.host)"},{"line_number":1124,"context_line":"            mech_context \u003d driver_context.PortContext("},{"line_number":1125,"context_line":"                self, context, updated_port, network, binding, levels,"},{"line_number":1126,"context_line":"                original_port\u003doriginal_port)"},{"line_number":1127,"context_line":"            # For DVR router interface ports we need to retrieve the"},{"line_number":1128,"context_line":"            # DVRPortbinding context instead of the normal port context."}],"source_content_type":"text/x-python","patch_set":1,"id":"9a41bdd9_41bd4901","line":1125,"updated":"2015-07-16 17:18:33.000000000","message":"The two lines should move here to truly be back where they started.","commit_id":"ce16a2872bef10e2a973b4c8db5f824b1f18da50"},{"author":{"_account_id":7016,"name":"Swaminathan Vasudevan","email":"swvasude@cisco.com","username":"souminathan"},"change_message_id":"a57aa614a4b5b05381b2e7d99ea283e76c7c9e4c","unresolved":false,"context_lines":[{"line_number":1139,"context_line":"                mech_context, attrs)"},{"line_number":1140,"context_line":"            need_port_update_notify |\u003d self._process_port_binding("},{"line_number":1141,"context_line":"                mech_context, attrs)"},{"line_number":1142,"context_line":""},{"line_number":1143,"context_line":"            if port_db[\u0027device_owner\u0027] \u003d\u003d const.DEVICE_OWNER_DVR_INTERFACE:"},{"line_number":1144,"context_line":"                dvr_binding_list \u003d db.get_dvr_port_bindings(session, id)"},{"line_number":1145,"context_line":"                for dvr_binding in dvr_binding_list:"}],"source_content_type":"text/x-python","patch_set":1,"id":"9a41bdd9_5cac4c8c","line":1142,"updated":"2015-07-16 17:15:44.000000000","message":"can you add a UT for checking the order of the functions in update_port.","commit_id":"ce16a2872bef10e2a973b4c8db5f824b1f18da50"},{"author":{"_account_id":14605,"name":"vikram.choudhary","email":"vikschw@gmail.com","username":"vikram.choudhary"},"change_message_id":"e369c6441a44da4debb59a76a00a47085d974f8f","unresolved":false,"context_lines":[{"line_number":1139,"context_line":"                mech_context, attrs)"},{"line_number":1140,"context_line":"            need_port_update_notify |\u003d self._process_port_binding("},{"line_number":1141,"context_line":"                mech_context, attrs)"},{"line_number":1142,"context_line":""},{"line_number":1143,"context_line":"            if port_db[\u0027device_owner\u0027] \u003d\u003d const.DEVICE_OWNER_DVR_INTERFACE:"},{"line_number":1144,"context_line":"                dvr_binding_list \u003d db.get_dvr_port_bindings(session, id)"},{"line_number":1145,"context_line":"                for dvr_binding in dvr_binding_list:"}],"source_content_type":"text/x-python","patch_set":1,"id":"9a41bdd9_44453b15","line":1142,"in_reply_to":"9a41bdd9_5cac4c8c","updated":"2015-07-17 07:43:21.000000000","message":"+1","commit_id":"ce16a2872bef10e2a973b4c8db5f824b1f18da50"}],"neutron/tests/unit/plugins/ml2/test_plugin.py":[{"author":{"_account_id":1131,"name":"Brian Haley","email":"haleyb.dev@gmail.com","username":"brian-haley"},"change_message_id":"d37d98673fe5dcdd71afcb86bc3c28ab8d384d6e","unresolved":false,"context_lines":[{"line_number":1517,"context_line":"            mock.patch.object(ml2_plugin.Ml2Plugin,"},{"line_number":1518,"context_line":"                \u0027_get_host_port_if_changed\u0027) as get_host:"},{"line_number":1519,"context_line":""},{"line_number":1520,"context_line":"                tracker \u003d mock.MagicMock()"},{"line_number":1521,"context_line":"                tracker.attach_mock(dvr_bindings, \u0027get_dvr_port_bindings\u0027)"},{"line_number":1522,"context_line":"                tracker.attach_mock(get_host, \u0027_get_host_port_if_changed\u0027)"},{"line_number":1523,"context_line":"                tracker.attach_mock(port_post, \u0027update_port_postcommit\u0027)"}],"source_content_type":"text/x-python","patch_set":2,"id":"9a41bdd9_0f0c0893","line":1520,"updated":"2015-07-17 20:15:38.000000000","message":"s/tracker/parent seems to be the naming standard in cases like this","commit_id":"5fd2582be810e85074bc5851f8f9effa36c122ba"},{"author":{"_account_id":6637,"name":"Sam Betts","email":"sam@code-smash.net","username":"sambetts"},"change_message_id":"53cf57f071eb3f014129181e17432fcc09be8efe","unresolved":false,"context_lines":[{"line_number":1517,"context_line":"            mock.patch.object(ml2_plugin.Ml2Plugin,"},{"line_number":1518,"context_line":"                \u0027_get_host_port_if_changed\u0027) as get_host:"},{"line_number":1519,"context_line":""},{"line_number":1520,"context_line":"                tracker \u003d mock.MagicMock()"},{"line_number":1521,"context_line":"                tracker.attach_mock(dvr_bindings, \u0027get_dvr_port_bindings\u0027)"},{"line_number":1522,"context_line":"                tracker.attach_mock(get_host, \u0027_get_host_port_if_changed\u0027)"},{"line_number":1523,"context_line":"                tracker.attach_mock(port_post, \u0027update_port_postcommit\u0027)"}],"source_content_type":"text/x-python","patch_set":2,"id":"3a50d1a3_63463825","line":1520,"in_reply_to":"9a41bdd9_0f0c0893","updated":"2015-07-20 12:20:07.000000000","message":"Done","commit_id":"5fd2582be810e85074bc5851f8f9effa36c122ba"},{"author":{"_account_id":7016,"name":"Swaminathan Vasudevan","email":"swvasude@cisco.com","username":"souminathan"},"change_message_id":"ff33bd6ee39090a1860770a05b39a2b5759171fa","unresolved":false,"context_lines":[{"line_number":1547,"context_line":"                        data \u003d {\u0027port\u0027: {\u0027name\u0027: new_name}}"},{"line_number":1548,"context_line":"                        req \u003d self.new_update_request(\u0027ports\u0027, data, port_id)"},{"line_number":1549,"context_line":"                        res \u003d req.get_response(self.api)"},{"line_number":1550,"context_line":"                        self.assertEqual(200, res.status_int)"},{"line_number":1551,"context_line":"                        tracker.assert_has_calls(["},{"line_number":1552,"context_line":"                            mock.call._get_host_port_if_changed(mock.ANY,"},{"line_number":1553,"context_line":"                                                                mock.ANY),"}],"source_content_type":"text/x-python","patch_set":2,"id":"9a41bdd9_59ec1e29","line":1550,"updated":"2015-07-17 18:53:26.000000000","message":"Does this really check the order, or just it checks the calls being made.","commit_id":"5fd2582be810e85074bc5851f8f9effa36c122ba"},{"author":{"_account_id":1131,"name":"Brian Haley","email":"haleyb.dev@gmail.com","username":"brian-haley"},"change_message_id":"d37d98673fe5dcdd71afcb86bc3c28ab8d384d6e","unresolved":false,"context_lines":[{"line_number":1547,"context_line":"                        data \u003d {\u0027port\u0027: {\u0027name\u0027: new_name}}"},{"line_number":1548,"context_line":"                        req \u003d self.new_update_request(\u0027ports\u0027, data, port_id)"},{"line_number":1549,"context_line":"                        res \u003d req.get_response(self.api)"},{"line_number":1550,"context_line":"                        self.assertEqual(200, res.status_int)"},{"line_number":1551,"context_line":"                        tracker.assert_has_calls(["},{"line_number":1552,"context_line":"                            mock.call._get_host_port_if_changed(mock.ANY,"},{"line_number":1553,"context_line":"                                                                mock.ANY),"}],"source_content_type":"text/x-python","patch_set":2,"id":"9a41bdd9_8f77b801","line":1550,"in_reply_to":"9a41bdd9_59ec1e29","updated":"2015-07-17 20:15:38.000000000","message":"The default is any_order\u003dFalse, so they must be in-order.","commit_id":"5fd2582be810e85074bc5851f8f9effa36c122ba"},{"author":{"_account_id":1131,"name":"Brian Haley","email":"haleyb.dev@gmail.com","username":"brian-haley"},"change_message_id":"d37d98673fe5dcdd71afcb86bc3c28ab8d384d6e","unresolved":false,"context_lines":[{"line_number":1550,"context_line":"                        self.assertEqual(200, res.status_int)"},{"line_number":1551,"context_line":"                        tracker.assert_has_calls(["},{"line_number":1552,"context_line":"                            mock.call._get_host_port_if_changed(mock.ANY,"},{"line_number":1553,"context_line":"                                                                mock.ANY),"},{"line_number":1554,"context_line":"                            mock.call.get_dvr_port_bindings(mock.ANY,"},{"line_number":1555,"context_line":"                                                            mock.ANY),"},{"line_number":1556,"context_line":"                            mock.call.update_port_precommit(mock.ANY),"}],"source_content_type":"text/x-python","patch_set":2,"id":"9a41bdd9_0fe728e5","line":1553,"updated":"2015-07-17 20:15:38.000000000","message":"Might as well put data[\u0027port\u0027] here.","commit_id":"5fd2582be810e85074bc5851f8f9effa36c122ba"},{"author":{"_account_id":6637,"name":"Sam Betts","email":"sam@code-smash.net","username":"sambetts"},"change_message_id":"53cf57f071eb3f014129181e17432fcc09be8efe","unresolved":false,"context_lines":[{"line_number":1550,"context_line":"                        self.assertEqual(200, res.status_int)"},{"line_number":1551,"context_line":"                        tracker.assert_has_calls(["},{"line_number":1552,"context_line":"                            mock.call._get_host_port_if_changed(mock.ANY,"},{"line_number":1553,"context_line":"                                                                mock.ANY),"},{"line_number":1554,"context_line":"                            mock.call.get_dvr_port_bindings(mock.ANY,"},{"line_number":1555,"context_line":"                                                            mock.ANY),"},{"line_number":1556,"context_line":"                            mock.call.update_port_precommit(mock.ANY),"}],"source_content_type":"text/x-python","patch_set":2,"id":"3a50d1a3_4358dcfa","line":1553,"in_reply_to":"9a41bdd9_0fe728e5","updated":"2015-07-20 12:20:07.000000000","message":"Done","commit_id":"5fd2582be810e85074bc5851f8f9effa36c122ba"},{"author":{"_account_id":1131,"name":"Brian Haley","email":"haleyb.dev@gmail.com","username":"brian-haley"},"change_message_id":"d37d98673fe5dcdd71afcb86bc3c28ab8d384d6e","unresolved":false,"context_lines":[{"line_number":1552,"context_line":"                            mock.call._get_host_port_if_changed(mock.ANY,"},{"line_number":1553,"context_line":"                                                                mock.ANY),"},{"line_number":1554,"context_line":"                            mock.call.get_dvr_port_bindings(mock.ANY,"},{"line_number":1555,"context_line":"                                                            mock.ANY),"},{"line_number":1556,"context_line":"                            mock.call.update_port_precommit(mock.ANY),"},{"line_number":1557,"context_line":"                            mock.call.update_port_postcommit(mock.ANY)"},{"line_number":1558,"context_line":"                        ])"}],"source_content_type":"text/x-python","patch_set":2,"id":"9a41bdd9_2fea2cad","line":1555,"updated":"2015-07-17 20:15:38.000000000","message":"And port_id here.","commit_id":"5fd2582be810e85074bc5851f8f9effa36c122ba"},{"author":{"_account_id":6637,"name":"Sam Betts","email":"sam@code-smash.net","username":"sambetts"},"change_message_id":"53cf57f071eb3f014129181e17432fcc09be8efe","unresolved":false,"context_lines":[{"line_number":1552,"context_line":"                            mock.call._get_host_port_if_changed(mock.ANY,"},{"line_number":1553,"context_line":"                                                                mock.ANY),"},{"line_number":1554,"context_line":"                            mock.call.get_dvr_port_bindings(mock.ANY,"},{"line_number":1555,"context_line":"                                                            mock.ANY),"},{"line_number":1556,"context_line":"                            mock.call.update_port_precommit(mock.ANY),"},{"line_number":1557,"context_line":"                            mock.call.update_port_postcommit(mock.ANY)"},{"line_number":1558,"context_line":"                        ])"}],"source_content_type":"text/x-python","patch_set":2,"id":"3a50d1a3_835ee4e7","line":1555,"in_reply_to":"9a41bdd9_2fea2cad","updated":"2015-07-20 12:20:07.000000000","message":"Done","commit_id":"5fd2582be810e85074bc5851f8f9effa36c122ba"},{"author":{"_account_id":7016,"name":"Swaminathan Vasudevan","email":"swvasude@cisco.com","username":"souminathan"},"change_message_id":"ff33bd6ee39090a1860770a05b39a2b5759171fa","unresolved":false,"context_lines":[{"line_number":1555,"context_line":"                                                            mock.ANY),"},{"line_number":1556,"context_line":"                            mock.call.update_port_precommit(mock.ANY),"},{"line_number":1557,"context_line":"                            mock.call.update_port_postcommit(mock.ANY)"},{"line_number":1558,"context_line":"                        ])"},{"line_number":1559,"context_line":"                        port \u003d self._show(\u0027ports\u0027, port_id)"},{"line_number":1560,"context_line":"                        self.assertEqual(new_name, port[\u0027port\u0027][\u0027name\u0027])"},{"line_number":1561,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"9a41bdd9_d9d82e82","line":1558,"updated":"2015-07-17 18:53:26.000000000","message":"Also this only checks the \"dvr\" router case, do you have one for the \"non-dvr\" router case.","commit_id":"5fd2582be810e85074bc5851f8f9effa36c122ba"},{"author":{"_account_id":6637,"name":"Sam Betts","email":"sam@code-smash.net","username":"sambetts"},"change_message_id":"53cf57f071eb3f014129181e17432fcc09be8efe","unresolved":false,"context_lines":[{"line_number":1555,"context_line":"                                                            mock.ANY),"},{"line_number":1556,"context_line":"                            mock.call.update_port_precommit(mock.ANY),"},{"line_number":1557,"context_line":"                            mock.call.update_port_postcommit(mock.ANY)"},{"line_number":1558,"context_line":"                        ])"},{"line_number":1559,"context_line":"                        port \u003d self._show(\u0027ports\u0027, port_id)"},{"line_number":1560,"context_line":"                        self.assertEqual(new_name, port[\u0027port\u0027][\u0027name\u0027])"},{"line_number":1561,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"3a50d1a3_c355ccc6","line":1558,"in_reply_to":"9a41bdd9_d9d82e82","updated":"2015-07-20 12:20:07.000000000","message":"Done","commit_id":"5fd2582be810e85074bc5851f8f9effa36c122ba"},{"author":{"_account_id":6854,"name":"YAMAMOTO Takashi","email":"yamamoto@midokura.com","username":"yamamoto"},"change_message_id":"62a61f6fc12d19246ca6fb2349be7f1fba9943bc","unresolved":false,"context_lines":[{"line_number":1468,"context_line":"        marker \u003d mock.Mock()"},{"line_number":1469,"context_line":"        original \u003d ml2_plugin.Ml2Plugin._process_port_binding"},{"line_number":1470,"context_line":""},{"line_number":1471,"context_line":"        def pro_sideeffect(*args, **kwargs):"},{"line_number":1472,"context_line":"            marker(*args[1:], **kwargs)"},{"line_number":1473,"context_line":"            return original(*args, **kwargs)"},{"line_number":1474,"context_line":"        return (marker, pro_sideeffect)"}],"source_content_type":"text/x-python","patch_set":3,"id":"3a50d1a3_5db80275","line":1471,"range":{"start_line":1471,"start_character":12,"end_line":1471,"end_character":26},"updated":"2015-07-23 08:49:03.000000000","message":"what does \"pro\" stand for?\ncan you consider a less cryptic name?","commit_id":"a42d9dc9b0e6ab51ffc9c3cfd1846a8e45172c28"},{"author":{"_account_id":6637,"name":"Sam Betts","email":"sam@code-smash.net","username":"sambetts"},"change_message_id":"90add5a51ba9bb682d3beda112aa9252bd43ccc5","unresolved":false,"context_lines":[{"line_number":1468,"context_line":"        marker \u003d mock.Mock()"},{"line_number":1469,"context_line":"        original \u003d ml2_plugin.Ml2Plugin._process_port_binding"},{"line_number":1470,"context_line":""},{"line_number":1471,"context_line":"        def pro_sideeffect(*args, **kwargs):"},{"line_number":1472,"context_line":"            marker(*args[1:], **kwargs)"},{"line_number":1473,"context_line":"            return original(*args, **kwargs)"},{"line_number":1474,"context_line":"        return (marker, pro_sideeffect)"}],"source_content_type":"text/x-python","patch_set":3,"id":"3a50d1a3_059e91b8","line":1471,"in_reply_to":"3a50d1a3_5db80275","updated":"2015-07-23 14:00:10.000000000","message":"Done","commit_id":"a42d9dc9b0e6ab51ffc9c3cfd1846a8e45172c28"},{"author":{"_account_id":7016,"name":"Swaminathan Vasudevan","email":"swvasude@cisco.com","username":"souminathan"},"change_message_id":"efd84d7f92267990b714c41528c62f116bfc0bbd","unresolved":false,"context_lines":[{"line_number":1475,"context_line":""},{"line_number":1476,"context_line":"    def test_update_port_faulty(self):"},{"line_number":1477,"context_line":""},{"line_number":1478,"context_line":"        marker, pro_sideeffect \u003d self._process_port_binding_side_effect()"},{"line_number":1479,"context_line":""},{"line_number":1480,"context_line":"        with mock.patch.object("},{"line_number":1481,"context_line":"                mech_test.TestMechanismDriver, \u0027update_port_postcommit\u0027,"}],"source_content_type":"text/x-python","patch_set":3,"id":"3a50d1a3_c9e38904","line":1478,"updated":"2015-07-21 01:44:26.000000000","message":"nit: There is some code duplication in both the functions.\nIf you are planning to address any other comments you can take care of it.","commit_id":"a42d9dc9b0e6ab51ffc9c3cfd1846a8e45172c28"},{"author":{"_account_id":6659,"name":"Paul Michali","email":"pc@michali.net","username":"pcm"},"change_message_id":"85e301fe2c9ae6f5fde00b3953f42c81f5a99ac6","unresolved":false,"context_lines":[{"line_number":1475,"context_line":""},{"line_number":1476,"context_line":"    def test_update_port_faulty(self):"},{"line_number":1477,"context_line":""},{"line_number":1478,"context_line":"        marker, pro_sideeffect \u003d self._process_port_binding_side_effect()"},{"line_number":1479,"context_line":""},{"line_number":1480,"context_line":"        with mock.patch.object("},{"line_number":1481,"context_line":"                mech_test.TestMechanismDriver, \u0027update_port_postcommit\u0027,"}],"source_content_type":"text/x-python","patch_set":3,"id":"3a50d1a3_eeabc41b","line":1478,"in_reply_to":"3a50d1a3_c9e38904","updated":"2015-07-21 15:33:00.000000000","message":"+1","commit_id":"a42d9dc9b0e6ab51ffc9c3cfd1846a8e45172c28"},{"author":{"_account_id":6637,"name":"Sam Betts","email":"sam@code-smash.net","username":"sambetts"},"change_message_id":"90add5a51ba9bb682d3beda112aa9252bd43ccc5","unresolved":false,"context_lines":[{"line_number":1475,"context_line":""},{"line_number":1476,"context_line":"    def test_update_port_faulty(self):"},{"line_number":1477,"context_line":""},{"line_number":1478,"context_line":"        marker, pro_sideeffect \u003d self._process_port_binding_side_effect()"},{"line_number":1479,"context_line":""},{"line_number":1480,"context_line":"        with mock.patch.object("},{"line_number":1481,"context_line":"                mech_test.TestMechanismDriver, \u0027update_port_postcommit\u0027,"}],"source_content_type":"text/x-python","patch_set":3,"id":"3a50d1a3_c56c29d2","line":1478,"in_reply_to":"3a50d1a3_c9e38904","updated":"2015-07-23 14:00:10.000000000","message":"Done","commit_id":"a42d9dc9b0e6ab51ffc9c3cfd1846a8e45172c28"},{"author":{"_account_id":11682,"name":"Ryan Moats","email":"rmoats@us.ibm.com","username":"regXboi"},"change_message_id":"7e04216be2b29fa1f5c7e20bf7916539d5317560","unresolved":false,"context_lines":[{"line_number":1475,"context_line":""},{"line_number":1476,"context_line":"    def test_update_port_faulty(self):"},{"line_number":1477,"context_line":""},{"line_number":1478,"context_line":"        marker, pro_sideeffect \u003d self._process_port_binding_side_effect()"},{"line_number":1479,"context_line":""},{"line_number":1480,"context_line":"        with mock.patch.object("},{"line_number":1481,"context_line":"                mech_test.TestMechanismDriver, \u0027update_port_postcommit\u0027,"}],"source_content_type":"text/x-python","patch_set":3,"id":"3a50d1a3_a501203a","line":1478,"in_reply_to":"3a50d1a3_eeabc41b","updated":"2015-07-22 13:55:58.000000000","message":"+1","commit_id":"a42d9dc9b0e6ab51ffc9c3cfd1846a8e45172c28"},{"author":{"_account_id":6854,"name":"YAMAMOTO Takashi","email":"yamamoto@midokura.com","username":"yamamoto"},"change_message_id":"1856fb3092e3052c62a16cfa39734151dda7f447","unresolved":false,"context_lines":[{"line_number":1526,"context_line":"                        mock.call._process_port_binding(mock.ANY,"},{"line_number":1527,"context_line":"                                                        data[\u0027port\u0027]),"},{"line_number":1528,"context_line":"                        mock.call.update_port_precommit(mock.ANY),"},{"line_number":1529,"context_line":"                        mock.call.update_port_postcommit(mock.ANY)"},{"line_number":1530,"context_line":"                    ])"},{"line_number":1531,"context_line":"                    port \u003d self._show(\u0027ports\u0027, port_id)"},{"line_number":1532,"context_line":"                    self.assertEqual(new_name, port[\u0027port\u0027][\u0027name\u0027])"}],"source_content_type":"text/x-python","patch_set":4,"id":"3a50d1a3_5108b491","line":1529,"updated":"2015-07-24 04:58:18.000000000","message":"rather than checking the call order of internal methods,\nit\u0027s better to test the actual expectations for precommit,\nwhich was needed by cisco nexus driver.","commit_id":"5410377bad7093068635825b81f2faa6f7db0f71"},{"author":{"_account_id":6524,"name":"Henry Gessau","email":"HenryG@gessau.net","username":"gessau"},"change_message_id":"7bb992fe626269f7b5d90638d34c62e01781dc7d","unresolved":false,"context_lines":[{"line_number":1526,"context_line":"                        mock.call._process_port_binding(mock.ANY,"},{"line_number":1527,"context_line":"                                                        data[\u0027port\u0027]),"},{"line_number":1528,"context_line":"                        mock.call.update_port_precommit(mock.ANY),"},{"line_number":1529,"context_line":"                        mock.call.update_port_postcommit(mock.ANY)"},{"line_number":1530,"context_line":"                    ])"},{"line_number":1531,"context_line":"                    port \u003d self._show(\u0027ports\u0027, port_id)"},{"line_number":1532,"context_line":"                    self.assertEqual(new_name, port[\u0027port\u0027][\u0027name\u0027])"}],"source_content_type":"text/x-python","patch_set":4,"id":"3a50d1a3_67d86ef0","line":1529,"in_reply_to":"3a50d1a3_5108b491","updated":"2015-07-24 18:42:08.000000000","message":"+1. Too much mocking and internal dependencies here.","commit_id":"5410377bad7093068635825b81f2faa6f7db0f71"},{"author":{"_account_id":6637,"name":"Sam Betts","email":"sam@code-smash.net","username":"sambetts"},"change_message_id":"0f9ade5bb19440da1d23de3dc722f5f4724d2b36","unresolved":false,"context_lines":[{"line_number":1526,"context_line":"                        mock.call._process_port_binding(mock.ANY,"},{"line_number":1527,"context_line":"                                                        data[\u0027port\u0027]),"},{"line_number":1528,"context_line":"                        mock.call.update_port_precommit(mock.ANY),"},{"line_number":1529,"context_line":"                        mock.call.update_port_postcommit(mock.ANY)"},{"line_number":1530,"context_line":"                    ])"},{"line_number":1531,"context_line":"                    port \u003d self._show(\u0027ports\u0027, port_id)"},{"line_number":1532,"context_line":"                    self.assertEqual(new_name, port[\u0027port\u0027][\u0027name\u0027])"}],"source_content_type":"text/x-python","patch_set":4,"id":"3a50d1a3_6ebc1f06","line":1529,"in_reply_to":"3a50d1a3_67d86ef0","updated":"2015-07-29 13:16:42.000000000","message":"Henry can you advise what the best way forward for this patch is? We need fix merged","commit_id":"5410377bad7093068635825b81f2faa6f7db0f71"}]}
