)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":1653,"name":"garyk","email":"gkotton@vmware.com","username":"garyk"},"change_message_id":"836b520d8afe551cdd502ef0a03c3336261bf617","unresolved":false,"context_lines":[{"line_number":4,"context_line":"Commit:     Diana Clarke \u003cdiana.joan.clarke@gmail.com\u003e"},{"line_number":5,"context_line":"CommitDate: 2015-06-21 21:15:27 -0400"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Handle port group not found case"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Return None for both vlanid \u0026 vswitch if port group not found."},{"line_number":10,"context_line":""}],"source_content_type":"text/x-gerrit-commit-message","patch_set":2,"id":"fa32b979_73aa7587","line":7,"updated":"2015-06-22 06:02:07.000000000","message":"please prefix this with VMware:","commit_id":"935afeaff1f661aff9ce3ffd271198cd3cd3ade4"},{"author":{"_account_id":16907,"name":"Diana Clarke","email":"diana.joan.clarke@gmail.com","username":"diana-clarke"},"change_message_id":"1c1dd77f3eb486cd274685aa7feb63f3633c9a71","unresolved":false,"context_lines":[{"line_number":4,"context_line":"Commit:     Diana Clarke \u003cdiana.joan.clarke@gmail.com\u003e"},{"line_number":5,"context_line":"CommitDate: 2015-06-21 21:15:27 -0400"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Handle port group not found case"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Return None for both vlanid \u0026 vswitch if port group not found."},{"line_number":10,"context_line":""}],"source_content_type":"text/x-gerrit-commit-message","patch_set":2,"id":"fa32b979_f6575324","line":7,"in_reply_to":"fa32b979_73aa7587","updated":"2015-06-22 07:14:42.000000000","message":"Done","commit_id":"935afeaff1f661aff9ce3ffd271198cd3cd3ade4"}],"nova/tests/unit/virt/vmwareapi/test_network_util.py":[{"author":{"_account_id":1653,"name":"garyk","email":"gkotton@vmware.com","username":"garyk"},"change_message_id":"836b520d8afe551cdd502ef0a03c3336261bf617","unresolved":false,"context_lines":[{"line_number":33,"context_line":"DynamicProperty \u003d collections.namedtuple(\u0027DynamicProperty\u0027, [\u0027name\u0027, \u0027val\u0027])"},{"line_number":34,"context_line":""},{"line_number":35,"context_line":""},{"line_number":36,"context_line":"class GetNetworkWithTheNameTestCase(test.NoDBTestCase):"},{"line_number":37,"context_line":""},{"line_number":38,"context_line":"    def setUp(self):"},{"line_number":39,"context_line":"        super(GetNetworkWithTheNameTestCase, self).setUp()"}],"source_content_type":"text/x-python","patch_set":2,"id":"fa32b979_5392d158","line":36,"updated":"2015-06-22 06:02:07.000000000","message":"not sure why you need to change the class name here","commit_id":"935afeaff1f661aff9ce3ffd271198cd3cd3ade4"},{"author":{"_account_id":16907,"name":"Diana Clarke","email":"diana.joan.clarke@gmail.com","username":"diana-clarke"},"change_message_id":"396aedf39d9da43c3b7b6ea25b1b0b52984059af","unresolved":false,"context_lines":[{"line_number":33,"context_line":"DynamicProperty \u003d collections.namedtuple(\u0027DynamicProperty\u0027, [\u0027name\u0027, \u0027val\u0027])"},{"line_number":34,"context_line":""},{"line_number":35,"context_line":""},{"line_number":36,"context_line":"class GetNetworkWithTheNameTestCase(test.NoDBTestCase):"},{"line_number":37,"context_line":""},{"line_number":38,"context_line":"    def setUp(self):"},{"line_number":39,"context_line":"        super(GetNetworkWithTheNameTestCase, self).setUp()"}],"source_content_type":"text/x-python","patch_set":2,"id":"fa32b979_769ee308","line":36,"in_reply_to":"fa32b979_5392d158","updated":"2015-06-22 07:08:06.000000000","message":"This test class name was changed from \u0027VMwareNetworkUtilTestCase\u0027 to \u0027GetNetworkWithTheNameTestCase\u0027  because the only method under test was \u0027get_network_with_the_name\u0027 rather than the entire module (test_network_util.py).\n\nI could have left the test class name as-is, and added the three new tests for \u0027get_vlanid_and_vswitch_for_portgroup\u0027 to the same test class, but then that class would have become hard to read over time.\n\nI think each of the functions in test_network_util.py should have their own test class rather than testing the entire module in a catch-all test class named \u0027VMwareNetworkUtilTestCase\u0027.","commit_id":"935afeaff1f661aff9ce3ffd271198cd3cd3ade4"},{"author":{"_account_id":1653,"name":"garyk","email":"gkotton@vmware.com","username":"garyk"},"change_message_id":"836b520d8afe551cdd502ef0a03c3336261bf617","unresolved":false,"context_lines":[{"line_number":203,"context_line":"            \u0027port_group_name\u0027,"},{"line_number":204,"context_line":"            \u0027fake_cluster\u0027"},{"line_number":205,"context_line":"        )"},{"line_number":206,"context_line":"        self.assertEqual(vlanid, 100)"},{"line_number":207,"context_line":"        self.assertEqual(vswitch, \u0027vswitch_name\u0027)"},{"line_number":208,"context_line":""},{"line_number":209,"context_line":"    @mock.patch.object(vm_util, \u0027get_host_ref\u0027)"}],"source_content_type":"text/x-python","patch_set":2,"id":"fa32b979_d38ca137","line":206,"updated":"2015-06-22 06:02:07.000000000","message":"in general the expected value should be the first parameter","commit_id":"935afeaff1f661aff9ce3ffd271198cd3cd3ade4"},{"author":{"_account_id":16907,"name":"Diana Clarke","email":"diana.joan.clarke@gmail.com","username":"diana-clarke"},"change_message_id":"119991ac079f099f1feb7b43a9ad407355fc4076","unresolved":false,"context_lines":[{"line_number":203,"context_line":"            \u0027port_group_name\u0027,"},{"line_number":204,"context_line":"            \u0027fake_cluster\u0027"},{"line_number":205,"context_line":"        )"},{"line_number":206,"context_line":"        self.assertEqual(vlanid, 100)"},{"line_number":207,"context_line":"        self.assertEqual(vswitch, \u0027vswitch_name\u0027)"},{"line_number":208,"context_line":""},{"line_number":209,"context_line":"    @mock.patch.object(vm_util, \u0027get_host_ref\u0027)"}],"source_content_type":"text/x-python","patch_set":2,"id":"fa32b979_d6e1efd1","line":206,"in_reply_to":"fa32b979_d38ca137","updated":"2015-06-22 06:59:09.000000000","message":"That\u0027s true for many languages, but that\u0027s not the case for Python xunit frameworks. Python settled on assertEqual(first, second), so that both ways are correct. The openstack/nova code uses both assertEqual(actual, expected) and assertEqual(expected, actual), but perhaps I\u0027m missing a documented convention? I did check HACKING.rst.\n\n- Here\u0027s Guido saying either is fine: https://mail.python.org/pipermail/python-dev/2010-December/106954.html\n\n- And here\u0027s both Raymond Hettinger \u0026 Michael Foord saying that they prefer assertEqual(actual, expected): http://bugs.python.org/issue10573","commit_id":"935afeaff1f661aff9ce3ffd271198cd3cd3ade4"},{"author":{"_account_id":5511,"name":"Nikola Dipanov","email":"ndipanov@redhat.com","username":"ndipanov"},"change_message_id":"7de560bd9161eb65c3e0b4dbe38237215c8b4225","unresolved":false,"context_lines":[{"line_number":33,"context_line":"DynamicProperty \u003d collections.namedtuple(\u0027DynamicProperty\u0027, [\u0027name\u0027, \u0027val\u0027])"},{"line_number":34,"context_line":""},{"line_number":35,"context_line":""},{"line_number":36,"context_line":"class GetNetworkWithTheNameTestCase(test.NoDBTestCase):"},{"line_number":37,"context_line":""},{"line_number":38,"context_line":"    def setUp(self):"},{"line_number":39,"context_line":"        super(GetNetworkWithTheNameTestCase, self).setUp()"}],"source_content_type":"text/x-python","patch_set":3,"id":"fa32b979_75e007cd","line":36,"updated":"2015-06-22 14:06:47.000000000","message":"The reason Nova avoids these kind of changes mixed with fixes usually (tho it\u0027s debatable) is because it makes bugfix patches more difficult to backport to previous releases.\n\nIn this case I think it\u0027s very much justified, though if it were a bigger test refactoring, it would probably be better to push it off to a separate commit.","commit_id":"92148ce9fac723426ea40c9f0bd845f696ac75f9"},{"author":{"_account_id":1779,"name":"Daniel Berrange","email":"berrange@redhat.com","username":"berrange"},"change_message_id":"4f03c1db292f267794fd6d1dc8f09aa4b1a63938","unresolved":false,"context_lines":[{"line_number":33,"context_line":"DynamicProperty \u003d collections.namedtuple(\u0027DynamicProperty\u0027, [\u0027name\u0027, \u0027val\u0027])"},{"line_number":34,"context_line":""},{"line_number":35,"context_line":""},{"line_number":36,"context_line":"class GetNetworkWithTheNameTestCase(test.NoDBTestCase):"},{"line_number":37,"context_line":""},{"line_number":38,"context_line":"    def setUp(self):"},{"line_number":39,"context_line":"        super(GetNetworkWithTheNameTestCase, self).setUp()"}],"source_content_type":"text/x-python","patch_set":3,"id":"ba3cc151_317c881e","line":36,"in_reply_to":"fa32b979_75e007cd","updated":"2015-07-01 16:46:13.000000000","message":"FWIW, Nikola is referring to this set of guidelines on commit structure  https://wiki.openstack.org/wiki/GitCommitMessages#Structural_split_of_changes\n\nAgree that its not a big deal in this particular case.","commit_id":"92148ce9fac723426ea40c9f0bd845f696ac75f9"}]}
