)]}'
{"cinder/hacking/checks.py":[{"author":{"_account_id":8358,"name":"zhangguoqing","email":"zhang.guoqing@99cloud.net","username":"zhangguoqing"},"change_message_id":"d31071dedd5f7956b72d82786282d03add9466cc","unresolved":false,"context_lines":[{"line_number":76,"context_line":"# self.assertTrue("},{"line_number":77,"context_line":"#     \u0027Bronze\u0027 in arrayInfoRec[\u0027SLO\u0027] or"},{"line_number":78,"context_line":"#     \u0027Silver\u0027 in arrayInfoRec[\u0027SLO\u0027])"},{"line_number":79,"context_line":"assert_In_and_NotIn \u003d re.compile("},{"line_number":80,"context_line":"    r\".*assert(True|False)\\([^(any(|all()].* (in|not in) .* \""},{"line_number":81,"context_line":"    \"[^(in|not in)] .*\\)\")"},{"line_number":82,"context_line":""},{"line_number":83,"context_line":""},{"line_number":84,"context_line":"class BaseASTChecker(ast.NodeVisitor):"}],"source_content_type":"text/x-python","patch_set":2,"id":"1af94dfe_a1c68c97","line":81,"range":{"start_line":79,"start_character":0,"end_line":81,"end_character":26},"updated":"2016-03-18 05:18:53.000000000","message":"if r\".*assert(True|False)\\([^(any(|all()].* (in|not in) .*\\)\")\npep8 failure for cinder/tests/unit/test_emc_vmax.py\nwho help me?","commit_id":"193ec987697e88f1efaaf35c0a33a203922873b9"}],"cinder/tests/unit/test_emc_vmax.py":[{"author":{"_account_id":8358,"name":"zhangguoqing","email":"zhang.guoqing@99cloud.net","username":"zhangguoqing"},"change_message_id":"d31071dedd5f7956b72d82786282d03add9466cc","unresolved":false,"context_lines":[{"line_number":6594,"context_line":"                \u00271234567891011\u0027, arrayInfoRec[\u0027SerialNumber\u0027])"},{"line_number":6595,"context_line":"            self.assertIn("},{"line_number":6596,"context_line":"                self.data.port_group, arrayInfoRec[\u0027PortGroup\u0027])"},{"line_number":6597,"context_line":"            self.assertTrue("},{"line_number":6598,"context_line":"                self.data.poolname in arrayInfoRec[\u0027PoolName\u0027] or"},{"line_number":6599,"context_line":"                \u0027SATA_BRONZE1\u0027 in arrayInfoRec[\u0027PoolName\u0027])"},{"line_number":6600,"context_line":""},{"line_number":6601,"context_line":"    @mock.patch.object("},{"line_number":6602,"context_line":"        emc_vmax_common.EMCVMAXCommon,"}],"source_content_type":"text/x-python","patch_set":2,"id":"1af94dfe_a1b16c49","line":6599,"range":{"start_line":6597,"start_character":12,"end_line":6599,"end_character":59},"updated":"2016-03-18 05:18:53.000000000","message":"hard to filter. help!","commit_id":"193ec987697e88f1efaaf35c0a33a203922873b9"},{"author":{"_account_id":8358,"name":"zhangguoqing","email":"zhang.guoqing@99cloud.net","username":"zhangguoqing"},"change_message_id":"d31071dedd5f7956b72d82786282d03add9466cc","unresolved":false,"context_lines":[{"line_number":6883,"context_line":"            self.assertIn("},{"line_number":6884,"context_line":"                self.data.port_group, arrayInfoRec[\u0027PortGroup\u0027])"},{"line_number":6885,"context_line":"            self.assertIn(\u0027SRP_1\u0027, arrayInfoRec[\u0027PoolName\u0027])"},{"line_number":6886,"context_line":"            self.assertTrue("},{"line_number":6887,"context_line":"                \u0027Bronze\u0027 in arrayInfoRec[\u0027SLO\u0027] or"},{"line_number":6888,"context_line":"                \u0027Silver\u0027 in arrayInfoRec[\u0027SLO\u0027])"},{"line_number":6889,"context_line":""},{"line_number":6890,"context_line":"    @mock.patch.object("},{"line_number":6891,"context_line":"        emc_vmax_common.EMCVMAXCommon,"}],"source_content_type":"text/x-python","patch_set":2,"id":"1af94dfe_e1b7f437","line":6888,"range":{"start_line":6886,"start_character":12,"end_line":6888,"end_character":48},"updated":"2016-03-18 05:18:53.000000000","message":"hard to filter. help!","commit_id":"193ec987697e88f1efaaf35c0a33a203922873b9"},{"author":{"_account_id":4523,"name":"Eric Harney","email":"eharney@redhat.com","username":"eharney"},"change_message_id":"b43dfb053df757a19270a44a8eff38e75bef83d4","unresolved":false,"context_lines":[{"line_number":6885,"context_line":"            self.assertIn(\u0027SRP_1\u0027, arrayInfoRec[\u0027PoolName\u0027])"},{"line_number":6886,"context_line":"            self.assertTrue(any("},{"line_number":6887,"context_line":"                [\u0027Bronze\u0027 in arrayInfoRec[\u0027SLO\u0027],"},{"line_number":6888,"context_line":"                 \u0027Silver\u0027 in arrayInfoRec[\u0027SLO\u0027]]))"},{"line_number":6889,"context_line":""},{"line_number":6890,"context_line":"    @mock.patch.object("},{"line_number":6891,"context_line":"        emc_vmax_common.EMCVMAXCommon,"}],"source_content_type":"text/x-python","patch_set":3,"id":"fa0719c6_1517fced","line":6888,"updated":"2016-03-22 20:42:26.000000000","message":"This shouldn\u0027t be required.  Doing assertTrue(x in y or z in w) is a correct use of assertTrue.\n\nThe regex should just allow cases where there is more than one \"in\" statement to be correct.","commit_id":"26ab9628850e38a828747f926d763d26ef9c0dde"},{"author":{"_account_id":8358,"name":"zhangguoqing","email":"zhang.guoqing@99cloud.net","username":"zhangguoqing"},"change_message_id":"6ad3f506b1963ccf74534309b28fee298dd83115","unresolved":false,"context_lines":[{"line_number":6885,"context_line":"            self.assertIn(\u0027SRP_1\u0027, arrayInfoRec[\u0027PoolName\u0027])"},{"line_number":6886,"context_line":"            self.assertTrue(any("},{"line_number":6887,"context_line":"                [\u0027Bronze\u0027 in arrayInfoRec[\u0027SLO\u0027],"},{"line_number":6888,"context_line":"                 \u0027Silver\u0027 in arrayInfoRec[\u0027SLO\u0027]]))"},{"line_number":6889,"context_line":""},{"line_number":6890,"context_line":"    @mock.patch.object("},{"line_number":6891,"context_line":"        emc_vmax_common.EMCVMAXCommon,"}],"source_content_type":"text/x-python","patch_set":3,"id":"fa0719c6_82e90583","line":6888,"in_reply_to":"fa0719c6_1517fced","updated":"2016-03-23 03:00:19.000000000","message":"Yes, I have try my best to do it at the patch set 2, but I can not do perfectly.\nCould you propose a regex for this and pass unit tests simultaneously? Thank you very much. :)\n(1) ./run_tests.sh cinder.tests.unit.test_hacking.HackingTestCase.test_validate_assert_In_and_NotIn\n(2) tox -e pep8","commit_id":"26ab9628850e38a828747f926d763d26ef9c0dde"},{"author":{"_account_id":4523,"name":"Eric Harney","email":"eharney@redhat.com","username":"eharney"},"change_message_id":"a28e3bfc50d840faa78fc155de91ef157c6e7ed1","unresolved":false,"context_lines":[{"line_number":6885,"context_line":"            self.assertIn(\u0027SRP_1\u0027, arrayInfoRec[\u0027PoolName\u0027])"},{"line_number":6886,"context_line":"            self.assertTrue(any("},{"line_number":6887,"context_line":"                [\u0027Bronze\u0027 in arrayInfoRec[\u0027SLO\u0027],"},{"line_number":6888,"context_line":"                 \u0027Silver\u0027 in arrayInfoRec[\u0027SLO\u0027]]))"},{"line_number":6889,"context_line":""},{"line_number":6890,"context_line":"    @mock.patch.object("},{"line_number":6891,"context_line":"        emc_vmax_common.EMCVMAXCommon,"}],"source_content_type":"text/x-python","patch_set":3,"id":"ba0121b8_eb041d19","line":6888,"in_reply_to":"fa0719c6_82e90583","updated":"2016-03-30 15:27:25.000000000","message":"Not really, because the real answer here is that you shouldn\u0027t use regexes to try to parse python.  You need to use ast instead.","commit_id":"26ab9628850e38a828747f926d763d26ef9c0dde"},{"author":{"_account_id":4523,"name":"Eric Harney","email":"eharney@redhat.com","username":"eharney"},"change_message_id":"79b2588df2d337c32841d319d530d7393cf2150c","unresolved":false,"context_lines":[{"line_number":6900,"context_line":"            self.assertIn("},{"line_number":6901,"context_line":"                self.data.port_group, arrayInfoRec[\u0027PortGroup\u0027])"},{"line_number":6902,"context_line":"            self.assertIn(\u0027SRP_1\u0027, arrayInfoRec[\u0027PoolName\u0027])"},{"line_number":6903,"context_line":"            self.assertTrue(any("},{"line_number":6904,"context_line":"                [\u0027Bronze\u0027 in arrayInfoRec[\u0027SLO\u0027],"},{"line_number":6905,"context_line":"                 \u0027Silver\u0027 in arrayInfoRec[\u0027SLO\u0027]]))"},{"line_number":6906,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"9a061dce_b520174b","line":6903,"updated":"2016-04-04 21:05:18.000000000","message":"I\u0027d still rather not force people to write weird-looking tests like this.  It\u0027s worse than using assertTrue was when it comes to readability and ensuring correctness.","commit_id":"0bcc80a722610777c72a746f6968300d5cc2d8b1"}],"cinder/tests/unit/test_emc_vnx.py":[{"author":{"_account_id":8358,"name":"zhangguoqing","email":"zhang.guoqing@99cloud.net","username":"zhangguoqing"},"change_message_id":"edb3f3ecc9c262930b4db9647f3090e4fba69055","unresolved":false,"context_lines":[{"line_number":5607,"context_line":"        connection_info \u003d self.driver.terminate_connection("},{"line_number":5608,"context_line":"            self.testData.test_volume,"},{"line_number":5609,"context_line":"            self.testData.connector)"},{"line_number":5610,"context_line":"        self.assertTrue(\u0027initiator_target_map\u0027 in connection_info[\u0027data\u0027],"},{"line_number":5611,"context_line":"                        \u0027initiator_target_map should be populated.\u0027)"},{"line_number":5612,"context_line":"        self.assertEqual(EMCVNXCLIDriverTestData.i_t_map,"},{"line_number":5613,"context_line":"                         connection_info[\u0027data\u0027][\u0027initiator_target_map\u0027])"},{"line_number":5614,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"1af94dfe_b0c5998f","line":5611,"range":{"start_line":5610,"start_character":8,"end_line":5611,"end_character":68},"updated":"2016-03-16 14:31:06.000000000","message":"Could be replaced by assertIn()? If yes, and how to?","commit_id":"1266e5370b771b72c7c6b41214a6abafe3a493cf"},{"author":{"_account_id":11600,"name":"Michał Dulko","email":"michal.dulko@gmail.com","username":"dulek"},"change_message_id":"ca65f55820c05a636b42c98774c7b0b5db412fdc","unresolved":false,"context_lines":[{"line_number":5607,"context_line":"        connection_info \u003d self.driver.terminate_connection("},{"line_number":5608,"context_line":"            self.testData.test_volume,"},{"line_number":5609,"context_line":"            self.testData.connector)"},{"line_number":5610,"context_line":"        self.assertTrue(\u0027initiator_target_map\u0027 in connection_info[\u0027data\u0027],"},{"line_number":5611,"context_line":"                        \u0027initiator_target_map should be populated.\u0027)"},{"line_number":5612,"context_line":"        self.assertEqual(EMCVNXCLIDriverTestData.i_t_map,"},{"line_number":5613,"context_line":"                         connection_info[\u0027data\u0027][\u0027initiator_target_map\u0027])"},{"line_number":5614,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"1af94dfe_8b011d3b","line":5611,"range":{"start_line":5610,"start_character":8,"end_line":5611,"end_character":68},"in_reply_to":"1af94dfe_b0c5998f","updated":"2016-03-17 11:39:31.000000000","message":"self.assertIn(\u0027initiator_target_map\u0027, connection_info[\u0027data\u0027],\n              \u0027initiator_target_map should be populated.\u0027)\n\nmsg param of asserts is always a message that will be shown when assertion is failed.","commit_id":"1266e5370b771b72c7c6b41214a6abafe3a493cf"}]}
