)]}'
{"ironic/tests/unit/drivers/modules/test_ipmitool.py":[{"author":{"_account_id":6773,"name":"Lucas Alvares Gomes","email":"lucasagomes@gmail.com","username":"lucasagomes"},"change_message_id":"f933376fb13fd06fa3a4170da6feb10490864b3f","unresolved":false,"context_lines":[{"line_number":61,"context_line":"BRIDGE_INFO_DICT \u003d INFO_DICT.copy()"},{"line_number":62,"context_line":"BRIDGE_INFO_DICT.update(db_utils.get_test_ipmi_bridging_parameters())"},{"line_number":63,"context_line":""},{"line_number":64,"context_line":""},{"line_number":65,"context_line":"class IPMIToolCheckInitTestCase(base.TestCase):"},{"line_number":66,"context_line":""},{"line_number":67,"context_line":"    @mock.patch.object(ipmi, \u0027_is_option_supported\u0027, autospec\u003dTrue)"}],"source_content_type":"text/x-python","patch_set":1,"id":"1aa78d24_7440ac07","line":64,"updated":"2016-07-07 09:09:00.000000000","message":"Let\u0027s mock it at the class level so we don\u0027t need to do it on every method:\n\n @mock.patch.object(ipmi, \u0027TMP_DIR_CHECKED\u0027, lambda _: None)\n class IPMITool...\n\n   def test(...):\n       ipmi.TMP_DIR_CHECKED \u003d True\n       ...","commit_id":"233bae08caa77599e5ccdc5de3e0cbb917f45cb6"},{"author":{"_account_id":7882,"name":"Yuiko Takada Mori","email":"yuiko-mori@nec.com","username":"YuikoTakada"},"change_message_id":"801cff6af946e7f8dfa589b5a486a2e8cd76521b","unresolved":false,"context_lines":[{"line_number":61,"context_line":"BRIDGE_INFO_DICT \u003d INFO_DICT.copy()"},{"line_number":62,"context_line":"BRIDGE_INFO_DICT.update(db_utils.get_test_ipmi_bridging_parameters())"},{"line_number":63,"context_line":""},{"line_number":64,"context_line":""},{"line_number":65,"context_line":"class IPMIToolCheckInitTestCase(base.TestCase):"},{"line_number":66,"context_line":""},{"line_number":67,"context_line":"    @mock.patch.object(ipmi, \u0027_is_option_supported\u0027, autospec\u003dTrue)"}],"source_content_type":"text/x-python","patch_set":1,"id":"1aa78d24_f452c511","line":64,"in_reply_to":"1aa78d24_7440ac07","updated":"2016-07-07 15:06:29.000000000","message":"Done. I didn\u0027t know such solution :)","commit_id":"233bae08caa77599e5ccdc5de3e0cbb917f45cb6"},{"author":{"_account_id":6773,"name":"Lucas Alvares Gomes","email":"lucasagomes@gmail.com","username":"lucasagomes"},"change_message_id":"768d4e7205a09faafd1b5b90b4cb7d45ad9bcf94","unresolved":false,"context_lines":[{"line_number":62,"context_line":"BRIDGE_INFO_DICT.update(db_utils.get_test_ipmi_bridging_parameters())"},{"line_number":63,"context_line":""},{"line_number":64,"context_line":""},{"line_number":65,"context_line":"@mock.patch.object(ipmi, \u0027TMP_DIR_CHECKED\u0027, lambda _: None)"},{"line_number":66,"context_line":"class IPMIToolCheckInitTestCase(base.TestCase):"},{"line_number":67,"context_line":""},{"line_number":68,"context_line":"    @mock.patch.object(ipmi, \u0027_is_option_supported\u0027, autospec\u003dTrue)"}],"source_content_type":"text/x-python","patch_set":2,"id":"1aa78d24_fbda7616","line":65,"range":{"start_line":65,"start_character":44,"end_line":65,"end_character":54},"updated":"2016-07-08 14:39:47.000000000","message":"This lambda is not needed here (my bad from previous comment)\n\nI will put a new patch-set changing it","commit_id":"878d41fba3b0282e1c8873ccffe718a6d141a1a8"},{"author":{"_account_id":13719,"name":"Naohiro Tamura","email":"naohirot.openstack@gmail.com","username":"nao"},"change_message_id":"1a5781776d659112cb499074810b1b8f27c6a595","unresolved":false,"context_lines":[{"line_number":69,"context_line":"    @mock.patch.object(utils, \u0027check_dir\u0027, autospec\u003dTrue)"},{"line_number":70,"context_line":"    def test_power_init_calls(self, mock_check_dir, mock_support):"},{"line_number":71,"context_line":"        mock_support.return_value \u003d True"},{"line_number":72,"context_line":"        ipmi.TMP_DIR_CHECKED \u003d None"},{"line_number":73,"context_line":"        ipmi.IPMIPower()"},{"line_number":74,"context_line":"        mock_support.assert_called_with(mock.ANY)"},{"line_number":75,"context_line":"        mock_check_dir.assert_called_once_with()"}],"source_content_type":"text/x-python","patch_set":3,"id":"1aa78d24_eacc2b63","line":72,"range":{"start_line":72,"start_character":8,"end_line":72,"end_character":35},"updated":"2016-07-11 08:27:01.000000000","message":"This code would be redundant if the patch.object() at L.65 has the third argument \"None\". Otherwise it would be better to define the patch.object() without the third argument.","commit_id":"1e2bcecbdd3ff37cfe66d61537e3b748819a0aac"},{"author":{"_account_id":7882,"name":"Yuiko Takada Mori","email":"yuiko-mori@nec.com","username":"YuikoTakada"},"change_message_id":"aa08f167fe8112b3a1408fe2a325f6c952136320","unresolved":false,"context_lines":[{"line_number":69,"context_line":"    @mock.patch.object(utils, \u0027check_dir\u0027, autospec\u003dTrue)"},{"line_number":70,"context_line":"    def test_power_init_calls(self, mock_check_dir, mock_support):"},{"line_number":71,"context_line":"        mock_support.return_value \u003d True"},{"line_number":72,"context_line":"        ipmi.TMP_DIR_CHECKED \u003d None"},{"line_number":73,"context_line":"        ipmi.IPMIPower()"},{"line_number":74,"context_line":"        mock_support.assert_called_with(mock.ANY)"},{"line_number":75,"context_line":"        mock_check_dir.assert_called_once_with()"}],"source_content_type":"text/x-python","patch_set":3,"id":"1aa78d24_16fb70c2","line":72,"range":{"start_line":72,"start_character":8,"end_line":72,"end_character":35},"in_reply_to":"1aa78d24_1328a2e1","updated":"2016-07-12 01:54:00.000000000","message":"Sorry, I did wrong thing, you\u0027re right. I will fix soon.","commit_id":"1e2bcecbdd3ff37cfe66d61537e3b748819a0aac"},{"author":{"_account_id":13719,"name":"Naohiro Tamura","email":"naohirot.openstack@gmail.com","username":"nao"},"change_message_id":"c31461d30e107b39a4c1f3ae8e6e3e3147085013","unresolved":false,"context_lines":[{"line_number":69,"context_line":"    @mock.patch.object(utils, \u0027check_dir\u0027, autospec\u003dTrue)"},{"line_number":70,"context_line":"    def test_power_init_calls(self, mock_check_dir, mock_support):"},{"line_number":71,"context_line":"        mock_support.return_value \u003d True"},{"line_number":72,"context_line":"        ipmi.TMP_DIR_CHECKED \u003d None"},{"line_number":73,"context_line":"        ipmi.IPMIPower()"},{"line_number":74,"context_line":"        mock_support.assert_called_with(mock.ANY)"},{"line_number":75,"context_line":"        mock_check_dir.assert_called_once_with()"}],"source_content_type":"text/x-python","patch_set":3,"id":"1aa78d24_62c02e51","line":72,"range":{"start_line":72,"start_character":8,"end_line":72,"end_character":35},"in_reply_to":"1aa78d24_16fb70c2","updated":"2016-07-12 04:22:36.000000000","message":"It\u0027s good to hear that it worked :-)","commit_id":"1e2bcecbdd3ff37cfe66d61537e3b748819a0aac"},{"author":{"_account_id":13719,"name":"Naohiro Tamura","email":"naohirot.openstack@gmail.com","username":"nao"},"change_message_id":"071325b6385742002ce50fa77fb4ee097b53b0b9","unresolved":false,"context_lines":[{"line_number":69,"context_line":"    @mock.patch.object(utils, \u0027check_dir\u0027, autospec\u003dTrue)"},{"line_number":70,"context_line":"    def test_power_init_calls(self, mock_check_dir, mock_support):"},{"line_number":71,"context_line":"        mock_support.return_value \u003d True"},{"line_number":72,"context_line":"        ipmi.TMP_DIR_CHECKED \u003d None"},{"line_number":73,"context_line":"        ipmi.IPMIPower()"},{"line_number":74,"context_line":"        mock_support.assert_called_with(mock.ANY)"},{"line_number":75,"context_line":"        mock_check_dir.assert_called_once_with()"}],"source_content_type":"text/x-python","patch_set":3,"id":"1aa78d24_1328a2e1","line":72,"range":{"start_line":72,"start_character":8,"end_line":72,"end_character":35},"in_reply_to":"1aa78d24_6dd94757","updated":"2016-07-12 01:38:27.000000000","message":"Yuiko,\n\nThanks for the feedback.\nHmm, I doubly checked that the third argument of mock.patch.object() initializes the patched attribute in both py27 and py34.\nI assigned \"abc\" to ipmi.TMP_DIR_CHECKED, and confirmed it by debugger like below:\n\n (py27) naohirot@ubuntu:~/work/src/ironic[review/yuiko_takada_mori/mock_globalval]$ vi ironic/tests/unit/drivers/modules/test_ipmitool.py\n \n  65 #@mock.patch.object(ipmi, \u0027TMP_DIR_CHECKED\u0027, None)\n  66 @mock.patch.object(ipmi, \u0027TMP_DIR_CHECKED\u0027, \"abc\")\n  67 class IPMIToolCheckInitTestCase(base.TestCase):\n  68\n  69     @mock.patch.object(ipmi, \u0027_is_option_supported\u0027, autospec\u003dTrue)\n  70     @mock.patch.object(utils, \u0027check_dir\u0027, autospec\u003dTrue)\n  71     def test_power_init_calls(self, mock_check_dir, mock_support):\n  72         mock_support.return_value \u003d True\n  73         import pdb; pdb.set_trace() # \"import pdb\" needs to be at top in py34\n  74         #ipmi.TMP_DIR_CHECKED \u003d None\n  75         ipmi.IPMIPower()\n  76         mock_support.assert_called_with(mock.ANY)\n  77         mock_check_dir.assert_called_once_with()\n\n\n (py27) naohirot@ubuntu:~/work/src/ironic[review/yuiko_takada_mori/mock_globalval]$ python -m testtools.run ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolCheckInitTestCase.test_power_init_calls\n Tests running...\n \u003e /home/naohirot/work/src/ironic/ironic/tests/unit/drivers/modules/test_ipmitool.py(75)test_power_init_calls()\n -\u003e ipmi.IPMIPower()\n (Pdb) p ipmi.TMP_DIR_CHECKED\n \u0027abc\u0027\n (Pdb)\n\nDid I do something wrong?\n\nBest regards,\nNaohiro","commit_id":"1e2bcecbdd3ff37cfe66d61537e3b748819a0aac"},{"author":{"_account_id":7882,"name":"Yuiko Takada Mori","email":"yuiko-mori@nec.com","username":"YuikoTakada"},"change_message_id":"2e1a9889dddcc0b85db490ce83877205ffe3f362","unresolved":false,"context_lines":[{"line_number":69,"context_line":"    @mock.patch.object(utils, \u0027check_dir\u0027, autospec\u003dTrue)"},{"line_number":70,"context_line":"    def test_power_init_calls(self, mock_check_dir, mock_support):"},{"line_number":71,"context_line":"        mock_support.return_value \u003d True"},{"line_number":72,"context_line":"        ipmi.TMP_DIR_CHECKED \u003d None"},{"line_number":73,"context_line":"        ipmi.IPMIPower()"},{"line_number":74,"context_line":"        mock_support.assert_called_with(mock.ANY)"},{"line_number":75,"context_line":"        mock_check_dir.assert_called_once_with()"}],"source_content_type":"text/x-python","patch_set":3,"id":"1aa78d24_6dd94757","line":72,"range":{"start_line":72,"start_character":8,"end_line":72,"end_character":35},"in_reply_to":"1aa78d24_eacc2b63","updated":"2016-07-12 00:14:47.000000000","message":"ipmi.TMP_DIR_CHECKED is not mocked without this line. I\u0027ve tried to put debug message as print(ipmi.TMP_DIR_CHECKED) on before ipmi.TMP_DIR_CHECKED \u003d None and after it, and result was like below:\n\n \u003cfunction \u003clambda\u003e at 0x7fafa50972a8\u003e\n None","commit_id":"1e2bcecbdd3ff37cfe66d61537e3b748819a0aac"},{"author":{"_account_id":13719,"name":"Naohiro Tamura","email":"naohirot.openstack@gmail.com","username":"nao"},"change_message_id":"1a5781776d659112cb499074810b1b8f27c6a595","unresolved":false,"context_lines":[{"line_number":78,"context_line":"    @mock.patch.object(utils, \u0027check_dir\u0027, autospec\u003dTrue)"},{"line_number":79,"context_line":"    def test_power_init_calls_raises_1(self, mock_check_dir, mock_support):"},{"line_number":80,"context_line":"        mock_support.return_value \u003d True"},{"line_number":81,"context_line":"        ipmi.TMP_DIR_CHECKED \u003d None"},{"line_number":82,"context_line":"        mock_check_dir.side_effect \u003d exception.PathNotFound(dir\u003d\"foo_dir\")"},{"line_number":83,"context_line":"        self.assertRaises(exception.PathNotFound, ipmi.IPMIPower)"},{"line_number":84,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"1aa78d24_cafe8f6a","line":81,"range":{"start_line":81,"start_character":8,"end_line":81,"end_character":35},"updated":"2016-07-11 08:27:01.000000000","message":"ditto","commit_id":"1e2bcecbdd3ff37cfe66d61537e3b748819a0aac"},{"author":{"_account_id":13719,"name":"Naohiro Tamura","email":"naohirot.openstack@gmail.com","username":"nao"},"change_message_id":"1a5781776d659112cb499074810b1b8f27c6a595","unresolved":false,"context_lines":[{"line_number":86,"context_line":"    @mock.patch.object(utils, \u0027check_dir\u0027, autospec\u003dTrue)"},{"line_number":87,"context_line":"    def test_power_init_calls_raises_2(self, mock_check_dir, mock_support):"},{"line_number":88,"context_line":"        mock_support.return_value \u003d True"},{"line_number":89,"context_line":"        ipmi.TMP_DIR_CHECKED \u003d None"},{"line_number":90,"context_line":"        mock_check_dir.side_effect \u003d exception.DirectoryNotWritable("},{"line_number":91,"context_line":"            dir\u003d\"foo_dir\")"},{"line_number":92,"context_line":"        self.assertRaises(exception.DirectoryNotWritable, ipmi.IPMIPower)"}],"source_content_type":"text/x-python","patch_set":3,"id":"1aa78d24_4af3bf9e","line":89,"range":{"start_line":89,"start_character":8,"end_line":89,"end_character":35},"updated":"2016-07-11 08:27:01.000000000","message":"ditto.","commit_id":"1e2bcecbdd3ff37cfe66d61537e3b748819a0aac"},{"author":{"_account_id":13719,"name":"Naohiro Tamura","email":"naohirot.openstack@gmail.com","username":"nao"},"change_message_id":"1a5781776d659112cb499074810b1b8f27c6a595","unresolved":false,"context_lines":[{"line_number":95,"context_line":"    @mock.patch.object(utils, \u0027check_dir\u0027, autospec\u003dTrue)"},{"line_number":96,"context_line":"    def test_power_init_calls_raises_3(self, mock_check_dir, mock_support):"},{"line_number":97,"context_line":"        mock_support.return_value \u003d True"},{"line_number":98,"context_line":"        ipmi.TMP_DIR_CHECKED \u003d None"},{"line_number":99,"context_line":"        mock_check_dir.side_effect \u003d exception.InsufficientDiskSpace("},{"line_number":100,"context_line":"            path\u003d\"foo_dir\", required\u003d1, actual\u003d0)"},{"line_number":101,"context_line":"        self.assertRaises(exception.InsufficientDiskSpace, ipmi.IPMIPower)"}],"source_content_type":"text/x-python","patch_set":3,"id":"1aa78d24_6a2e7bfb","line":98,"range":{"start_line":98,"start_character":8,"end_line":98,"end_character":35},"updated":"2016-07-11 08:27:01.000000000","message":"ditto.","commit_id":"1e2bcecbdd3ff37cfe66d61537e3b748819a0aac"},{"author":{"_account_id":13719,"name":"Naohiro Tamura","email":"naohirot.openstack@gmail.com","username":"nao"},"change_message_id":"1a5781776d659112cb499074810b1b8f27c6a595","unresolved":false,"context_lines":[{"line_number":115,"context_line":"    @mock.patch.object(utils, \u0027check_dir\u0027, autospec\u003dTrue)"},{"line_number":116,"context_line":"    def test_management_init_calls(self, mock_check_dir, mock_support):"},{"line_number":117,"context_line":"        mock_support.return_value \u003d True"},{"line_number":118,"context_line":"        ipmi.TMP_DIR_CHECKED \u003d None"},{"line_number":119,"context_line":"        ipmi.IPMIManagement()"},{"line_number":120,"context_line":"        mock_support.assert_called_with(mock.ANY)"},{"line_number":121,"context_line":"        mock_check_dir.assert_called_once_with()"}],"source_content_type":"text/x-python","patch_set":3,"id":"1aa78d24_aa0fc386","line":118,"range":{"start_line":118,"start_character":8,"end_line":118,"end_character":35},"updated":"2016-07-11 08:27:01.000000000","message":"ditto","commit_id":"1e2bcecbdd3ff37cfe66d61537e3b748819a0aac"},{"author":{"_account_id":13719,"name":"Naohiro Tamura","email":"naohirot.openstack@gmail.com","username":"nao"},"change_message_id":"1a5781776d659112cb499074810b1b8f27c6a595","unresolved":false,"context_lines":[{"line_number":135,"context_line":"    @mock.patch.object(utils, \u0027check_dir\u0027, autospec\u003dTrue)"},{"line_number":136,"context_line":"    def test_vendor_passthru_init_calls(self, mock_check_dir, mock_support):"},{"line_number":137,"context_line":"        mock_support.return_value \u003d True"},{"line_number":138,"context_line":"        ipmi.TMP_DIR_CHECKED \u003d None"},{"line_number":139,"context_line":"        ipmi.VendorPassthru()"},{"line_number":140,"context_line":"        mock_support.assert_called_with(mock.ANY)"},{"line_number":141,"context_line":"        mock_check_dir.assert_called_once_with()"}],"source_content_type":"text/x-python","patch_set":3,"id":"1aa78d24_ca5a0f83","line":138,"range":{"start_line":138,"start_character":8,"end_line":138,"end_character":35},"updated":"2016-07-11 08:27:01.000000000","message":"ditto","commit_id":"1e2bcecbdd3ff37cfe66d61537e3b748819a0aac"},{"author":{"_account_id":13719,"name":"Naohiro Tamura","email":"naohirot.openstack@gmail.com","username":"nao"},"change_message_id":"1a5781776d659112cb499074810b1b8f27c6a595","unresolved":false,"context_lines":[{"line_number":155,"context_line":"    @mock.patch.object(utils, \u0027check_dir\u0027, autospec\u003dTrue)"},{"line_number":156,"context_line":"    def test_console_init_calls(self, mock_check_dir, mock_support):"},{"line_number":157,"context_line":"        mock_support.return_value \u003d True"},{"line_number":158,"context_line":"        ipmi.TMP_DIR_CHECKED \u003d None"},{"line_number":159,"context_line":"        ipmi.IPMIShellinaboxConsole()"},{"line_number":160,"context_line":"        mock_support.assert_called_with(mock.ANY)"},{"line_number":161,"context_line":"        mock_check_dir.assert_called_once_with()"}],"source_content_type":"text/x-python","patch_set":3,"id":"1aa78d24_ea4f0bbc","line":158,"range":{"start_line":158,"start_character":8,"end_line":158,"end_character":35},"updated":"2016-07-11 08:27:01.000000000","message":"ditto","commit_id":"1e2bcecbdd3ff37cfe66d61537e3b748819a0aac"},{"author":{"_account_id":13719,"name":"Naohiro Tamura","email":"naohirot.openstack@gmail.com","username":"nao"},"change_message_id":"1a5781776d659112cb499074810b1b8f27c6a595","unresolved":false,"context_lines":[{"line_number":175,"context_line":"    @mock.patch.object(utils, \u0027check_dir\u0027, autospec\u003dTrue)"},{"line_number":176,"context_line":"    def test_console_init_calls_for_socat(self, mock_check_dir, mock_support):"},{"line_number":177,"context_line":"        mock_support.return_value \u003d True"},{"line_number":178,"context_line":"        ipmi.TMP_DIR_CHECKED \u003d None"},{"line_number":179,"context_line":"        ipmi.IPMISocatConsole()"},{"line_number":180,"context_line":"        mock_support.assert_called_with(mock.ANY)"},{"line_number":181,"context_line":"        mock_check_dir.assert_called_once_with()"}],"source_content_type":"text/x-python","patch_set":3,"id":"1aa78d24_ead6ebc1","line":178,"range":{"start_line":178,"start_character":8,"end_line":178,"end_character":35},"updated":"2016-07-11 08:27:01.000000000","message":"ditto","commit_id":"1e2bcecbdd3ff37cfe66d61537e3b748819a0aac"}]}
