)]}'
{"ironic/tests/unit/api/v1/test_notification_utils.py":[{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"770eea29ed3fcb0a2bfcfefee243c456e5545379","unresolved":false,"context_lines":[{"line_number":158,"context_line":"        event_type \u003d init_kwargs[\u0027event_type\u0027]"},{"line_number":159,"context_line":"        self.assertEqual(\u0027node\u0027, event_type.object)"},{"line_number":160,"context_line":"        self.assertEqual(node.uuid, payload.uuid)"},{"line_number":161,"context_line":"        self.assertTrue(payload.maintenance)"},{"line_number":162,"context_line":"        self.assertEqual(\u0027test reason\u0027, payload.maintenance_reason)"},{"line_number":163,"context_line":""},{"line_number":164,"context_line":"    @mock.patch.object(notification.NotificationBase, \u0027emit\u0027)"}],"source_content_type":"text/x-python","patch_set":2,"id":"fa31d9ce_b99e8bb6","line":161,"updated":"2017-02-16 10:11:27.000000000","message":"While seems logical at first glance, this is not strictly equivalent. Imagine one day we set payload.maintenance to 42 by mistake. The previous test would fail, but your new check will pass, as bool(42) is True.\n\nI suggest you either leave this and similar checks are they are or change them to use assertIs(True, ..) which is probably more correctly conveys the initial idea.","commit_id":"966f60bf7801c728b643efadcd66f3d5be14fe63"},{"author":{"_account_id":18603,"name":"Béla Vancsics","email":"vancsics@inf.u-szeged.hu","username":"vancsics"},"change_message_id":"6012496e971e2c3faeaa93c86d017090ad544cdd","unresolved":false,"context_lines":[{"line_number":158,"context_line":"        event_type \u003d init_kwargs[\u0027event_type\u0027]"},{"line_number":159,"context_line":"        self.assertEqual(\u0027node\u0027, event_type.object)"},{"line_number":160,"context_line":"        self.assertEqual(node.uuid, payload.uuid)"},{"line_number":161,"context_line":"        self.assertTrue(payload.maintenance)"},{"line_number":162,"context_line":"        self.assertEqual(\u0027test reason\u0027, payload.maintenance_reason)"},{"line_number":163,"context_line":""},{"line_number":164,"context_line":"    @mock.patch.object(notification.NotificationBase, \u0027emit\u0027)"}],"source_content_type":"text/x-python","patch_set":2,"id":"fa31d9ce_641c666b","line":161,"in_reply_to":"fa31d9ce_b99e8bb6","updated":"2017-02-16 10:27:44.000000000","message":"You\u0027re right, thx;)","commit_id":"966f60bf7801c728b643efadcd66f3d5be14fe63"},{"author":{"_account_id":14525,"name":"Vasyl Saienko","email":"vsaienko@mirantis.com","username":"vsaienko"},"change_message_id":"aae8a3810d0fa10d63e43392ccdd505910f3fffc","unresolved":false,"context_lines":[{"line_number":147,"context_line":"        self.assertEqual(\u002711:22:33:77:88:99\u0027, payload.address)"},{"line_number":148,"context_line":"        self.assertEqual({\u0027a\u0027: 25}, payload.local_link_connection)"},{"line_number":149,"context_line":"        self.assertEqual({\u0027as\u0027: 34}, payload.extra)"},{"line_number":150,"context_line":"        self.assertFalse(payload.pxe_enabled)"},{"line_number":151,"context_line":""},{"line_number":152,"context_line":"    def test_portgroup_notification(self):"},{"line_number":153,"context_line":"        node_uuid \u003d uuidutils.generate_uuid()"}],"source_content_type":"text/x-python","patch_set":5,"id":"ffe62b97_12288694","line":150,"updated":"2017-03-29 12:17:46.000000000","message":"I think it is exactly the same as Dmitry pointed earlier.","commit_id":"8ed540c5401ab5fd702e7823305fe2f7913b3b2a"}],"ironic/tests/unit/api/v1/test_portgroups.py":[{"author":{"_account_id":14525,"name":"Vasyl Saienko","email":"vsaienko@mirantis.com","username":"vsaienko"},"change_message_id":"aae8a3810d0fa10d63e43392ccdd505910f3fffc","unresolved":false,"context_lines":[{"line_number":817,"context_line":"                                   headers\u003dself.headers)"},{"line_number":818,"context_line":"        self.assertEqual(\u0027application/json\u0027, response.content_type)"},{"line_number":819,"context_line":"        self.assertEqual(http_client.OK, response.status_code)"},{"line_number":820,"context_line":"        self.assertFalse(response.json[\u0027standalone_ports_supported\u0027])"},{"line_number":821,"context_line":""},{"line_number":822,"context_line":"    def test_update_portgroup_standalone_ports_supported_bad_api_version("},{"line_number":823,"context_line":"            self, mock_upd):"}],"source_content_type":"text/x-python","patch_set":5,"id":"ffe62b97_7210f257","line":820,"updated":"2017-03-29 12:17:46.000000000","message":"ditto","commit_id":"8ed540c5401ab5fd702e7823305fe2f7913b3b2a"}],"ironic/tests/unit/common/test_states.py":[{"author":{"_account_id":12356,"name":"Vladyslav Drok","email":"vdrok@mirantis.com","username":"vdrok"},"change_message_id":"fa763c1ade2c59d2a591cc95eda123f0f3d43203","unresolved":false,"context_lines":[{"line_number":33,"context_line":"            # are a string."},{"line_number":34,"context_line":"            if key.upper() \u003d\u003d key and isinstance(value, six.string_types):"},{"line_number":35,"context_line":"                self.assertLessEqual("},{"line_number":36,"context_line":"                    (len(value), 15),"},{"line_number":37,"context_line":"                    \"Value for state: {} is greater than 15 characters\".format("},{"line_number":38,"context_line":"                        key))"}],"source_content_type":"text/x-python","patch_set":1,"id":"fa31d9ce_179382a4","line":36,"range":{"start_line":36,"start_character":20,"end_line":36,"end_character":36},"updated":"2017-02-13 10:35:22.000000000","message":"You need to remove () here, as the tester considers it to be a tuple.","commit_id":"b1549b5002576f734084cd650715b206df633b4d"}],"ironic/tests/unit/drivers/modules/drac/test_periodic_task.py":[{"author":{"_account_id":14525,"name":"Vasyl Saienko","email":"vsaienko@mirantis.com","username":"vsaienko"},"change_message_id":"aae8a3810d0fa10d63e43392ccdd505910f3fffc","unresolved":false,"context_lines":[{"line_number":139,"context_line":"        self.assertEqual([\u002742\u0027],"},{"line_number":140,"context_line":"                         self.node.driver_internal_info[\u0027raid_config_job_ids\u0027])"},{"line_number":141,"context_line":"        self.assertEqual({}, self.node.raid_config)"},{"line_number":142,"context_line":"        self.assertFalse(self.node.maintenance)"},{"line_number":143,"context_line":""},{"line_number":144,"context_line":"    @mock.patch.object(drac_common, \u0027get_drac_client\u0027, spec_set\u003dTrue,"},{"line_number":145,"context_line":"                       autospec\u003dTrue)"}],"source_content_type":"text/x-python","patch_set":5,"id":"ffe62b97_520bae28","line":142,"updated":"2017-03-29 12:17:46.000000000","message":"ditto","commit_id":"8ed540c5401ab5fd702e7823305fe2f7913b3b2a"}],"ironic/tests/unit/drivers/modules/test_deploy_utils.py":[{"author":{"_account_id":14525,"name":"Vasyl Saienko","email":"vsaienko@mirantis.com","username":"vsaienko"},"change_message_id":"aae8a3810d0fa10d63e43392ccdd505910f3fffc","unresolved":false,"context_lines":[{"line_number":1613,"context_line":"            utils.agent_add_clean_params(task)"},{"line_number":1614,"context_line":"            self.assertEqual(2, task.node.driver_internal_info["},{"line_number":1615,"context_line":"                \u0027agent_erase_devices_iterations\u0027])"},{"line_number":1616,"context_line":"            self.assertFalse(task.node.driver_internal_info["},{"line_number":1617,"context_line":"                \u0027agent_erase_devices_zeroize\u0027])"},{"line_number":1618,"context_line":"            self.assertEqual(True, task.node.driver_internal_info["},{"line_number":1619,"context_line":"                \u0027agent_continue_if_ata_erase_failed\u0027])"}],"source_content_type":"text/x-python","patch_set":5,"id":"ffe62b97_722a32db","line":1616,"updated":"2017-03-29 12:17:46.000000000","message":"I think this is still should be self.assertEqual(False, ..)\nas if task.node.driver_internal_info[\u0027agent_erase_devices_zeroize\u0027]\u003d0 it also will pass self.assertFalse(...)","commit_id":"8ed540c5401ab5fd702e7823305fe2f7913b3b2a"},{"author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"change_message_id":"a078e1eb73cc8ecb2a2df82efac375b37d8cd2af","unresolved":false,"context_lines":[{"line_number":1638,"context_line":"            self.assertEqual(1, task.node.driver_internal_info["},{"line_number":1639,"context_line":"                             \u0027agent_erase_devices_iterations\u0027])"},{"line_number":1640,"context_line":"            self.assertEqual(True, task.node.driver_internal_info["},{"line_number":1641,"context_line":"                \u0027agent_erase_devices_zeroize\u0027])"},{"line_number":1642,"context_line":"            if manage_boot:"},{"line_number":1643,"context_line":"                prepare_ramdisk_mock.assert_called_once_with("},{"line_number":1644,"context_line":"                    mock.ANY, mock.ANY, {\u0027a\u0027: \u0027b\u0027})"}],"source_content_type":"text/x-python","patch_set":5,"id":"ffe62b97_101ad4ca","line":1641,"range":{"start_line":1641,"start_character":12,"end_line":1641,"end_character":16},"updated":"2017-03-29 02:04:34.000000000","message":"non-actionable nit: unrelated :)","commit_id":"8ed540c5401ab5fd702e7823305fe2f7913b3b2a"}],"ironic/tests/unit/drivers/modules/test_ipminative.py":[{"author":{"_account_id":14525,"name":"Vasyl Saienko","email":"vsaienko@mirantis.com","username":"vsaienko"},"change_message_id":"aae8a3810d0fa10d63e43392ccdd505910f3fffc","unresolved":false,"context_lines":[{"line_number":57,"context_line":"        self.assertEqual(\u0027fake\u0027, self.info[\u0027password\u0027])"},{"line_number":58,"context_line":"        self.assertEqual(\u00271be26c0b-03f2-4d2e-ae87-c02d7f33c123\u0027,"},{"line_number":59,"context_line":"                         self.info[\u0027uuid\u0027])"},{"line_number":60,"context_line":"        self.assertFalse(self.info[\u0027force_boot_device\u0027])"},{"line_number":61,"context_line":""},{"line_number":62,"context_line":"        # make sure error is raised when info, eg. username, is missing"},{"line_number":63,"context_line":"        info \u003d dict(INFO_DICT)"}],"source_content_type":"text/x-python","patch_set":5,"id":"ffe62b97_b281dac5","line":60,"updated":"2017-03-29 12:17:46.000000000","message":"ditto","commit_id":"8ed540c5401ab5fd702e7823305fe2f7913b3b2a"},{"author":{"_account_id":14525,"name":"Vasyl Saienko","email":"vsaienko@mirantis.com","username":"vsaienko"},"change_message_id":"aae8a3810d0fa10d63e43392ccdd505910f3fffc","unresolved":false,"context_lines":[{"line_number":358,"context_line":"            task.node.driver_info[\u0027ipmi_force_boot_device\u0027] \u003d True"},{"line_number":359,"context_line":"            self.driver.management.set_boot_device(task, boot_devices.PXE)"},{"line_number":360,"context_line":"            task.node.refresh()"},{"line_number":361,"context_line":"            self.assertFalse("},{"line_number":362,"context_line":"                task.node.driver_internal_info[\u0027is_next_boot_persistent\u0027]"},{"line_number":363,"context_line":"            )"},{"line_number":364,"context_line":"        # PXE is converted to \u0027network\u0027 internally by ipminative"}],"source_content_type":"text/x-python","patch_set":5,"id":"ffe62b97_d267be4c","line":361,"updated":"2017-03-29 12:17:46.000000000","message":"ditto","commit_id":"8ed540c5401ab5fd702e7823305fe2f7913b3b2a"}],"ironic/tests/unit/drivers/modules/test_ipmitool.py":[{"author":{"_account_id":14525,"name":"Vasyl Saienko","email":"vsaienko@mirantis.com","username":"vsaienko"},"change_message_id":"aae8a3810d0fa10d63e43392ccdd505910f3fffc","unresolved":false,"context_lines":[{"line_number":2018,"context_line":"            self.info[\u0027force_boot_device\u0027] \u003d True"},{"line_number":2019,"context_line":"            self.driver.management.set_boot_device(task, boot_devices.PXE)"},{"line_number":2020,"context_line":"            task.node.refresh()"},{"line_number":2021,"context_line":"            self.assertFalse("},{"line_number":2022,"context_line":"                task.node.driver_internal_info[\u0027is_next_boot_persistent\u0027]"},{"line_number":2023,"context_line":"            )"},{"line_number":2024,"context_line":""}],"source_content_type":"text/x-python","patch_set":5,"id":"ffe62b97_7258f286","line":2021,"updated":"2017-03-29 12:17:46.000000000","message":"ditto","commit_id":"8ed540c5401ab5fd702e7823305fe2f7913b3b2a"}],"ironic/tests/unit/drivers/test_utils.py":[{"author":{"_account_id":14525,"name":"Vasyl Saienko","email":"vsaienko@mirantis.com","username":"vsaienko"},"change_message_id":"aae8a3810d0fa10d63e43392ccdd505910f3fffc","unresolved":false,"context_lines":[{"line_number":169,"context_line":"            ret \u003d driver_utils.force_persistent_boot(task, \u0027pxe\u0027, False)"},{"line_number":170,"context_line":"            self.assertIsNone(ret)"},{"line_number":171,"context_line":"            task.node.refresh()"},{"line_number":172,"context_line":"            self.assertFalse("},{"line_number":173,"context_line":"                task.node.driver_internal_info[\u0027is_next_boot_persistent\u0027])"},{"line_number":174,"context_line":""},{"line_number":175,"context_line":"    def test_capabilities_to_dict(self):"}],"source_content_type":"text/x-python","patch_set":5,"id":"ffe62b97_324eeac0","line":172,"updated":"2017-03-29 12:17:46.000000000","message":"ditto","commit_id":"8ed540c5401ab5fd702e7823305fe2f7913b3b2a"}]}
