)]}'
{"oslo_messaging/tests/notify/test_notifier.py":[{"author":{"_account_id":2813,"name":"Mehdi Abaakouk","email":"sileht@sileht.net","username":"sileht"},"change_message_id":"05774e3482864d0a1e5d8d8602d55fd637535c29","unresolved":false,"context_lines":[{"line_number":207,"context_line":"                    send_kwargs[\u0027retry\u0027] \u003d None"},{"line_number":208,"context_line":"                target \u003d oslo_messaging.Target(topic\u003d\u0027%s.%s\u0027 % (topic,"},{"line_number":209,"context_line":"                                                                self.priority))"},{"line_number":210,"context_line":"                transport._send_notification(target, self.ctxt, message,"},{"line_number":211,"context_line":"                                             **send_kwargs).InAnyOrder()"},{"line_number":212,"context_line":""},{"line_number":213,"context_line":"        self.mox.ReplayAll()"}],"source_content_type":"text/x-python","patch_set":2,"id":"1a6eadb0_a2289be3","side":"PARENT","line":210,"range":{"start_line":210,"start_character":26,"end_line":210,"end_character":44},"updated":"2016-12-14 23:19:06.000000000","message":"We need to keep this assertion.","commit_id":"8f2852a62760b7b9208df91c82c62d4b943c91f3"},{"author":{"_account_id":2813,"name":"Mehdi Abaakouk","email":"sileht@sileht.net","username":"sileht"},"change_message_id":"05774e3482864d0a1e5d8d8602d55fd637535c29","unresolved":false,"context_lines":[{"line_number":309,"context_line":"        uuid.uuid4.assert_called_once_with()"},{"line_number":310,"context_line":"        logger.info.assert_called_once_with(jsonutils.dumps(message))"},{"line_number":311,"context_line":"        logging.getLogger.\\"},{"line_number":312,"context_line":"            assert_called_once_with(\u0027oslo.messaging.notification.test.notify\u0027)"},{"line_number":313,"context_line":""},{"line_number":314,"context_line":"    def test_sample_priority(self):"},{"line_number":315,"context_line":"        # Ensure logger drops sample-level notifications."}],"source_content_type":"text/x-python","patch_set":2,"id":"1a6eadb0_2262cb3e","line":312,"range":{"start_line":312,"start_character":36,"end_line":312,"end_character":37},"updated":"2016-12-14 23:19:06.000000000","message":"nit: we prefer not using \\ and put the newline somewhere else like just after (","commit_id":"d5bffc88f96a1e2cce84c1178128ac9514dce75e"},{"author":{"_account_id":2813,"name":"Mehdi Abaakouk","email":"sileht@sileht.net","username":"sileht"},"change_message_id":"83f97a633dae06632472affbe4a0e442ba4e09a6","unresolved":false,"context_lines":[{"line_number":194,"context_line":"        method(self.ctxt, \u0027test.notify\u0027, self.payload)"},{"line_number":195,"context_line":""},{"line_number":196,"context_line":"        uuid.uuid4.assert_called_once_with()"},{"line_number":197,"context_line":"        transport._send_notification.called"},{"line_number":198,"context_line":""},{"line_number":199,"context_line":"TestMessagingNotifier.generate_scenarios()"},{"line_number":200,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"1a6eadb0_aa86a5d8","line":197,"range":{"start_line":197,"start_character":37,"end_line":197,"end_character":43},"updated":"2016-12-15 07:30:34.000000000","message":"This doesn\u0027t assert anything but just return True/False","commit_id":"4cd97337d2b8230f9398625c771995d97b7ba1e3"},{"author":{"_account_id":2813,"name":"Mehdi Abaakouk","email":"sileht@sileht.net","username":"sileht"},"change_message_id":"0970418ece9f52816944bfdc52abc9c85f5857dc","unresolved":false,"context_lines":[{"line_number":194,"context_line":"        method(self.ctxt, \u0027test.notify\u0027, self.payload)"},{"line_number":195,"context_line":""},{"line_number":196,"context_line":"        uuid.uuid4.assert_called_once_with()"},{"line_number":197,"context_line":"        transport._send_notification.called"},{"line_number":198,"context_line":""},{"line_number":199,"context_line":"TestMessagingNotifier.generate_scenarios()"},{"line_number":200,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"1a6eadb0_f6ceba2b","line":197,"range":{"start_line":197,"start_character":37,"end_line":197,"end_character":43},"in_reply_to":"1a6eadb0_aa86a5d8","updated":"2016-12-15 12:33:46.000000000","message":"Like in other files you should use side_effect to return a list of return values. And self.assertEqual(excepted_calls, transport._send_notification.mock_calls) with excepted_calls a list of each consecutive calls.","commit_id":"4cd97337d2b8230f9398625c771995d97b7ba1e3"},{"author":{"_account_id":2813,"name":"Mehdi Abaakouk","email":"sileht@sileht.net","username":"sileht"},"change_message_id":"83f97a633dae06632472affbe4a0e442ba4e09a6","unresolved":false,"context_lines":[{"line_number":321,"context_line":"        logging.getLogger \u003d mock.Mock()"},{"line_number":322,"context_line":"        logging.getLogger.return_value \u003d logger"},{"line_number":323,"context_line":""},{"line_number":324,"context_line":"        self.mox.ReplayAll()"},{"line_number":325,"context_line":""},{"line_number":326,"context_line":"        msg \u003d {\u0027event_type\u0027: \u0027foo\u0027}"},{"line_number":327,"context_line":"        driver.notify(None, msg, \"sample\", None)"}],"source_content_type":"text/x-python","patch_set":3,"id":"1a6eadb0_0a1f99b7","line":324,"range":{"start_line":324,"start_character":8,"end_line":324,"end_character":28},"updated":"2016-12-15 07:30:34.000000000","message":"We have a survivor :)","commit_id":"4cd97337d2b8230f9398625c771995d97b7ba1e3"},{"author":{"_account_id":2813,"name":"Mehdi Abaakouk","email":"sileht@sileht.net","username":"sileht"},"change_message_id":"820e59a4caf4bfe77f5898e07c694eebab7f0989","unresolved":false,"context_lines":[{"line_number":330,"context_line":"        uuid.uuid4.assert_called_once_with()"},{"line_number":331,"context_line":"        logging.getLogger.assert_called_once_with(\u0027oslo.messaging.\u0027"},{"line_number":332,"context_line":"                                                  \u0027notification.test.notify\u0027)"},{"line_number":333,"context_line":"        logger.info.assert_called_once_with(jsonutils.dumps(message))"},{"line_number":334,"context_line":""},{"line_number":335,"context_line":"    def test_sample_priority(self):"},{"line_number":336,"context_line":"        # Ensure logger drops sample-level notifications."}],"source_content_type":"text/x-python","patch_set":7,"id":"1a6eadb0_17ca221b","line":333,"updated":"2016-12-16 10:26:23.000000000","message":"We can\u0027t compare jsondumps, because dict have not always the same order. Take a new on my new patchset I have added the JsonMessageMatcher class to make such check safely.","commit_id":"069deded2a8c3df33f3ac81990865ef7bf026a44"}],"oslo_messaging/tests/rpc/test_client.py":[{"author":{"_account_id":2813,"name":"Mehdi Abaakouk","email":"sileht@sileht.net","username":"sileht"},"change_message_id":"05774e3482864d0a1e5d8d8602d55fd637535c29","unresolved":false,"context_lines":[{"line_number":334,"context_line":"                   args\u003ddict([(k, \u0027s\u0027 + v) for k, v in self.args.items()]))"},{"line_number":335,"context_line":"        kwargs \u003d dict(wait_for_reply\u003dTrue, timeout\u003dNone) if self.call else {}"},{"line_number":336,"context_line":"        kwargs[\u0027retry\u0027] \u003d None"},{"line_number":337,"context_line":"        transport._send(oslo_messaging.Target(),"},{"line_number":338,"context_line":"                        dict(user\u003d\u0027alice\u0027),"},{"line_number":339,"context_line":"                        msg,"},{"line_number":340,"context_line":"                        **kwargs).AndReturn(self.retval)"}],"source_content_type":"text/x-python","patch_set":2,"id":"1a6eadb0_8238ff3e","side":"PARENT","line":337,"range":{"start_line":337,"start_character":18,"end_line":337,"end_character":23},"updated":"2016-12-14 23:19:06.000000000","message":"This was asserting on _send args","commit_id":"8f2852a62760b7b9208df91c82c62d4b943c91f3"},{"author":{"_account_id":2813,"name":"Mehdi Abaakouk","email":"sileht@sileht.net","username":"sileht"},"change_message_id":"718c161adc11330f9bcd8ddaf25c5e231a0a4490","unresolved":false,"context_lines":[{"line_number":349,"context_line":"        serializer.deserialize_entity \u003d mock.Mock()"},{"line_number":350,"context_line":"        serializer.serialize_context \u003d mock.Mock()"},{"line_number":351,"context_line":""},{"line_number":352,"context_line":"        for arg in self.args:"},{"line_number":353,"context_line":"            serializer.serialize_entity.return_value \u003d \u0027s\u0027 + arg"},{"line_number":354,"context_line":""},{"line_number":355,"context_line":"        if self.call:"},{"line_number":356,"context_line":"            serializer.deserialize_entity.return_value \u003d \u0027d\u0027 + self.retval"}],"source_content_type":"text/x-python","patch_set":3,"id":"1a6eadb0_16441619","line":353,"range":{"start_line":352,"start_character":1,"end_line":353,"end_character":64},"updated":"2016-12-15 12:29:30.000000000","message":"This should be:\n\n    serializer.serialize_entity.side_effect \u003d [\u0027s\u0027 + arg for arg in self.args]","commit_id":"4cd97337d2b8230f9398625c771995d97b7ba1e3"},{"author":{"_account_id":2813,"name":"Mehdi Abaakouk","email":"sileht@sileht.net","username":"sileht"},"change_message_id":"83f97a633dae06632472affbe4a0e442ba4e09a6","unresolved":false,"context_lines":[{"line_number":362,"context_line":"        if self.retval is not None:"},{"line_number":363,"context_line":"            self.assertEqual(\u0027d\u0027 + self.retval, retval)"},{"line_number":364,"context_line":""},{"line_number":365,"context_line":"        transport._send.called"},{"line_number":366,"context_line":"        serializer.serialize_entity.called"},{"line_number":367,"context_line":"        if self.call:"},{"line_number":368,"context_line":"            serializer.deserialize_entity.assert_called_once_with(self.ctxt,"}],"source_content_type":"text/x-python","patch_set":3,"id":"1a6eadb0_4a1a717e","line":365,"range":{"start_line":365,"start_character":24,"end_line":365,"end_character":30},"updated":"2016-12-15 07:30:34.000000000","message":"This doesn\u0027t assert anything but just return True/False","commit_id":"4cd97337d2b8230f9398625c771995d97b7ba1e3"},{"author":{"_account_id":2813,"name":"Mehdi Abaakouk","email":"sileht@sileht.net","username":"sileht"},"change_message_id":"718c161adc11330f9bcd8ddaf25c5e231a0a4490","unresolved":false,"context_lines":[{"line_number":362,"context_line":"        if self.retval is not None:"},{"line_number":363,"context_line":"            self.assertEqual(\u0027d\u0027 + self.retval, retval)"},{"line_number":364,"context_line":""},{"line_number":365,"context_line":"        transport._send.called"},{"line_number":366,"context_line":"        serializer.serialize_entity.called"},{"line_number":367,"context_line":"        if self.call:"},{"line_number":368,"context_line":"            serializer.deserialize_entity.assert_called_once_with(self.ctxt,"}],"source_content_type":"text/x-python","patch_set":3,"id":"1a6eadb0_b65fe2e3","line":365,"range":{"start_line":365,"start_character":24,"end_line":365,"end_character":30},"in_reply_to":"1a6eadb0_4a1a717e","updated":"2016-12-15 12:29:30.000000000","message":"Instead uses:\n\n    transport._send.assert_called_once_with(...)","commit_id":"4cd97337d2b8230f9398625c771995d97b7ba1e3"},{"author":{"_account_id":2813,"name":"Mehdi Abaakouk","email":"sileht@sileht.net","username":"sileht"},"change_message_id":"83f97a633dae06632472affbe4a0e442ba4e09a6","unresolved":false,"context_lines":[{"line_number":363,"context_line":"            self.assertEqual(\u0027d\u0027 + self.retval, retval)"},{"line_number":364,"context_line":""},{"line_number":365,"context_line":"        transport._send.called"},{"line_number":366,"context_line":"        serializer.serialize_entity.called"},{"line_number":367,"context_line":"        if self.call:"},{"line_number":368,"context_line":"            serializer.deserialize_entity.assert_called_once_with(self.ctxt,"},{"line_number":369,"context_line":"                                                                  self.retval)"}],"source_content_type":"text/x-python","patch_set":3,"id":"1a6eadb0_6a1f2d6c","line":366,"range":{"start_line":366,"start_character":36,"end_line":366,"end_character":42},"updated":"2016-12-15 07:30:34.000000000","message":"This doesn\u0027t assert anything but just return True/False","commit_id":"4cd97337d2b8230f9398625c771995d97b7ba1e3"},{"author":{"_account_id":2813,"name":"Mehdi Abaakouk","email":"sileht@sileht.net","username":"sileht"},"change_message_id":"718c161adc11330f9bcd8ddaf25c5e231a0a4490","unresolved":false,"context_lines":[{"line_number":363,"context_line":"            self.assertEqual(\u0027d\u0027 + self.retval, retval)"},{"line_number":364,"context_line":""},{"line_number":365,"context_line":"        transport._send.called"},{"line_number":366,"context_line":"        serializer.serialize_entity.called"},{"line_number":367,"context_line":"        if self.call:"},{"line_number":368,"context_line":"            serializer.deserialize_entity.assert_called_once_with(self.ctxt,"},{"line_number":369,"context_line":"                                                                  self.retval)"}],"source_content_type":"text/x-python","patch_set":3,"id":"1a6eadb0_f6a87a8e","line":366,"range":{"start_line":366,"start_character":36,"end_line":366,"end_character":42},"in_reply_to":"1a6eadb0_6a1f2d6c","updated":"2016-12-15 12:29:30.000000000","message":"This can be replaced by:\n\n    expected_calls \u003d [mock.call(self.ctxt, arg) for arg in self.args]\n    self.assertEqual(expected_calls, serializer.serialize_entity.mock_calls)","commit_id":"4cd97337d2b8230f9398625c771995d97b7ba1e3"},{"author":{"_account_id":2813,"name":"Mehdi Abaakouk","email":"sileht@sileht.net","username":"sileht"},"change_message_id":"1ef9ae4f98612d8b09f86cea1cf2fd0cc4f8322c","unresolved":false,"context_lines":[{"line_number":463,"context_line":"        try:"},{"line_number":464,"context_line":"            method({}, \u0027foo\u0027)"},{"line_number":465,"context_line":""},{"line_number":466,"context_line":"            if self.success:"},{"line_number":467,"context_line":"                transport._send.assert_called_once_with(target,"},{"line_number":468,"context_line":"                                                        {},"},{"line_number":469,"context_line":"                                                        msg,"},{"line_number":470,"context_line":"                                                        **kwargs)"},{"line_number":471,"context_line":"        except Exception as ex:"},{"line_number":472,"context_line":"            self.assertIsInstance(ex, oslo_messaging.RPCVersionCapError, ex)"},{"line_number":473,"context_line":"            self.assertFalse(self.success)"}],"source_content_type":"text/x-python","patch_set":6,"id":"1a6eadb0_8315219d","line":470,"range":{"start_line":466,"start_character":0,"end_line":470,"end_character":65},"updated":"2016-12-16 06:42:26.000000000","message":"This must be outside the try/except. I will fix it myself.","commit_id":"a537ec8d26106b77896d156aa7568e0eeb688af2"}],"oslo_messaging/tests/rpc/test_dispatcher.py":[{"author":{"_account_id":2813,"name":"Mehdi Abaakouk","email":"sileht@sileht.net","username":"sileht"},"change_message_id":"83f97a633dae06632472affbe4a0e442ba4e09a6","unresolved":false,"context_lines":[{"line_number":239,"context_line":"        self.mox.StubOutWithMock(serializer, \u0027deserialize_entity\u0027)"},{"line_number":240,"context_line":"        self.mox.StubOutWithMock(serializer, \u0027deserialize_context\u0027)"},{"line_number":241,"context_line":""},{"line_number":242,"context_line":"        serializer.deserialize_context(self.ctxt).AndReturn(self.dctxt)"},{"line_number":243,"context_line":""},{"line_number":244,"context_line":"        for arg in self.args:"},{"line_number":245,"context_line":"            serializer.deserialize_entity(self.dctxt, arg).AndReturn(\u0027d\u0027 + arg)"},{"line_number":246,"context_line":""},{"line_number":247,"context_line":"        serializer.serialize_entity(self.dctxt, self.retval). \\"},{"line_number":248,"context_line":"            AndReturn(\u0027s\u0027 + self.retval if self.retval else None)"},{"line_number":249,"context_line":""},{"line_number":250,"context_line":"        self.mox.ReplayAll()"},{"line_number":251,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"1a6eadb0_aa3ea5d7","side":"PARENT","line":248,"range":{"start_line":242,"start_character":2,"end_line":248,"end_character":65},"updated":"2016-12-15 07:30:34.000000000","message":"All this assertion are missing.","commit_id":"8f2852a62760b7b9208df91c82c62d4b943c91f3"},{"author":{"_account_id":2813,"name":"Mehdi Abaakouk","email":"sileht@sileht.net","username":"sileht"},"change_message_id":"0970418ece9f52816944bfdc52abc9c85f5857dc","unresolved":false,"context_lines":[{"line_number":239,"context_line":"        self.mox.StubOutWithMock(serializer, \u0027deserialize_entity\u0027)"},{"line_number":240,"context_line":"        self.mox.StubOutWithMock(serializer, \u0027deserialize_context\u0027)"},{"line_number":241,"context_line":""},{"line_number":242,"context_line":"        serializer.deserialize_context(self.ctxt).AndReturn(self.dctxt)"},{"line_number":243,"context_line":""},{"line_number":244,"context_line":"        for arg in self.args:"},{"line_number":245,"context_line":"            serializer.deserialize_entity(self.dctxt, arg).AndReturn(\u0027d\u0027 + arg)"},{"line_number":246,"context_line":""},{"line_number":247,"context_line":"        serializer.serialize_entity(self.dctxt, self.retval). \\"},{"line_number":248,"context_line":"            AndReturn(\u0027s\u0027 + self.retval if self.retval else None)"},{"line_number":249,"context_line":""},{"line_number":250,"context_line":"        self.mox.ReplayAll()"},{"line_number":251,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"1a6eadb0_160fb688","side":"PARENT","line":248,"range":{"start_line":242,"start_character":2,"end_line":248,"end_character":65},"in_reply_to":"1a6eadb0_aa3ea5d7","updated":"2016-12-15 12:33:46.000000000","message":"Youd should use: \n\n    serializer.serialize_entity.assert_called_once_with(self.dctxt, self.retval)","commit_id":"8f2852a62760b7b9208df91c82c62d4b943c91f3"},{"author":{"_account_id":2813,"name":"Mehdi Abaakouk","email":"sileht@sileht.net","username":"sileht"},"change_message_id":"0970418ece9f52816944bfdc52abc9c85f5857dc","unresolved":false,"context_lines":[{"line_number":241,"context_line":""},{"line_number":242,"context_line":"        serializer.deserialize_context.return_value \u003d self.dctxt"},{"line_number":243,"context_line":""},{"line_number":244,"context_line":"        for arg in self.args:"},{"line_number":245,"context_line":"            serializer.deserialize_entity.return_value \u003d \u0027d\u0027 + arg"},{"line_number":246,"context_line":""},{"line_number":247,"context_line":"        serializer.serialize_entity.return_value \u003d \\"},{"line_number":248,"context_line":"            \u0027s\u0027 + self.retval if self.retval else None"}],"source_content_type":"text/x-python","patch_set":3,"id":"1a6eadb0_96a82679","line":245,"range":{"start_line":244,"start_character":0,"end_line":245,"end_character":66},"updated":"2016-12-15 12:33:46.000000000","message":"This should be:\n    serializer.serialize_entity.side_effect \u003d [\u0027s\u0027 + arg for arg in self.args]\n\nAnd later asserted with:\n\n    expected_calls \u003d [mock.call(self.ctxt, arg) for arg in self.args]\n    self.assertEqual(expected_calls, serializer.serialize_entity.mock_calls)","commit_id":"4cd97337d2b8230f9398625c771995d97b7ba1e3"}]}
