)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":20251,"name":"LiuYong","email":"liu.yong8@zte.com.cn","username":"LiuYong"},"change_message_id":"c5565aa0418f3878b8551843bc6acc0f68688f98","unresolved":false,"context_lines":[{"line_number":4,"context_line":"Commit:     Songming Yan \u003cyan.songming@zte.com.cn\u003e"},{"line_number":5,"context_line":"CommitDate: 2016-06-19 11:26:25 +0000"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Fix the problem of mox"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Use mock instead of mox."},{"line_number":10,"context_line":""}],"source_content_type":"text/x-gerrit-commit-message","patch_set":3,"id":"3aaa91ec_a826f613","line":7,"updated":"2016-06-22 00:46:17.000000000","message":"Need giving the file amended","commit_id":"ad79c38862aa4c65040487dad869936b2541a404"}],"neutronclient/tests/unit/test_shell.py":[{"author":{"_account_id":20256,"name":"Zhigang Li","email":"li.zhigang3@zte.com.cn","username":"lizhigang"},"change_message_id":"a8c80a51843fe07b916a46d93a896ffe43a19f38","unresolved":false,"context_lines":[{"line_number":20,"context_line":"import sys"},{"line_number":21,"context_line":""},{"line_number":22,"context_line":"import fixtures"},{"line_number":23,"context_line":"from mox3 import mox"},{"line_number":24,"context_line":"import mock"},{"line_number":25,"context_line":"import six"},{"line_number":26,"context_line":"import testtools"}],"source_content_type":"text/x-python","patch_set":1,"id":"7aa08908_cef6865c","line":23,"range":{"start_line":23,"start_character":0,"end_line":23,"end_character":20},"updated":"2016-06-17 08:19:13.000000000","message":"this could be discarded","commit_id":"1865cf2fe651ce45b2c83509fb0148606630dd93"},{"author":{"_account_id":20251,"name":"LiuYong","email":"liu.yong8@zte.com.cn","username":"LiuYong"},"change_message_id":"d7db53b12852fc597aceb8006230f16b6b57f939","unresolved":false,"context_lines":[{"line_number":148,"context_line":"        self.assertIsInstance(result, argparse.ArgumentParser)"},{"line_number":149,"context_line":""},{"line_number":150,"context_line":"    @mock.patch.object(openstack_shell.NeutronShell, \u0027run\u0027)"},{"line_number":151,"context_line":"    def test_main_with_unicode(self, fake_shel):"},{"line_number":152,"context_line":"        unicode_text \u003d u\u0027\\u7f51\\u7edc\u0027"},{"line_number":153,"context_line":"        argv \u003d [\u0027net-list\u0027, unicode_text, unicode_text]"},{"line_number":154,"context_line":"        fake_shel.return_value \u003d 0"}],"source_content_type":"text/x-python","patch_set":2,"id":"5a9d85d2_1ca04190","line":151,"updated":"2016-06-19 09:40:49.000000000","message":"Should be fake_shell?","commit_id":"9ce420bd0372febc61a4f2a354a34802f5893286"},{"author":{"_account_id":20251,"name":"LiuYong","email":"liu.yong8@zte.com.cn","username":"LiuYong"},"change_message_id":"d7db53b12852fc597aceb8006230f16b6b57f939","unresolved":false,"context_lines":[{"line_number":151,"context_line":"    def test_main_with_unicode(self, fake_shel):"},{"line_number":152,"context_line":"        unicode_text \u003d u\u0027\\u7f51\\u7edc\u0027"},{"line_number":153,"context_line":"        argv \u003d [\u0027net-list\u0027, unicode_text, unicode_text]"},{"line_number":154,"context_line":"        fake_shel.return_value \u003d 0"},{"line_number":155,"context_line":"        ret \u003d openstack_shell.main(argv\u003dargv)"},{"line_number":156,"context_line":"        fake_shel.assert_called_with([u\u0027net-list\u0027, unicode_text,"},{"line_number":157,"context_line":"                                      unicode_text])"}],"source_content_type":"text/x-python","patch_set":2,"id":"5a9d85d2_bcb5add1","line":154,"updated":"2016-06-19 09:40:49.000000000","message":"ditto","commit_id":"9ce420bd0372febc61a4f2a354a34802f5893286"},{"author":{"_account_id":841,"name":"Akihiro Motoki","email":"amotoki@gmail.com","username":"amotoki"},"change_message_id":"8d333339586b651e4bad2cdc782a8ea80bb925fc","unresolved":false,"context_lines":[{"line_number":147,"context_line":"        result \u003d neutron_shell.build_option_parser(\u0027descr\u0027, \u00272.0\u0027)"},{"line_number":148,"context_line":"        self.assertIsInstance(result, argparse.ArgumentParser)"},{"line_number":149,"context_line":""},{"line_number":150,"context_line":"    @mock.patch.object(openstack_shell.NeutronShell, \u0027run\u0027)"},{"line_number":151,"context_line":"    def test_main_with_unicode(self, fake_shell):"},{"line_number":152,"context_line":"        unicode_text \u003d u\u0027\\u7f51\\u7edc\u0027"},{"line_number":153,"context_line":"        argv \u003d [\u0027net-list\u0027, unicode_text, unicode_text]"}],"source_content_type":"text/x-python","patch_set":3,"id":"5a9d85d2_9a723148","line":150,"updated":"2016-06-21 06:16:10.000000000","message":"You should not mock a class directly.\nInstead you should mock an instance of NeutronShell because we call \u0027run\u0027 of the NeutronShell instance instead NeutronShell class.","commit_id":"ad79c38862aa4c65040487dad869936b2541a404"},{"author":{"_account_id":20000,"name":"Songming Yan","email":"yan.songming@zte.com.cn","username":"SonmingYan.zte"},"change_message_id":"8c2025a0c25713289a98cf36f1ddb90b528e892b","unresolved":false,"context_lines":[{"line_number":147,"context_line":"        result \u003d neutron_shell.build_option_parser(\u0027descr\u0027, \u00272.0\u0027)"},{"line_number":148,"context_line":"        self.assertIsInstance(result, argparse.ArgumentParser)"},{"line_number":149,"context_line":""},{"line_number":150,"context_line":"    @mock.patch.object(openstack_shell.NeutronShell, \u0027run\u0027)"},{"line_number":151,"context_line":"    def test_main_with_unicode(self, fake_shell):"},{"line_number":152,"context_line":"        unicode_text \u003d u\u0027\\u7f51\\u7edc\u0027"},{"line_number":153,"context_line":"        argv \u003d [\u0027net-list\u0027, unicode_text, unicode_text]"}],"source_content_type":"text/x-python","patch_set":3,"id":"3aaa91ec_ef26f614","line":150,"in_reply_to":"3aaa91ec_c7f1b6cf","updated":"2016-06-29 09:35:36.000000000","message":"I agree with Trevor, Mocking an instance won\u0027t work.","commit_id":"ad79c38862aa4c65040487dad869936b2541a404"},{"author":{"_account_id":20378,"name":"Trevor McCasland","email":"TM2086@att.com","username":"twm2016"},"change_message_id":"a5377b825dd95a6c907917b308a76e601c8a606b","unresolved":false,"context_lines":[{"line_number":147,"context_line":"        result \u003d neutron_shell.build_option_parser(\u0027descr\u0027, \u00272.0\u0027)"},{"line_number":148,"context_line":"        self.assertIsInstance(result, argparse.ArgumentParser)"},{"line_number":149,"context_line":""},{"line_number":150,"context_line":"    @mock.patch.object(openstack_shell.NeutronShell, \u0027run\u0027)"},{"line_number":151,"context_line":"    def test_main_with_unicode(self, fake_shell):"},{"line_number":152,"context_line":"        unicode_text \u003d u\u0027\\u7f51\\u7edc\u0027"},{"line_number":153,"context_line":"        argv \u003d [\u0027net-list\u0027, unicode_text, unicode_text]"}],"source_content_type":"text/x-python","patch_set":3,"id":"3aaa91ec_c7f1b6cf","line":150,"in_reply_to":"5a9d85d2_9a723148","updated":"2016-06-21 22:06:23.000000000","message":"I don\u0027t agree with Akihiro here. Mocking an instance won\u0027t work because the instance we need to mock exists in openstack_shell.main.","commit_id":"ad79c38862aa4c65040487dad869936b2541a404"},{"author":{"_account_id":841,"name":"Akihiro Motoki","email":"amotoki@gmail.com","username":"amotoki"},"change_message_id":"8d333339586b651e4bad2cdc782a8ea80bb925fc","unresolved":false,"context_lines":[{"line_number":153,"context_line":"        argv \u003d [\u0027net-list\u0027, unicode_text, unicode_text]"},{"line_number":154,"context_line":"        fake_shell.return_value \u003d 0"},{"line_number":155,"context_line":"        ret \u003d openstack_shell.main(argv\u003dargv)"},{"line_number":156,"context_line":"        fake_shell.assert_called_with([u\u0027net-list\u0027, unicode_text,"},{"line_number":157,"context_line":"                                      unicode_text])"},{"line_number":158,"context_line":"        self.assertEqual(0, ret)"},{"line_number":159,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"5a9d85d2_dabdd9d8","line":156,"range":{"start_line":156,"start_character":19,"end_line":156,"end_character":37},"updated":"2016-06-21 06:16:10.000000000","message":"can we use assert_called_once_with?","commit_id":"ad79c38862aa4c65040487dad869936b2541a404"},{"author":{"_account_id":20000,"name":"Songming Yan","email":"yan.songming@zte.com.cn","username":"SonmingYan.zte"},"change_message_id":"8c2025a0c25713289a98cf36f1ddb90b528e892b","unresolved":false,"context_lines":[{"line_number":153,"context_line":"        argv \u003d [\u0027net-list\u0027, unicode_text, unicode_text]"},{"line_number":154,"context_line":"        fake_shell.return_value \u003d 0"},{"line_number":155,"context_line":"        ret \u003d openstack_shell.main(argv\u003dargv)"},{"line_number":156,"context_line":"        fake_shell.assert_called_with([u\u0027net-list\u0027, unicode_text,"},{"line_number":157,"context_line":"                                      unicode_text])"},{"line_number":158,"context_line":"        self.assertEqual(0, ret)"},{"line_number":159,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"3aaa91ec_af0cee94","line":156,"range":{"start_line":156,"start_character":19,"end_line":156,"end_character":37},"in_reply_to":"3aaa91ec_9ec53b5d","updated":"2016-06-29 09:35:36.000000000","message":"Done","commit_id":"ad79c38862aa4c65040487dad869936b2541a404"},{"author":{"_account_id":20378,"name":"Trevor McCasland","email":"TM2086@att.com","username":"twm2016"},"change_message_id":"a5377b825dd95a6c907917b308a76e601c8a606b","unresolved":false,"context_lines":[{"line_number":153,"context_line":"        argv \u003d [\u0027net-list\u0027, unicode_text, unicode_text]"},{"line_number":154,"context_line":"        fake_shell.return_value \u003d 0"},{"line_number":155,"context_line":"        ret \u003d openstack_shell.main(argv\u003dargv)"},{"line_number":156,"context_line":"        fake_shell.assert_called_with([u\u0027net-list\u0027, unicode_text,"},{"line_number":157,"context_line":"                                      unicode_text])"},{"line_number":158,"context_line":"        self.assertEqual(0, ret)"},{"line_number":159,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"3aaa91ec_9ec53b5d","line":156,"range":{"start_line":156,"start_character":19,"end_line":156,"end_character":37},"in_reply_to":"5a9d85d2_dabdd9d8","updated":"2016-06-21 22:06:23.000000000","message":"Yes, we should use assert_called_once_with.","commit_id":"ad79c38862aa4c65040487dad869936b2541a404"}]}
