)]}'
{"ironic_inspector/test/unit/test_process.py":[{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"26f2d4878e827e8c5d29aee92e7b93f98deeb4be","unresolved":false,"context_lines":[{"line_number":350,"context_line":"        if getpass.getuser() !\u003d \u0027root\u0027:"},{"line_number":351,"context_line":"            self.assertTrue(log_mock.called)"},{"line_number":352,"context_line":"        else:"},{"line_number":353,"context_line":"            self.assertFalse(log_mock.called)"},{"line_number":354,"context_line":""},{"line_number":355,"context_line":"    def test_directory_is_created(self, hook_mock):"},{"line_number":356,"context_line":"        shutil.rmtree(self.tempdir)"}],"source_content_type":"text/x-python","patch_set":2,"id":"df7087c5_dc2eef90","line":353,"updated":"2018-03-14 12:29:43.000000000","message":"This is essentially disabling the test under root. Let\u0027s better find a way to make it work under root as well, e.g. find a directory that is impossible to write even for root (malformed?)","commit_id":"2cc47e502e17aef134d846f7ad6230d1753954c1"},{"author":{"_account_id":24828,"name":"Kaifeng Wang","email":"kaifeng.w@gmail.com","username":"wangkf"},"change_message_id":"40785e59487f34ade9fb849c94ad2b89462058ec","unresolved":false,"context_lines":[{"line_number":350,"context_line":"        if getpass.getuser() !\u003d \u0027root\u0027:"},{"line_number":351,"context_line":"            self.assertTrue(log_mock.called)"},{"line_number":352,"context_line":"        else:"},{"line_number":353,"context_line":"            self.assertFalse(log_mock.called)"},{"line_number":354,"context_line":""},{"line_number":355,"context_line":"    def test_directory_is_created(self, hook_mock):"},{"line_number":356,"context_line":"        shutil.rmtree(self.tempdir)"}],"source_content_type":"text/x-python","patch_set":2,"id":"df7087c5_5acdec2e","line":353,"in_reply_to":"df7087c5_dc2eef90","updated":"2018-03-15 05:39:07.000000000","message":"I constructed several cases, none of them are workable, root user still has the rights to create path, do you have suggestions on how to construct a malformed path?\n\nCreating random path under root is not safe, and we may not find a suitable path fits all distros, I personally prefer to add a mock to os.makedirs, wdyt?","commit_id":"2cc47e502e17aef134d846f7ad6230d1753954c1"},{"author":{"_account_id":6618,"name":"Ruby Loo","email":"opensrloo@gmail.com","username":"rloo"},"change_message_id":"75b8d6516b64fbbd5276113ccc9c24fdfb37ff7d","unresolved":false,"context_lines":[{"line_number":348,"context_line":"        makedirs_mock.side_effect \u003d OSError()"},{"line_number":349,"context_line":"        process.process(self.data)"},{"line_number":350,"context_line":"        self.assertEqual([], os.listdir(self.tempdir))"},{"line_number":351,"context_line":"        self.assertTrue(log_mock.called)"},{"line_number":352,"context_line":""},{"line_number":353,"context_line":"    def test_directory_is_created(self, hook_mock):"},{"line_number":354,"context_line":"        shutil.rmtree(self.tempdir)"}],"source_content_type":"text/x-python","patch_set":4,"id":"df7087c5_f51fddb4","line":351,"updated":"2018-03-19 13:26:47.000000000","message":"what do you think about asserting whether makedirs_mock was called or not?","commit_id":"e2f758550b171a580b3271e51445ade283f7dbd4"},{"author":{"_account_id":6618,"name":"Ruby Loo","email":"opensrloo@gmail.com","username":"rloo"},"change_message_id":"a02831bda63ea63741ba5ea4c072f2acb5106f2c","unresolved":false,"context_lines":[{"line_number":348,"context_line":"        makedirs_mock.side_effect \u003d OSError()"},{"line_number":349,"context_line":"        process.process(self.data)"},{"line_number":350,"context_line":"        self.assertEqual([], os.listdir(self.tempdir))"},{"line_number":351,"context_line":"        self.assertTrue(log_mock.called)"},{"line_number":352,"context_line":""},{"line_number":353,"context_line":"    def test_directory_is_created(self, hook_mock):"},{"line_number":354,"context_line":"        shutil.rmtree(self.tempdir)"}],"source_content_type":"text/x-python","patch_set":4,"id":"df7087c5_49f2ad9c","line":351,"in_reply_to":"df7087c5_2932d9a8","updated":"2018-03-19 15:57:40.000000000","message":"Honestly, I\u0027m not familiar with this code -- do what you think makes the most sense.","commit_id":"e2f758550b171a580b3271e51445ade283f7dbd4"},{"author":{"_account_id":24828,"name":"Kaifeng Wang","email":"kaifeng.w@gmail.com","username":"wangkf"},"change_message_id":"b9b48c20375f3d460692b960cf0cab8dfe4c5336","unresolved":false,"context_lines":[{"line_number":348,"context_line":"        makedirs_mock.side_effect \u003d OSError()"},{"line_number":349,"context_line":"        process.process(self.data)"},{"line_number":350,"context_line":"        self.assertEqual([], os.listdir(self.tempdir))"},{"line_number":351,"context_line":"        self.assertTrue(log_mock.called)"},{"line_number":352,"context_line":""},{"line_number":353,"context_line":"    def test_directory_is_created(self, hook_mock):"},{"line_number":354,"context_line":"        shutil.rmtree(self.tempdir)"}],"source_content_type":"text/x-python","patch_set":4,"id":"df7087c5_2932d9a8","line":351,"in_reply_to":"df7087c5_f51fddb4","updated":"2018-03-19 15:49:41.000000000","message":"Have not considered yet, but your raised a valid question, thanks!\nThe path /I/cannot/write/here may seem odd, but we should not make assumption that it does not exist in the OS, especially the test may have created this path at previous runs.\nI think prefixing this path with a temp directory will get it done, if no better alternative, wdyt?","commit_id":"e2f758550b171a580b3271e51445ade283f7dbd4"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"aae4a9a08d1a0f62454131986f365a199f1351e6","unresolved":false,"context_lines":[{"line_number":342,"context_line":"    @mock.patch.object(os, \u0027makedirs\u0027, autospec\u003dTrue)"},{"line_number":343,"context_line":"    @mock.patch.object(process.LOG, \u0027exception\u0027, autospec\u003dTrue)"},{"line_number":344,"context_line":"    def test_failure_to_write(self, log_mock, makedirs_mock, hook_mock):"},{"line_number":345,"context_line":"        tempdir \u003d tempfile.mkdtemp()"},{"line_number":346,"context_line":"        logs_dir \u003d os.path.join(tempdir, \u0027I/never/exist\u0027)"},{"line_number":347,"context_line":"        CONF.set_override(\u0027always_store_ramdisk_logs\u0027, True, \u0027processing\u0027)"},{"line_number":348,"context_line":"        CONF.set_override(\u0027ramdisk_logs_dir\u0027, logs_dir, \u0027processing\u0027)"}],"source_content_type":"text/x-python","patch_set":5,"id":"df7087c5_f0e346a3","line":345,"updated":"2018-03-20 16:10:05.000000000","message":"nit:\n\n self.addCleanup(lambda: os.rmdir(tempdir))\n\ninstead of line 351","commit_id":"0c159b021e8aaef3c4cb1173c09f40a8499aea7e"},{"author":{"_account_id":6618,"name":"Ruby Loo","email":"opensrloo@gmail.com","username":"rloo"},"change_message_id":"b12b5f527c3cec54df017caf80fc86929179ba25","unresolved":false,"context_lines":[{"line_number":343,"context_line":"    @mock.patch.object(process.LOG, \u0027exception\u0027, autospec\u003dTrue)"},{"line_number":344,"context_line":"    def test_failure_to_write(self, log_mock, makedirs_mock, hook_mock):"},{"line_number":345,"context_line":"        tempdir \u003d tempfile.mkdtemp()"},{"line_number":346,"context_line":"        logs_dir \u003d os.path.join(tempdir, \u0027I/never/exist\u0027)"},{"line_number":347,"context_line":"        CONF.set_override(\u0027always_store_ramdisk_logs\u0027, True, \u0027processing\u0027)"},{"line_number":348,"context_line":"        CONF.set_override(\u0027ramdisk_logs_dir\u0027, logs_dir, \u0027processing\u0027)"},{"line_number":349,"context_line":"        makedirs_mock.side_effect \u003d OSError()"}],"source_content_type":"text/x-python","patch_set":5,"id":"df7087c5_2112d659","line":346,"updated":"2018-03-20 13:13:15.000000000","message":"nit: I think it would have been ok to use tempdir as log dir. Or if you really want \u0027I_never_exist\u0027, you could have done tempfile.mkdtemp(suffix\u003d\u0027I_never_exist\u0027).","commit_id":"0c159b021e8aaef3c4cb1173c09f40a8499aea7e"},{"author":{"_account_id":24828,"name":"Kaifeng Wang","email":"kaifeng.w@gmail.com","username":"wangkf"},"change_message_id":"88d79da9a6135452c8445abe7bdc8517d02a53bc","unresolved":false,"context_lines":[{"line_number":343,"context_line":"    @mock.patch.object(process.LOG, \u0027exception\u0027, autospec\u003dTrue)"},{"line_number":344,"context_line":"    def test_failure_to_write(self, log_mock, makedirs_mock, hook_mock):"},{"line_number":345,"context_line":"        tempdir \u003d tempfile.mkdtemp()"},{"line_number":346,"context_line":"        logs_dir \u003d os.path.join(tempdir, \u0027I/never/exist\u0027)"},{"line_number":347,"context_line":"        CONF.set_override(\u0027always_store_ramdisk_logs\u0027, True, \u0027processing\u0027)"},{"line_number":348,"context_line":"        CONF.set_override(\u0027ramdisk_logs_dir\u0027, logs_dir, \u0027processing\u0027)"},{"line_number":349,"context_line":"        makedirs_mock.side_effect \u003d OSError()"}],"source_content_type":"text/x-python","patch_set":5,"id":"df7087c5_4ae11ffc","line":346,"in_reply_to":"df7087c5_2112d659","updated":"2018-03-20 14:58:41.000000000","message":"I believe that won\u0027t gonna work ;)\nIf the log dir exists, makedirs will not get called, write to the dir will succeed, as the dir is created by current user. Assertion of L353 and L354 will fail.","commit_id":"0c159b021e8aaef3c4cb1173c09f40a8499aea7e"},{"author":{"_account_id":6618,"name":"Ruby Loo","email":"opensrloo@gmail.com","username":"rloo"},"change_message_id":"425acc37b2ed90675042bd2c9c4e48bc8e6aa396","unresolved":false,"context_lines":[{"line_number":343,"context_line":"    @mock.patch.object(process.LOG, \u0027exception\u0027, autospec\u003dTrue)"},{"line_number":344,"context_line":"    def test_failure_to_write(self, log_mock, makedirs_mock, hook_mock):"},{"line_number":345,"context_line":"        tempdir \u003d tempfile.mkdtemp()"},{"line_number":346,"context_line":"        logs_dir \u003d os.path.join(tempdir, \u0027I/never/exist\u0027)"},{"line_number":347,"context_line":"        CONF.set_override(\u0027always_store_ramdisk_logs\u0027, True, \u0027processing\u0027)"},{"line_number":348,"context_line":"        CONF.set_override(\u0027ramdisk_logs_dir\u0027, logs_dir, \u0027processing\u0027)"},{"line_number":349,"context_line":"        makedirs_mock.side_effect \u003d OSError()"}],"source_content_type":"text/x-python","patch_set":5,"id":"df7087c5_4a67df52","line":346,"in_reply_to":"df7087c5_4ae11ffc","updated":"2018-03-20 15:07:33.000000000","message":"Oh right, that\u0027s why makedirs is mocked! Thx!","commit_id":"0c159b021e8aaef3c4cb1173c09f40a8499aea7e"}]}
