)]}'
{"nova/tests/unit/virt/libvirt/test_migration.py":[{"author":{"_account_id":679,"name":"Kevin L. Mitchell","email":"klmitch@mit.edu","username":"klmitch"},"change_message_id":"7a94ac56aeb87027f70773dbe4ff215fdc7e2446","unresolved":false,"context_lines":[{"line_number":102,"context_line":"        doc \u003d etree.fromstring(xml)"},{"line_number":103,"context_line":"        res \u003d etree.tostring(migration._update_serial_xml(doc, data))"},{"line_number":104,"context_line":"        new_xml \u003d xml.replace(\"127.0.0.1\", \"127.0.0.100\")"},{"line_number":105,"context_line":"        self.assertEqual(new_xml, encodeutils.safe_decode(res))"},{"line_number":106,"context_line":""},{"line_number":107,"context_line":"    def test_update_serial_xml_console(self):"},{"line_number":108,"context_line":"        data \u003d objects.LibvirtLiveMigrateData("}],"source_content_type":"text/x-python","patch_set":1,"id":"3aaa91ec_d6848a0c","line":105,"updated":"2016-06-28 15:42:54.000000000","message":"Equality is a bad way to compare XML, which is why you don\u0027t see any other instance of assertEqual() used in this way in this file.  If you absolutely must compare xml to accomplish this test, you\u0027ll want to use something like nova.tests.unit.matchers.XMLMatches; for an example of usage, check out the assertXmlEqual() method in nova.tests.unit.virt.libvirt.test_config.LibvirtConfigBaseTest class…but note that test_config.py appears to be the sole remaining consumer of XMLMatches.","commit_id":"49f71a5277a60fa05b307a86c593eb677d8be1be"},{"author":{"_account_id":12175,"name":"Eli Qiao","email":"qiaoliyong@gmail.com","username":"Eli"},"change_message_id":"2b334fd2f19011eb40010e04065a947d7c620821","unresolved":false,"context_lines":[{"line_number":102,"context_line":"        doc \u003d etree.fromstring(xml)"},{"line_number":103,"context_line":"        res \u003d etree.tostring(migration._update_serial_xml(doc, data))"},{"line_number":104,"context_line":"        new_xml \u003d xml.replace(\"127.0.0.1\", \"127.0.0.100\")"},{"line_number":105,"context_line":"        self.assertEqual(new_xml, encodeutils.safe_decode(res))"},{"line_number":106,"context_line":""},{"line_number":107,"context_line":"    def test_update_serial_xml_console(self):"},{"line_number":108,"context_line":"        data \u003d objects.LibvirtLiveMigrateData("}],"source_content_type":"text/x-python","patch_set":1,"id":"1aa78d24_985582fb","line":105,"in_reply_to":"3aaa91ec_d6848a0c","updated":"2016-07-13 08:06:13.000000000","message":"@Kevin, thanks for your suggestion. updated.","commit_id":"49f71a5277a60fa05b307a86c593eb677d8be1be"},{"author":{"_account_id":679,"name":"Kevin L. Mitchell","email":"klmitch@mit.edu","username":"klmitch"},"change_message_id":"2dd538b556b63c3bb88a8ec0e09b6ed08cf9973f","unresolved":false,"context_lines":[{"line_number":108,"context_line":"        doc \u003d etree.fromstring(xml)"},{"line_number":109,"context_line":"        res \u003d etree.tostring(migration._update_serial_xml(doc, data))"},{"line_number":110,"context_line":"        new_xml \u003d xml.replace(\"127.0.0.1\", \"127.0.0.100\")"},{"line_number":111,"context_line":"        self.assertThat(new_xml, matchers.XMLMatches(res))"},{"line_number":112,"context_line":""},{"line_number":113,"context_line":"    def test_update_serial_xml_console(self):"},{"line_number":114,"context_line":"        data \u003d objects.LibvirtLiveMigrateData("}],"source_content_type":"text/x-python","patch_set":2,"id":"1aa78d24_18c85ba7","line":111,"updated":"2016-07-13 14:32:55.000000000","message":"I\u0027m going to ask you to switch the order here.  That is:\n\n    self.assertThat(res, matchers.XMLMatches(new_xml))\n\nMatchers of this form are a bit more sensitive to the correct usage, and the matchers.XMLMatches class is expecting the expected XML rather than the actual XML.","commit_id":"b785cc726d1d53d0046a80cc8e1b0ed926730551"},{"author":{"_account_id":12175,"name":"Eli Qiao","email":"qiaoliyong@gmail.com","username":"Eli"},"change_message_id":"dbae2c69213110b1be680defaf2902a62ea7b216","unresolved":false,"context_lines":[{"line_number":108,"context_line":"        doc \u003d etree.fromstring(xml)"},{"line_number":109,"context_line":"        res \u003d etree.tostring(migration._update_serial_xml(doc, data))"},{"line_number":110,"context_line":"        new_xml \u003d xml.replace(\"127.0.0.1\", \"127.0.0.100\")"},{"line_number":111,"context_line":"        self.assertThat(new_xml, matchers.XMLMatches(res))"},{"line_number":112,"context_line":""},{"line_number":113,"context_line":"    def test_update_serial_xml_console(self):"},{"line_number":114,"context_line":"        data \u003d objects.LibvirtLiveMigrateData("}],"source_content_type":"text/x-python","patch_set":2,"id":"bacf61ea_c05dc27a","line":111,"in_reply_to":"1aa78d24_18c85ba7","updated":"2016-08-04 01:55:39.000000000","message":"Done","commit_id":"b785cc726d1d53d0046a80cc8e1b0ed926730551"},{"author":{"_account_id":679,"name":"Kevin L. Mitchell","email":"klmitch@mit.edu","username":"klmitch"},"change_message_id":"2dd538b556b63c3bb88a8ec0e09b6ed08cf9973f","unresolved":false,"context_lines":[{"line_number":175,"context_line":"               \u0027function\u003d\"0x0\"/\u003e\u0027"},{"line_number":176,"context_line":"               \u0027   \u003c/disk\u003e\u0027"},{"line_number":177,"context_line":"               \u0027 \u003c/devices\u003e\u0027"},{"line_number":178,"context_line":"               \u0027\u003c/domain\u003e\u0027)"},{"line_number":179,"context_line":"        conf \u003d vconfig.LibvirtConfigGuestDisk()"},{"line_number":180,"context_line":"        conf.source_device \u003d bdm.type"},{"line_number":181,"context_line":"        conf.driver_name \u003d \"qemu\""}],"source_content_type":"text/x-python","patch_set":2,"id":"1aa78d24_9d043d18","line":178,"updated":"2016-07-13 14:32:55.000000000","message":"Any particular reason you chose to change this from a triple-quoted string?  (I\u0027m not faulting it, just expressing curiosity.)","commit_id":"b785cc726d1d53d0046a80cc8e1b0ed926730551"},{"author":{"_account_id":12175,"name":"Eli Qiao","email":"qiaoliyong@gmail.com","username":"Eli"},"change_message_id":"dbae2c69213110b1be680defaf2902a62ea7b216","unresolved":false,"context_lines":[{"line_number":175,"context_line":"               \u0027function\u003d\"0x0\"/\u003e\u0027"},{"line_number":176,"context_line":"               \u0027   \u003c/disk\u003e\u0027"},{"line_number":177,"context_line":"               \u0027 \u003c/devices\u003e\u0027"},{"line_number":178,"context_line":"               \u0027\u003c/domain\u003e\u0027)"},{"line_number":179,"context_line":"        conf \u003d vconfig.LibvirtConfigGuestDisk()"},{"line_number":180,"context_line":"        conf.source_device \u003d bdm.type"},{"line_number":181,"context_line":"        conf.driver_name \u003d \"qemu\""}],"source_content_type":"text/x-python","patch_set":2,"id":"bacf61ea_1b4c6b41","line":178,"in_reply_to":"1aa78d24_9d043d18","updated":"2016-08-04 01:55:39.000000000","message":"yes, this change happened before using matchers.XMLMatches, it works now. I will switch it back","commit_id":"b785cc726d1d53d0046a80cc8e1b0ed926730551"},{"author":{"_account_id":679,"name":"Kevin L. Mitchell","email":"klmitch@mit.edu","username":"klmitch"},"change_message_id":"42982c6f7add35c8f47e88dad048b25a5e4db057","unresolved":false,"context_lines":[{"line_number":209,"context_line":"        self.assertThat(\"\"\"\u003cdomain\u003e"},{"line_number":210,"context_line":"  \u003cperf\u003e"},{"line_number":211,"context_line":"    \u003cevent enabled\u003d\"yes\" name\u003d\"cmt\"/\u003e\u003c/perf\u003e"},{"line_number":212,"context_line":"\u003c/domain\u003e\"\"\", matchers.XMLMatches(res))"},{"line_number":213,"context_line":""},{"line_number":214,"context_line":"    def test_update_perf_events_xml_add_new_events(self):"},{"line_number":215,"context_line":"        data \u003d objects.LibvirtLiveMigrateData("}],"source_content_type":"text/x-python","patch_set":3,"id":"bacf61ea_499b9618","line":212,"updated":"2016-08-04 16:38:01.000000000","message":"You missed the argument order switch here and similar clauses where the XML is embedded directly into the assert.  This could be redone as:\n\n        self.assertThat(res, matchers.XMLMatches(\"\"\"\u003cdomain\u003e\n      \u003cperf\u003e\n        \u003cevent enabled\u003d\"yes\" name\u003d\"cmt\"/\u003e\u003c/perf\u003e\n    \u003c/domain\u003e\"\"\"))","commit_id":"4573ad32de2f6cee91108560002677d2942f9491"},{"author":{"_account_id":12175,"name":"Eli Qiao","email":"qiaoliyong@gmail.com","username":"Eli"},"change_message_id":"d5df2e842fe1b213e1cec5be8af05e17dd4107d9","unresolved":false,"context_lines":[{"line_number":209,"context_line":"        self.assertThat(\"\"\"\u003cdomain\u003e"},{"line_number":210,"context_line":"  \u003cperf\u003e"},{"line_number":211,"context_line":"    \u003cevent enabled\u003d\"yes\" name\u003d\"cmt\"/\u003e\u003c/perf\u003e"},{"line_number":212,"context_line":"\u003c/domain\u003e\"\"\", matchers.XMLMatches(res))"},{"line_number":213,"context_line":""},{"line_number":214,"context_line":"    def test_update_perf_events_xml_add_new_events(self):"},{"line_number":215,"context_line":"        data \u003d objects.LibvirtLiveMigrateData("}],"source_content_type":"text/x-python","patch_set":3,"id":"bacf61ea_fe6ae2b3","line":212,"in_reply_to":"bacf61ea_499b9618","updated":"2016-08-05 05:58:44.000000000","message":"Done","commit_id":"4573ad32de2f6cee91108560002677d2942f9491"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"744587eedbeaa178544e316c18a2c5303fc3c021","unresolved":false,"context_lines":[{"line_number":253,"context_line":""},{"line_number":254,"context_line":""},{"line_number":255,"context_line":"class MigrationMonitorTestCase(test.NoDBTestCase):"},{"line_number":256,"context_line":""},{"line_number":257,"context_line":"    def setUp(self):"},{"line_number":258,"context_line":"        super(MigrationMonitorTestCase, self).setUp()"},{"line_number":259,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"bacf61ea_4c623d3f","side":"PARENT","line":256,"updated":"2016-08-05 21:31:13.000000000","message":"nit: unrelated whitespace change","commit_id":"3f700b5a5a498ba08e77378d34f059c3fa6845d8"}]}
