)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":14810,"name":"Kan","email":"sofaopenstack@gmail.com","username":"Kan"},"change_message_id":"c4ec7a58d9c3209d546ac7cb89b690c4ac16a378","unresolved":false,"context_lines":[{"line_number":7,"context_line":"Add Sanity tests for testing actions with Driver"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Smoke tests for the Ironic CLI commands which checks basic actions"},{"line_number":10,"context_line":"with driver command: driver-list, driver-show, driver-properties."},{"line_number":11,"context_line":""},{"line_number":12,"context_line":"Change-Id: Ibf81f97c1092817abae08e4d19fb55966e94f299"},{"line_number":13,"context_line":"Implements: blueprint ironicclient-functional-tests"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":12,"id":"9a8ffd7b_9b98251d","line":10,"updated":"2015-12-02 06:33:04.000000000","message":"As the \u0027driver-list\u0027 is not included in the test cases, please remove it.","commit_id":"132add309043a804d3ed6a043d812bd358867a17"}],"ironicclient/tests/functional/base.py":[{"author":{"_account_id":14760,"name":"John L. Villalovos","email":"openstack.org@sodarock.com","username":"jlvillal"},"change_message_id":"a16e1d6d55fde5109f2cc7578f0deb6134d2637d","unresolved":false,"context_lines":[{"line_number":268,"context_line":""},{"line_number":269,"context_line":"    def get_drivers_names(self):"},{"line_number":270,"context_line":"        driver_list \u003d self.list_driver()"},{"line_number":271,"context_line":"        return map(lambda item: item[\u0027Supported driver(s)\u0027], driver_list)"}],"source_content_type":"text/x-python","patch_set":4,"id":"fa80f949_09252faa","line":271,"updated":"2015-11-03 16:26:35.000000000","message":"Can this be done with list comprehension?  I\u0027m not a fan of \u0027map\u0027 unless really needed.\n\nWould this be the same thing?\n\n return [x[\u0027Supported driver(s)\u0027] for x in driver_list]","commit_id":"460e8c6190fb399d375a9d59b677508ac4247580"},{"author":{"_account_id":12356,"name":"Vladyslav Drok","email":"vdrok@mirantis.com","username":"vdrok"},"change_message_id":"7591fd4b7a7e5ae5993072e3032360ca59479e62","unresolved":false,"context_lines":[{"line_number":207,"context_line":"    def list_driver(self, params\u003d\u0027\u0027):"},{"line_number":208,"context_line":"        return self.ironic(\u0027driver-list\u0027, params\u003dparams)"},{"line_number":209,"context_line":""},{"line_number":210,"context_line":"    def show_driver(self, params):"},{"line_number":211,"context_line":"        driver_show \u003d self.ironic(\u0027driver-show\u0027, params\u003dparams)"},{"line_number":212,"context_line":"        return utils.get_dict_from_output(driver_show)"},{"line_number":213,"context_line":""}],"source_content_type":"text/x-python","patch_set":10,"id":"ba8a016a_a3e642e6","line":210,"updated":"2015-11-23 13:49:35.000000000","message":"Please add driver_name parameter here.","commit_id":"03a931d4d896377da262bbb50e11a7bcce4eb0f0"},{"author":{"_account_id":12356,"name":"Vladyslav Drok","email":"vdrok@mirantis.com","username":"vdrok"},"change_message_id":"7591fd4b7a7e5ae5993072e3032360ca59479e62","unresolved":false,"context_lines":[{"line_number":211,"context_line":"        driver_show \u003d self.ironic(\u0027driver-show\u0027, params\u003dparams)"},{"line_number":212,"context_line":"        return utils.get_dict_from_output(driver_show)"},{"line_number":213,"context_line":""},{"line_number":214,"context_line":"    def properties_driver(self, params):"},{"line_number":215,"context_line":"        return self.ironic(\u0027driver-properties\u0027, params\u003dparams)"},{"line_number":216,"context_line":""},{"line_number":217,"context_line":"    def get_drivers_names(self):"}],"source_content_type":"text/x-python","patch_set":10,"id":"ba8a016a_63d13afb","line":214,"updated":"2015-11-23 13:49:35.000000000","message":"ditto","commit_id":"03a931d4d896377da262bbb50e11a7bcce4eb0f0"}],"ironicclient/tests/functional/test_driver.py":[{"author":{"_account_id":18893,"name":"Miles Gould","email":"mgould@redhat.com","username":"pozorvlak"},"change_message_id":"27aa69c0f546952a74e5a5e8fb8982bdeb21e930","unresolved":false,"context_lines":[{"line_number":27,"context_line":"        2) check that each driver exists in driver-list object"},{"line_number":28,"context_line":"        \"\"\""},{"line_number":29,"context_line":"        drivers_names \u003d self.get_drivers_names()"},{"line_number":30,"context_line":"        self.assertNotEqual(drivers_names, [])"},{"line_number":31,"context_line":""},{"line_number":32,"context_line":"    def test_driver_show(self):"},{"line_number":33,"context_line":"        \"\"\"Test scenario:"}],"source_content_type":"text/x-python","patch_set":7,"id":"da85f559_8d6227ac","line":30,"updated":"2015-11-10 15:19:54.000000000","message":"I don\u0027t like this test - how do we know that there must be at least one driver present? I understand that you don\u0027t want to hardcode a list that would have to be maintained, but is there no other way we could get a list of available drivers and compare it to the output of driver-list?","commit_id":"f60ddff8afbfcbd1115dc78480fa7026f4e4ba04"},{"author":{"_account_id":12356,"name":"Vladyslav Drok","email":"vdrok@mirantis.com","username":"vdrok"},"change_message_id":"6db5663a79a7151b6887acc8e394edcfcdfa54dc","unresolved":false,"context_lines":[{"line_number":27,"context_line":"        2) check that each driver exists in driver-list object"},{"line_number":28,"context_line":"        \"\"\""},{"line_number":29,"context_line":"        drivers_names \u003d self.get_drivers_names()"},{"line_number":30,"context_line":"        self.assertNotEqual(drivers_names, [])"},{"line_number":31,"context_line":""},{"line_number":32,"context_line":"    def test_driver_show(self):"},{"line_number":33,"context_line":"        \"\"\"Test scenario:"}],"source_content_type":"text/x-python","patch_set":7,"id":"da85f559_554b6587","line":30,"in_reply_to":"da85f559_8d6227ac","updated":"2015-11-10 16:47:49.000000000","message":"It seems to me that a docstring should be corrected, to smth like \u0027check that driver-list is not empty\u0027. To get the actual list of drivers to compare with driver-list output, we would need to go through all active conductors configs.","commit_id":"f60ddff8afbfcbd1115dc78480fa7026f4e4ba04"},{"author":{"_account_id":12356,"name":"Vladyslav Drok","email":"vdrok@mirantis.com","username":"vdrok"},"change_message_id":"6db5663a79a7151b6887acc8e394edcfcdfa54dc","unresolved":false,"context_lines":[{"line_number":44,"context_line":"        \"\"\"Test scenario:"},{"line_number":45,"context_line":""},{"line_number":46,"context_line":"        1) get drivers names"},{"line_number":47,"context_line":"        2) check that each driver exists in driver-properties object"},{"line_number":48,"context_line":"        \"\"\""},{"line_number":49,"context_line":"        drivers_names \u003d self.get_drivers_names()"},{"line_number":50,"context_line":"        for driver in drivers_names:"}],"source_content_type":"text/x-python","patch_set":7,"id":"da85f559_702a3780","line":47,"updated":"2015-11-10 16:47:49.000000000","message":"Maybe better to change to smth like \u0027...each driver has some properties returned by driver-properties\u0027.","commit_id":"f60ddff8afbfcbd1115dc78480fa7026f4e4ba04"},{"author":{"_account_id":13636,"name":"aarefiev","display_name":"Anton","email":"arefyevanton@gmail.com","username":"aarefiev"},"change_message_id":"2de204463b83002db8ec66a719f4165696f21fa2","unresolved":false,"context_lines":[{"line_number":19,"context_line":"    \"\"\"Sanity tests for testing actions with driver."},{"line_number":20,"context_line":""},{"line_number":21,"context_line":"    Smoke test for the Ironic CLI commands which checks basic actions with"},{"line_number":22,"context_line":"    driver command like create, show, update, delete etc."},{"line_number":23,"context_line":"    \"\"\""},{"line_number":24,"context_line":""},{"line_number":25,"context_line":"    def test_driver_list(self):"}],"source_content_type":"text/x-python","patch_set":10,"id":"ba8a016a_940b327d","line":22,"updated":"2015-11-23 14:52:47.000000000","message":"`create, show, update, delete etc.` copy paste issue","commit_id":"03a931d4d896377da262bbb50e11a7bcce4eb0f0"},{"author":{"_account_id":14614,"name":"Kyrylo Romanenko","display_name":"K.Romanenko","email":"romanenko-kv@hotmail.com","username":"kromanenko"},"change_message_id":"fbff1de9a0889c10c2d830e2c8ad373ff71a3142","unresolved":false,"context_lines":[{"line_number":26,"context_line":"        \"\"\"Test scenario:"},{"line_number":27,"context_line":""},{"line_number":28,"context_line":"        1) get drivers names"},{"line_number":29,"context_line":"        2) check that each driver exists in driver-list object"},{"line_number":30,"context_line":"        \"\"\""},{"line_number":31,"context_line":"        drivers_list \u003d self.list_driver()"},{"line_number":32,"context_line":"        drivers_names \u003d self.get_drivers_names()"}],"source_content_type":"text/x-python","patch_set":10,"id":"9a8ffd7b_8efec169","line":29,"updated":"2015-11-25 16:15:34.000000000","message":"\"in drivers list\" or \"in driver-list output\" probably you meant?","commit_id":"03a931d4d896377da262bbb50e11a7bcce4eb0f0"},{"author":{"_account_id":12356,"name":"Vladyslav Drok","email":"vdrok@mirantis.com","username":"vdrok"},"change_message_id":"7591fd4b7a7e5ae5993072e3032360ca59479e62","unresolved":false,"context_lines":[{"line_number":30,"context_line":"        \"\"\""},{"line_number":31,"context_line":"        drivers_list \u003d self.list_driver()"},{"line_number":32,"context_line":"        drivers_names \u003d self.get_drivers_names()"},{"line_number":33,"context_line":"        self.assertEqual([x[\u0027Supported driver(s)\u0027] for x in drivers_list],"},{"line_number":34,"context_line":"                         drivers_names)"},{"line_number":35,"context_line":""},{"line_number":36,"context_line":"    def test_driver_show(self):"}],"source_content_type":"text/x-python","patch_set":10,"id":"ba8a016a_232012f7","line":33,"updated":"2015-11-23 13:49:35.000000000","message":"I think this test is not needed as you do exactly the same thing as in get_drivers_names function, so the results will be equal in any case.","commit_id":"03a931d4d896377da262bbb50e11a7bcce4eb0f0"},{"author":{"_account_id":13636,"name":"aarefiev","display_name":"Anton","email":"arefyevanton@gmail.com","username":"aarefiev"},"change_message_id":"2de204463b83002db8ec66a719f4165696f21fa2","unresolved":false,"context_lines":[{"line_number":30,"context_line":"        \"\"\""},{"line_number":31,"context_line":"        drivers_list \u003d self.list_driver()"},{"line_number":32,"context_line":"        drivers_names \u003d self.get_drivers_names()"},{"line_number":33,"context_line":"        self.assertEqual([x[\u0027Supported driver(s)\u0027] for x in drivers_list],"},{"line_number":34,"context_line":"                         drivers_names)"},{"line_number":35,"context_line":""},{"line_number":36,"context_line":"    def test_driver_show(self):"}],"source_content_type":"text/x-python","patch_set":10,"id":"ba8a016a_7491ee99","line":33,"in_reply_to":"ba8a016a_232012f7","updated":"2015-11-23 14:52:47.000000000","message":"+1","commit_id":"03a931d4d896377da262bbb50e11a7bcce4eb0f0"},{"author":{"_account_id":12356,"name":"Vladyslav Drok","email":"vdrok@mirantis.com","username":"vdrok"},"change_message_id":"7591fd4b7a7e5ae5993072e3032360ca59479e62","unresolved":false,"context_lines":[{"line_number":37,"context_line":"        \"\"\"Test scenario:"},{"line_number":38,"context_line":""},{"line_number":39,"context_line":"        1) get drivers names"},{"line_number":40,"context_line":"        2) check that each driver exists in driver-show object"},{"line_number":41,"context_line":"        \"\"\""},{"line_number":42,"context_line":"        drivers_names \u003d self.get_drivers_names()"},{"line_number":43,"context_line":"        for driver in drivers_names:"}],"source_content_type":"text/x-python","patch_set":10,"id":"ba8a016a_6e35a1d9","line":40,"updated":"2015-11-23 13:49:35.000000000","message":"... exists in driver-show output","commit_id":"03a931d4d896377da262bbb50e11a7bcce4eb0f0"},{"author":{"_account_id":12356,"name":"Vladyslav Drok","email":"vdrok@mirantis.com","username":"vdrok"},"change_message_id":"7591fd4b7a7e5ae5993072e3032360ca59479e62","unresolved":false,"context_lines":[{"line_number":42,"context_line":"        drivers_names \u003d self.get_drivers_names()"},{"line_number":43,"context_line":"        for driver in drivers_names:"},{"line_number":44,"context_line":"            driver_show \u003d self.show_driver(driver)"},{"line_number":45,"context_line":"            self.assertIn(driver_show[\u0027name\u0027], drivers_names)"},{"line_number":46,"context_line":""},{"line_number":47,"context_line":"    def test_driver_properties(self):"},{"line_number":48,"context_line":"        \"\"\"Test scenario:"}],"source_content_type":"text/x-python","patch_set":10,"id":"ba8a016a_0e62d5d8","line":45,"updated":"2015-11-23 13:49:35.000000000","message":"self.assertEqual(driver, driver_show[\u0027name\u0027]) instead of assertIn","commit_id":"03a931d4d896377da262bbb50e11a7bcce4eb0f0"},{"author":{"_account_id":12356,"name":"Vladyslav Drok","email":"vdrok@mirantis.com","username":"vdrok"},"change_message_id":"7591fd4b7a7e5ae5993072e3032360ca59479e62","unresolved":false,"context_lines":[{"line_number":48,"context_line":"        \"\"\"Test scenario:"},{"line_number":49,"context_line":""},{"line_number":50,"context_line":"        1) get drivers names"},{"line_number":51,"context_line":"        2) check that each driver exists in driver-properties object"},{"line_number":52,"context_line":"        \"\"\""},{"line_number":53,"context_line":"        drivers_names \u003d self.get_drivers_names()"},{"line_number":54,"context_line":"        for driver in drivers_names:"}],"source_content_type":"text/x-python","patch_set":10,"id":"ba8a016a_635e1a47","line":51,"updated":"2015-11-23 13:49:35.000000000","message":"check that each driver has some properties.","commit_id":"03a931d4d896377da262bbb50e11a7bcce4eb0f0"},{"author":{"_account_id":14810,"name":"Kan","email":"sofaopenstack@gmail.com","username":"Kan"},"change_message_id":"c4ec7a58d9c3209d546ac7cb89b690c4ac16a378","unresolved":false,"context_lines":[{"line_number":19,"context_line":"    \"\"\"Sanity tests for testing actions with driver."},{"line_number":20,"context_line":""},{"line_number":21,"context_line":"    Smoke test for the Ironic CLI commands which checks basic actions with"},{"line_number":22,"context_line":"    driver command like driver- show, driver-properties."},{"line_number":23,"context_line":"    \"\"\""},{"line_number":24,"context_line":""},{"line_number":25,"context_line":"    def test_driver_show(self):"}],"source_content_type":"text/x-python","patch_set":12,"id":"9a8ffd7b_1b9f5551","line":22,"updated":"2015-12-02 06:33:04.000000000","message":"s/driver- show/driver-show","commit_id":"132add309043a804d3ed6a043d812bd358867a17"},{"author":{"_account_id":12356,"name":"Vladyslav Drok","email":"vdrok@mirantis.com","username":"vdrok"},"change_message_id":"835c75688e8a2ba0e98e5e85d0b212b4e20a9a4b","unresolved":false,"context_lines":[{"line_number":42,"context_line":"        drivers_names \u003d self.get_drivers_names()"},{"line_number":43,"context_line":"        for driver in drivers_names:"},{"line_number":44,"context_line":"            driver_properties \u003d self.properties_driver(driver)"},{"line_number":45,"context_line":"            self.assertNotEqual([x[\u0027Property\u0027] for x in driver_properties], [])"}],"source_content_type":"text/x-python","patch_set":14,"id":"1a7b0d38_5b13745b","line":45,"updated":"2015-12-28 16:41:56.000000000","message":"nit - [] should be the first argument","commit_id":"324efd90373c580142f16763e8b5915c1840bd1d"}],"ironicclient/tests/functional/test_driver_ironicclient.py":[{"author":{"_account_id":18893,"name":"Miles Gould","email":"mgould@redhat.com","username":"pozorvlak"},"change_message_id":"8fea29cf3ca50ec42e6b8eb9d9369b203d83e9c9","unresolved":false,"context_lines":[{"line_number":24,"context_line":"        \"\"\"Test scenario:"},{"line_number":25,"context_line":""},{"line_number":26,"context_line":"        1)get driver list"},{"line_number":27,"context_line":"        2) check that drivers exists in driver-list object"},{"line_number":28,"context_line":"        \"\"\""},{"line_number":29,"context_line":"        driver_list \u003d self.list_driver()"},{"line_number":30,"context_line":"        drivers_names \u003d map(lambda item: item[\u0027Supported driver(s)\u0027],"}],"source_content_type":"text/x-python","patch_set":2,"id":"fa80f949_0818d083","line":27,"updated":"2015-11-03 15:12:52.000000000","message":"Grammar nitpick: \"drivers exists\" should be \"drivers exist\".","commit_id":"7b6f6621149cc573e8203bc4d2d615cfa588335c"},{"author":{"_account_id":18893,"name":"Miles Gould","email":"mgould@redhat.com","username":"pozorvlak"},"change_message_id":"8fea29cf3ca50ec42e6b8eb9d9369b203d83e9c9","unresolved":false,"context_lines":[{"line_number":26,"context_line":"        1)get driver list"},{"line_number":27,"context_line":"        2) check that drivers exists in driver-list object"},{"line_number":28,"context_line":"        \"\"\""},{"line_number":29,"context_line":"        driver_list \u003d self.list_driver()"},{"line_number":30,"context_line":"        drivers_names \u003d map(lambda item: item[\u0027Supported driver(s)\u0027],"},{"line_number":31,"context_line":"                            driver_list)"},{"line_number":32,"context_line":"        self.assertEqual([\u0027fake\u0027, \u0027fuel_ipmitool\u0027, \u0027fuel_ssh\u0027], drivers_names)"}],"source_content_type":"text/x-python","patch_set":2,"id":"fa80f949_039bd1ca","line":29,"updated":"2015-11-03 15:12:52.000000000","message":"You use these three lines three times - I\u0027d factor them out into a helper method driver_names(). Not a big deal in test code, though.","commit_id":"7b6f6621149cc573e8203bc4d2d615cfa588335c"},{"author":{"_account_id":18893,"name":"Miles Gould","email":"mgould@redhat.com","username":"pozorvlak"},"change_message_id":"8fea29cf3ca50ec42e6b8eb9d9369b203d83e9c9","unresolved":false,"context_lines":[{"line_number":50,"context_line":""},{"line_number":51,"context_line":"        1) get driver list"},{"line_number":52,"context_line":"        2) select driver from the list"},{"line_number":53,"context_line":"        2) check that driver exists in driver-properties oobject"},{"line_number":54,"context_line":"        \"\"\""},{"line_number":55,"context_line":"        driver_list \u003d self.list_driver()"},{"line_number":56,"context_line":"        drivers_names \u003d map(lambda item: item[\u0027Supported driver(s)\u0027],"}],"source_content_type":"text/x-python","patch_set":2,"id":"fa80f949_a310c54f","line":53,"updated":"2015-11-03 15:12:52.000000000","message":"Typo: \"object\".","commit_id":"7b6f6621149cc573e8203bc4d2d615cfa588335c"},{"author":{"_account_id":14760,"name":"John L. Villalovos","email":"openstack.org@sodarock.com","username":"jlvillal"},"change_message_id":"7e2ab983e2a2828eb12639cbb5012a1e6456a41b","unresolved":false,"context_lines":[{"line_number":49,"context_line":"        drivers_names \u003d self.get_drivers_names()"},{"line_number":50,"context_line":"        for driver in drivers_names:"},{"line_number":51,"context_line":"            driver_properties \u003d self.properties_driver(driver)"},{"line_number":52,"context_line":"            self.assertNotEqual(map(lambda item: item[\u0027Property\u0027],"},{"line_number":53,"context_line":"                                    driver_properties), [])"}],"source_content_type":"text/x-python","patch_set":4,"id":"fa80f949_c9c16782","line":52,"updated":"2015-11-03 16:29:03.000000000","message":"Also here. Please use list comprehension.","commit_id":"460e8c6190fb399d375a9d59b677508ac4247580"}]}
