)]}'
{"tempest/api/image/v2/test_images.py":[{"author":{"_account_id":7350,"name":"Jordan Pittier","email":"jordan.pittier@gmail.com","username":"JordanP"},"change_message_id":"2da9ab8f26cfa9f816d03da9788b1f18f7a8e33e","unresolved":false,"context_lines":[{"line_number":160,"context_line":"                      \"(Container format: %s, Disk format: %s).\","},{"line_number":161,"context_line":"                      container_fmt, disk_fmt)"},{"line_number":162,"context_line":"            cls._create_standard_image(container_fmt, disk_fmt)"},{"line_number":163,"context_line":"        # Share one of the images created with the alt user"},{"line_number":164,"context_line":"        cls.client.create_image_member(image_id\u003dcls.test_data[\u0027id\u0027],"},{"line_number":165,"context_line":"                                       member\u003dcls.alt_img_client.tenant_id)"},{"line_number":166,"context_line":"        cls.test_data[\u0027updated_at\u0027] \u003d cls.client.show_image("}],"source_content_type":"text/x-python","patch_set":3,"id":"bab6814e_fd1c2c6c","line":163,"updated":"2016-05-24 14:10:34.000000000","message":"Move this line where it\u0027s actually used: in the single test that use it. There\u0027s no need to do something in the resource_setup() method if it\u0027s only going to be used once.","commit_id":"b97733e3e826351975c1fb01977b243989b5772e"},{"author":{"_account_id":9152,"name":"Castulo J. Martinez","email":"castulo.martinez@intel.com","username":"cas"},"change_message_id":"5355a5190f06048a8a846d6b83756b315bb21e54","unresolved":false,"context_lines":[{"line_number":160,"context_line":"                      \"(Container format: %s, Disk format: %s).\","},{"line_number":161,"context_line":"                      container_fmt, disk_fmt)"},{"line_number":162,"context_line":"            cls._create_standard_image(container_fmt, disk_fmt)"},{"line_number":163,"context_line":"        # Share one of the images created with the alt user"},{"line_number":164,"context_line":"        cls.client.create_image_member(image_id\u003dcls.test_data[\u0027id\u0027],"},{"line_number":165,"context_line":"                                       member\u003dcls.alt_img_client.tenant_id)"},{"line_number":166,"context_line":"        cls.test_data[\u0027updated_at\u0027] \u003d cls.client.show_image("}],"source_content_type":"text/x-python","patch_set":3,"id":"bab6814e_3e5500c6","line":163,"in_reply_to":"bab6814e_fd1c2c6c","updated":"2016-05-24 17:58:44.000000000","message":"Thanks for reviewing Jason. I think it is cleaner to have a setup step in the setup area even though it is just one, that way the test only tests that one thing that is intended to test, but if you think it makes more sense to have in the test case itself I\u0027m ok with that. I will move it there.","commit_id":"b97733e3e826351975c1fb01977b243989b5772e"},{"author":{"_account_id":7350,"name":"Jordan Pittier","email":"jordan.pittier@gmail.com","username":"JordanP"},"change_message_id":"2da9ab8f26cfa9f816d03da9788b1f18f7a8e33e","unresolved":false,"context_lines":[{"line_number":209,"context_line":"                else:"},{"line_number":210,"context_line":"                    self.assertEqual(params[key], image[key], msg)"},{"line_number":211,"context_line":""},{"line_number":212,"context_line":"    def _list_by_sorted_value_and_assert(self, params):"},{"line_number":213,"context_line":"        # Retrieve the list of images that meet the filter"},{"line_number":214,"context_line":"        images_list \u003d self.client.list_images(params\u003dparams)[\u0027images\u0027]"},{"line_number":215,"context_line":"        # Validate that the list was fetched sorted accordingly"}],"source_content_type":"text/x-python","patch_set":3,"id":"bab6814e_1d78108f","line":212,"updated":"2016-05-24 14:10:34.000000000","message":"This method is misnamed. It will only sort by image_size.","commit_id":"b97733e3e826351975c1fb01977b243989b5772e"},{"author":{"_account_id":9152,"name":"Castulo J. Martinez","email":"castulo.martinez@intel.com","username":"cas"},"change_message_id":"5355a5190f06048a8a846d6b83756b315bb21e54","unresolved":false,"context_lines":[{"line_number":209,"context_line":"                else:"},{"line_number":210,"context_line":"                    self.assertEqual(params[key], image[key], msg)"},{"line_number":211,"context_line":""},{"line_number":212,"context_line":"    def _list_by_sorted_value_and_assert(self, params):"},{"line_number":213,"context_line":"        # Retrieve the list of images that meet the filter"},{"line_number":214,"context_line":"        images_list \u003d self.client.list_images(params\u003dparams)[\u0027images\u0027]"},{"line_number":215,"context_line":"        # Validate that the list was fetched sorted accordingly"}],"source_content_type":"text/x-python","patch_set":3,"id":"bab6814e_9e5cecee","line":212,"in_reply_to":"bab6814e_1d78108f","updated":"2016-05-24 17:58:44.000000000","message":"You are right. Will rename.","commit_id":"b97733e3e826351975c1fb01977b243989b5772e"},{"author":{"_account_id":7350,"name":"Jordan Pittier","email":"jordan.pittier@gmail.com","username":"JordanP"},"change_message_id":"2da9ab8f26cfa9f816d03da9788b1f18f7a8e33e","unresolved":false,"context_lines":[{"line_number":233,"context_line":"    @test.idempotent_id(\u00279959ca1d-1aa7-4b7a-a1ea-0fff0499b37e\u0027)"},{"line_number":234,"context_line":"    def test_list_images_param_container_format(self):"},{"line_number":235,"context_line":"        # Test to get all images with a specific container_format"},{"line_number":236,"context_line":"        params \u003d {\"container_format\": self.test_data[\u0027container_format\u0027]}"},{"line_number":237,"context_line":"        self._list_by_param_value_and_assert(params)"},{"line_number":238,"context_line":""},{"line_number":239,"context_line":"    @test.idempotent_id(\u00274a4735a7-f22f-49b6-b0d9-66e1ef7453eb\u0027)"}],"source_content_type":"text/x-python","patch_set":3,"id":"bab6814e_e2e12b9c","line":236,"updated":"2016-05-24 14:10:34.000000000","message":"You are mixing 2 things. If you want to add new tests to glance v2 then you shouldn\"t touch any of the existing tests. Please don\u0027t change that test.","commit_id":"b97733e3e826351975c1fb01977b243989b5772e"},{"author":{"_account_id":9152,"name":"Castulo J. Martinez","email":"castulo.martinez@intel.com","username":"cas"},"change_message_id":"5355a5190f06048a8a846d6b83756b315bb21e54","unresolved":false,"context_lines":[{"line_number":233,"context_line":"    @test.idempotent_id(\u00279959ca1d-1aa7-4b7a-a1ea-0fff0499b37e\u0027)"},{"line_number":234,"context_line":"    def test_list_images_param_container_format(self):"},{"line_number":235,"context_line":"        # Test to get all images with a specific container_format"},{"line_number":236,"context_line":"        params \u003d {\"container_format\": self.test_data[\u0027container_format\u0027]}"},{"line_number":237,"context_line":"        self._list_by_param_value_and_assert(params)"},{"line_number":238,"context_line":""},{"line_number":239,"context_line":"    @test.idempotent_id(\u00274a4735a7-f22f-49b6-b0d9-66e1ef7453eb\u0027)"}],"source_content_type":"text/x-python","patch_set":3,"id":"bab6814e_fe25380a","line":236,"in_reply_to":"bab6814e_e2e12b9c","updated":"2016-05-24 17:58:44.000000000","message":"Done","commit_id":"b97733e3e826351975c1fb01977b243989b5772e"},{"author":{"_account_id":7350,"name":"Jordan Pittier","email":"jordan.pittier@gmail.com","username":"JordanP"},"change_message_id":"2da9ab8f26cfa9f816d03da9788b1f18f7a8e33e","unresolved":false,"context_lines":[{"line_number":239,"context_line":"    @test.idempotent_id(\u00274a4735a7-f22f-49b6-b0d9-66e1ef7453eb\u0027)"},{"line_number":240,"context_line":"    def test_list_images_param_disk_format(self):"},{"line_number":241,"context_line":"        # Test to get all images with a specific disk_format"},{"line_number":242,"context_line":"        params \u003d {\"disk_format\": self.test_data[\u0027disk_format\u0027]}"},{"line_number":243,"context_line":"        self._list_by_param_value_and_assert(params)"},{"line_number":244,"context_line":""},{"line_number":245,"context_line":"    @test.idempotent_id(\u00277a95bb92-d99e-4b12-9718-7bc6ab73e6d2\u0027)"}],"source_content_type":"text/x-python","patch_set":3,"id":"bab6814e_22f21370","line":242,"updated":"2016-05-24 14:10:34.000000000","message":"You are mixing 2 things. If you want to add new tests to glance v2 then you shouldn\"t touch any of the existing tests. Please don\u0027t change that test.","commit_id":"b97733e3e826351975c1fb01977b243989b5772e"},{"author":{"_account_id":9152,"name":"Castulo J. Martinez","email":"castulo.martinez@intel.com","username":"cas"},"change_message_id":"5355a5190f06048a8a846d6b83756b315bb21e54","unresolved":false,"context_lines":[{"line_number":239,"context_line":"    @test.idempotent_id(\u00274a4735a7-f22f-49b6-b0d9-66e1ef7453eb\u0027)"},{"line_number":240,"context_line":"    def test_list_images_param_disk_format(self):"},{"line_number":241,"context_line":"        # Test to get all images with a specific disk_format"},{"line_number":242,"context_line":"        params \u003d {\"disk_format\": self.test_data[\u0027disk_format\u0027]}"},{"line_number":243,"context_line":"        self._list_by_param_value_and_assert(params)"},{"line_number":244,"context_line":""},{"line_number":245,"context_line":"    @test.idempotent_id(\u00277a95bb92-d99e-4b12-9718-7bc6ab73e6d2\u0027)"}],"source_content_type":"text/x-python","patch_set":3,"id":"bab6814e_de22f400","line":242,"in_reply_to":"bab6814e_22f21370","updated":"2016-05-24 17:58:44.000000000","message":"Done","commit_id":"b97733e3e826351975c1fb01977b243989b5772e"},{"author":{"_account_id":7350,"name":"Jordan Pittier","email":"jordan.pittier@gmail.com","username":"JordanP"},"change_message_id":"2da9ab8f26cfa9f816d03da9788b1f18f7a8e33e","unresolved":false,"context_lines":[{"line_number":245,"context_line":"    @test.idempotent_id(\u00277a95bb92-d99e-4b12-9718-7bc6ab73e6d2\u0027)"},{"line_number":246,"context_line":"    def test_list_images_param_visibility(self):"},{"line_number":247,"context_line":"        # Test to get all images with a specific visibility value"},{"line_number":248,"context_line":"        params \u003d {\"visibility\": self.test_data[\u0027visibility\u0027]}"},{"line_number":249,"context_line":"        self._list_by_param_value_and_assert(params)"},{"line_number":250,"context_line":""},{"line_number":251,"context_line":"    @test.idempotent_id(\u0027cf1b9a48-8340-480e-af7b-fe7e17690876\u0027)"}],"source_content_type":"text/x-python","patch_set":3,"id":"bab6814e_82e77fab","line":248,"updated":"2016-05-24 14:10:34.000000000","message":"You are mixing 2 things. If you want to add new tests to glance v2 then you shouldn\"t touch any of the existing tests. Please don\u0027t change that test.","commit_id":"b97733e3e826351975c1fb01977b243989b5772e"},{"author":{"_account_id":9152,"name":"Castulo J. Martinez","email":"castulo.martinez@intel.com","username":"cas"},"change_message_id":"5355a5190f06048a8a846d6b83756b315bb21e54","unresolved":false,"context_lines":[{"line_number":245,"context_line":"    @test.idempotent_id(\u00277a95bb92-d99e-4b12-9718-7bc6ab73e6d2\u0027)"},{"line_number":246,"context_line":"    def test_list_images_param_visibility(self):"},{"line_number":247,"context_line":"        # Test to get all images with a specific visibility value"},{"line_number":248,"context_line":"        params \u003d {\"visibility\": self.test_data[\u0027visibility\u0027]}"},{"line_number":249,"context_line":"        self._list_by_param_value_and_assert(params)"},{"line_number":250,"context_line":""},{"line_number":251,"context_line":"    @test.idempotent_id(\u0027cf1b9a48-8340-480e-af7b-fe7e17690876\u0027)"}],"source_content_type":"text/x-python","patch_set":3,"id":"bab6814e_3e2060f7","line":248,"in_reply_to":"bab6814e_82e77fab","updated":"2016-05-24 17:58:44.000000000","message":"Done","commit_id":"b97733e3e826351975c1fb01977b243989b5772e"},{"author":{"_account_id":7350,"name":"Jordan Pittier","email":"jordan.pittier@gmail.com","username":"JordanP"},"change_message_id":"2da9ab8f26cfa9f816d03da9788b1f18f7a8e33e","unresolved":false,"context_lines":[{"line_number":251,"context_line":"    @test.idempotent_id(\u0027cf1b9a48-8340-480e-af7b-fe7e17690876\u0027)"},{"line_number":252,"context_line":"    def test_list_images_param_size(self):"},{"line_number":253,"context_line":"        # Test to get all images by size"},{"line_number":254,"context_line":"        params \u003d {\"size\": self.test_data[\u0027size\u0027]}"},{"line_number":255,"context_line":"        self._list_by_param_value_and_assert(params)"},{"line_number":256,"context_line":""},{"line_number":257,"context_line":"    @test.idempotent_id(\u00274ad8c157-971a-4ba8-aa84-ed61154b1e7f\u0027)"}],"source_content_type":"text/x-python","patch_set":3,"id":"bab6814e_c201873b","line":254,"updated":"2016-05-24 14:10:34.000000000","message":"You are mixing 2 things. If you want to add new tests to glance v2 then you shouldn\"t touch any of the existing tests. Please don\u0027t change that test.","commit_id":"b97733e3e826351975c1fb01977b243989b5772e"},{"author":{"_account_id":9152,"name":"Castulo J. Martinez","email":"castulo.martinez@intel.com","username":"cas"},"change_message_id":"5355a5190f06048a8a846d6b83756b315bb21e54","unresolved":false,"context_lines":[{"line_number":251,"context_line":"    @test.idempotent_id(\u0027cf1b9a48-8340-480e-af7b-fe7e17690876\u0027)"},{"line_number":252,"context_line":"    def test_list_images_param_size(self):"},{"line_number":253,"context_line":"        # Test to get all images by size"},{"line_number":254,"context_line":"        params \u003d {\"size\": self.test_data[\u0027size\u0027]}"},{"line_number":255,"context_line":"        self._list_by_param_value_and_assert(params)"},{"line_number":256,"context_line":""},{"line_number":257,"context_line":"    @test.idempotent_id(\u00274ad8c157-971a-4ba8-aa84-ed61154b1e7f\u0027)"}],"source_content_type":"text/x-python","patch_set":3,"id":"bab6814e_5e7d64e6","line":254,"in_reply_to":"bab6814e_c201873b","updated":"2016-05-24 17:58:44.000000000","message":"Done","commit_id":"b97733e3e826351975c1fb01977b243989b5772e"},{"author":{"_account_id":7350,"name":"Jordan Pittier","email":"jordan.pittier@gmail.com","username":"JordanP"},"change_message_id":"2da9ab8f26cfa9f816d03da9788b1f18f7a8e33e","unresolved":false,"context_lines":[{"line_number":257,"context_line":"    @test.idempotent_id(\u00274ad8c157-971a-4ba8-aa84-ed61154b1e7f\u0027)"},{"line_number":258,"context_line":"    def test_list_images_param_min_max_size(self):"},{"line_number":259,"context_line":"        # Test to get all images with size between a range"},{"line_number":260,"context_line":"        size \u003d self.test_data[\u0027size\u0027]"},{"line_number":261,"context_line":"        params \u003d {\"size_min\": size - 500, \"size_max\": size + 500}"},{"line_number":262,"context_line":"        images_list \u003d self.client.list_images(params\u003dparams)[\u0027images\u0027]"},{"line_number":263,"context_line":"        image_size_list \u003d map(lambda x: x[\u0027size\u0027], images_list)"}],"source_content_type":"text/x-python","patch_set":3,"id":"bab6814e_02fc2f3d","line":260,"updated":"2016-05-24 14:10:34.000000000","message":"You are mixing 2 things. If you want to add new tests to glance v2 then you shouldn\"t touch any of the existing tests. Please don\u0027t change that test.","commit_id":"b97733e3e826351975c1fb01977b243989b5772e"},{"author":{"_account_id":9152,"name":"Castulo J. Martinez","email":"castulo.martinez@intel.com","username":"cas"},"change_message_id":"5355a5190f06048a8a846d6b83756b315bb21e54","unresolved":false,"context_lines":[{"line_number":257,"context_line":"    @test.idempotent_id(\u00274ad8c157-971a-4ba8-aa84-ed61154b1e7f\u0027)"},{"line_number":258,"context_line":"    def test_list_images_param_min_max_size(self):"},{"line_number":259,"context_line":"        # Test to get all images with size between a range"},{"line_number":260,"context_line":"        size \u003d self.test_data[\u0027size\u0027]"},{"line_number":261,"context_line":"        params \u003d {\"size_min\": size - 500, \"size_max\": size + 500}"},{"line_number":262,"context_line":"        images_list \u003d self.client.list_images(params\u003dparams)[\u0027images\u0027]"},{"line_number":263,"context_line":"        image_size_list \u003d map(lambda x: x[\u0027size\u0027], images_list)"}],"source_content_type":"text/x-python","patch_set":3,"id":"bab6814e_9e87ccd6","line":260,"in_reply_to":"bab6814e_02fc2f3d","updated":"2016-05-24 17:58:44.000000000","message":"Done","commit_id":"b97733e3e826351975c1fb01977b243989b5772e"},{"author":{"_account_id":7350,"name":"Jordan Pittier","email":"jordan.pittier@gmail.com","username":"JordanP"},"change_message_id":"a839873bee83fe2b8a374466393abbd3abb29015","unresolved":false,"context_lines":[{"line_number":228,"context_line":"    @test.idempotent_id(\u00279959ca1d-1aa7-4b7a-a1ea-0fff0499b37e\u0027)"},{"line_number":229,"context_line":"    def test_list_images_param_container_format(self):"},{"line_number":230,"context_line":"        # Test to get all images with container_format\u003d\u0027bare\u0027"},{"line_number":231,"context_line":"        params \u003d {\"container_format\": self.test_data[\u0027container_format\u0027]}"},{"line_number":232,"context_line":"        self._list_by_param_value_and_assert(params)"},{"line_number":233,"context_line":""},{"line_number":234,"context_line":"    @test.idempotent_id(\u00274a4735a7-f22f-49b6-b0d9-66e1ef7453eb\u0027)"}],"source_content_type":"text/x-python","patch_set":5,"id":"bab6814e_39977e49","line":231,"updated":"2016-05-26 09:00:17.000000000","message":"Why did you change that test ?","commit_id":"782196cc95570f9d895c01420ee8fef7c61f8f68"},{"author":{"_account_id":9152,"name":"Castulo J. Martinez","email":"castulo.martinez@intel.com","username":"cas"},"change_message_id":"a910f82cfdd3d9d9b12a691620f2dabcc5e8c812","unresolved":false,"context_lines":[{"line_number":228,"context_line":"    @test.idempotent_id(\u00279959ca1d-1aa7-4b7a-a1ea-0fff0499b37e\u0027)"},{"line_number":229,"context_line":"    def test_list_images_param_container_format(self):"},{"line_number":230,"context_line":"        # Test to get all images with container_format\u003d\u0027bare\u0027"},{"line_number":231,"context_line":"        params \u003d {\"container_format\": self.test_data[\u0027container_format\u0027]}"},{"line_number":232,"context_line":"        self._list_by_param_value_and_assert(params)"},{"line_number":233,"context_line":""},{"line_number":234,"context_line":"    @test.idempotent_id(\u00274a4735a7-f22f-49b6-b0d9-66e1ef7453eb\u0027)"}],"source_content_type":"text/x-python","patch_set":5,"id":"bab6814e_7243c9af","line":231,"in_reply_to":"bab6814e_39977e49","updated":"2016-05-26 21:28:08.000000000","message":"I changed this one test because I modified the _list_by_param_value_and_assert by adding a check to make sure the filtered list is not empty since we are always expecting at least one value to be listed. This test started failing at the gate, and it had the value for container_format hardcoded to \"bare\" so I thought this was causing the test to fail since no image could be found that met that criteria. \nBut now after re-reviewing this I see the default formats used to create the test images are [\u0027ami\u0027, \u0027ari\u0027, \u0027aki\u0027, \u0027bare\u0027, \u0027ovf\u0027, \u0027ova\u0027], therefore using \"bare\" to filter should return at least one image in the list, so the test should still work as it was. anyway for some reason is returning an empty list. I\u0027ll return it back to the hardcoded value and will investigate what is causing the test to end up with an empty list.","commit_id":"782196cc95570f9d895c01420ee8fef7c61f8f68"},{"author":{"_account_id":7350,"name":"Jordan Pittier","email":"jordan.pittier@gmail.com","username":"JordanP"},"change_message_id":"a839873bee83fe2b8a374466393abbd3abb29015","unresolved":false,"context_lines":[{"line_number":248,"context_line":"        # Test to get all images by size"},{"line_number":249,"context_line":"        image_id \u003d self.created_images[0]"},{"line_number":250,"context_line":"        # Get image metadata"},{"line_number":251,"context_line":"        image \u003d self.client.show_image(image_id)"},{"line_number":252,"context_line":"        params \u003d {\"size\": image[\u0027size\u0027]}"},{"line_number":253,"context_line":"        self._list_by_param_value_and_assert(params)"},{"line_number":254,"context_line":""}],"source_content_type":"text/x-python","patch_set":5,"id":"bab6814e_99a78abc","line":251,"updated":"2016-05-26 09:00:17.000000000","message":"Why did you remove that empty line ? It\u0027s not related to your commit.","commit_id":"782196cc95570f9d895c01420ee8fef7c61f8f68"},{"author":{"_account_id":9152,"name":"Castulo J. Martinez","email":"castulo.martinez@intel.com","username":"cas"},"change_message_id":"a910f82cfdd3d9d9b12a691620f2dabcc5e8c812","unresolved":false,"context_lines":[{"line_number":248,"context_line":"        # Test to get all images by size"},{"line_number":249,"context_line":"        image_id \u003d self.created_images[0]"},{"line_number":250,"context_line":"        # Get image metadata"},{"line_number":251,"context_line":"        image \u003d self.client.show_image(image_id)"},{"line_number":252,"context_line":"        params \u003d {\"size\": image[\u0027size\u0027]}"},{"line_number":253,"context_line":"        self._list_by_param_value_and_assert(params)"},{"line_number":254,"context_line":""}],"source_content_type":"text/x-python","patch_set":5,"id":"bab6814e_74a292fd","line":251,"in_reply_to":"bab6814e_99a78abc","updated":"2016-05-26 21:28:08.000000000","message":"Done","commit_id":"782196cc95570f9d895c01420ee8fef7c61f8f68"},{"author":{"_account_id":9152,"name":"Castulo J. Martinez","email":"castulo.martinez@intel.com","username":"cas"},"change_message_id":"388426680e182bd45fb1c9dffb462f193d1e03b1","unresolved":false,"context_lines":[{"line_number":228,"context_line":"    @test.idempotent_id(\u00279959ca1d-1aa7-4b7a-a1ea-0fff0499b37e\u0027)"},{"line_number":229,"context_line":"    def test_list_images_param_container_format(self):"},{"line_number":230,"context_line":"        # Test to get all images with container_format\u003d\u0027bare\u0027"},{"line_number":231,"context_line":"        params \u003d {\"container_format\": \"bare\"}"},{"line_number":232,"context_line":"        self._list_by_param_value_and_assert(params)"},{"line_number":233,"context_line":""},{"line_number":234,"context_line":"    @test.idempotent_id(\u00274a4735a7-f22f-49b6-b0d9-66e1ef7453eb\u0027)"}],"source_content_type":"text/x-python","patch_set":6,"id":"9abb7d3a_6f0e4d3c","line":231,"range":{"start_line":231,"start_character":38,"end_line":231,"end_character":44},"updated":"2016-05-31 18:23:06.000000000","message":"After further investigating why this test is failing at the check queue,  turns out this test is incorrect and it needs to be modified so it can pass the test. The way it is right now, the test is trying to list all images filtering for those with container_format equal to \"bare\", but in the devstack environments at the gate there are no images with that container_format. So it is necessary to change the hardcoded value of \"bare\" and replace it with a container format that we know i is going to return at least one image.","commit_id":"6ac60587d497bbe25337188c62de76fe5f91eb7b"},{"author":{"_account_id":7350,"name":"Jordan Pittier","email":"jordan.pittier@gmail.com","username":"JordanP"},"change_message_id":"d9b5cae23bc09b6ccc01f4180c6a1f45866e2e3f","unresolved":false,"context_lines":[{"line_number":198,"context_line":"            for key in params:"},{"line_number":199,"context_line":"                msg \u003d \"Failed to list images by %s\" % key"},{"line_number":200,"context_line":"                if key in [\u0027created_at\u0027, \u0027updated_at\u0027]:"},{"line_number":201,"context_line":"                    # Remove the operator from the value if t has it"},{"line_number":202,"context_line":"                    # before comparing"},{"line_number":203,"context_line":"                    self.assertEqual(params[key].replace(\u0027eq:\u0027, \u0027\u0027),"},{"line_number":204,"context_line":"                                     image[key], msg)"}],"source_content_type":"text/x-python","patch_set":10,"id":"5a9d85d2_b0e76d11","line":201,"updated":"2016-06-20 16:19:43.000000000","message":"Typo.","commit_id":"02c0254866ee5f0409b4d1a379540ddff0518e32"},{"author":{"_account_id":9152,"name":"Castulo J. Martinez","email":"castulo.martinez@intel.com","username":"cas"},"change_message_id":"54839ba7940203ebef9fb71b9ddfce881769a31f","unresolved":false,"context_lines":[{"line_number":198,"context_line":"            for key in params:"},{"line_number":199,"context_line":"                msg \u003d \"Failed to list images by %s\" % key"},{"line_number":200,"context_line":"                if key in [\u0027created_at\u0027, \u0027updated_at\u0027]:"},{"line_number":201,"context_line":"                    # Remove the operator from the value if t has it"},{"line_number":202,"context_line":"                    # before comparing"},{"line_number":203,"context_line":"                    self.assertEqual(params[key].replace(\u0027eq:\u0027, \u0027\u0027),"},{"line_number":204,"context_line":"                                     image[key], msg)"}],"source_content_type":"text/x-python","patch_set":10,"id":"5a9d85d2_33f09e90","line":201,"in_reply_to":"5a9d85d2_b0e76d11","updated":"2016-06-22 19:43:31.000000000","message":"I will remove that whole if for the moment, that was only used to assert the tests that used the created_at and updated_at filters, but I will remove those tests for now until the bug 1588007 in glance gets resolved.","commit_id":"02c0254866ee5f0409b4d1a379540ddff0518e32"},{"author":{"_account_id":17716,"name":"Luz Cazares","email":"luz.cazares@intel.com","username":"luzcazares"},"change_message_id":"d2c8fa17acbcac59a832ba9b8c69c60c028c324e","unresolved":false,"context_lines":[{"line_number":207,"context_line":"        for image in images_list:"},{"line_number":208,"context_line":"            sorted_list.append(image[\u0027size\u0027])"},{"line_number":209,"context_line":"        msg \u003d \u0027The list of images was not sorted correctly.\u0027"},{"line_number":210,"context_line":"        self.assertEqual(sorted_list, sorted(sorted_list, reverse\u003dTrue), msg)"},{"line_number":211,"context_line":""},{"line_number":212,"context_line":"    @test.idempotent_id(\u00271e341d7a-90a9-494c-b143-2cdf2aeb6aee\u0027)"},{"line_number":213,"context_line":"    def test_list_no_params(self):"}],"source_content_type":"text/x-python","patch_set":14,"id":"1aa78d24_703e1329","line":210,"range":{"start_line":210,"start_character":25,"end_line":210,"end_character":71},"updated":"2016-07-06 19:48:46.000000000","message":"As per testtools, assertEqual parameter order should be: \"expected, observed, message\u003d\u0027\u0027... \nin this case assertEqual(sorted(sorted_list, reverse\u003dTrue), sorted_list, msg)","commit_id":"979406c0ddcced43b17b3af44ecf6961f3b75f3a"},{"author":{"_account_id":9152,"name":"Castulo J. Martinez","email":"castulo.martinez@intel.com","username":"cas"},"change_message_id":"8f5762c4a4079189897b5b3832d36d25f2563875","unresolved":false,"context_lines":[{"line_number":207,"context_line":"        for image in images_list:"},{"line_number":208,"context_line":"            sorted_list.append(image[\u0027size\u0027])"},{"line_number":209,"context_line":"        msg \u003d \u0027The list of images was not sorted correctly.\u0027"},{"line_number":210,"context_line":"        self.assertEqual(sorted_list, sorted(sorted_list, reverse\u003dTrue), msg)"},{"line_number":211,"context_line":""},{"line_number":212,"context_line":"    @test.idempotent_id(\u00271e341d7a-90a9-494c-b143-2cdf2aeb6aee\u0027)"},{"line_number":213,"context_line":"    def test_list_no_params(self):"}],"source_content_type":"text/x-python","patch_set":14,"id":"1aa78d24_33cdb5b7","line":210,"range":{"start_line":210,"start_character":25,"end_line":210,"end_character":71},"in_reply_to":"1aa78d24_703e1329","updated":"2016-07-06 20:06:14.000000000","message":"Good catch Luz, I\u0027ll update that.","commit_id":"979406c0ddcced43b17b3af44ecf6961f3b75f3a"},{"author":{"_account_id":17716,"name":"Luz Cazares","email":"luz.cazares@intel.com","username":"luzcazares"},"change_message_id":"d2c8fa17acbcac59a832ba9b8c69c60c028c324e","unresolved":false,"context_lines":[{"line_number":325,"context_line":"        # results"},{"line_number":326,"context_line":"        params \u003d {\u0027member_status\u0027: \u0027pending\u0027, \u0027visibility\u0027: \u0027shared\u0027}"},{"line_number":327,"context_line":"        fetched_images \u003d self.alt_img_client.list_images(params)[\u0027images\u0027]"},{"line_number":328,"context_line":"        self.assertEqual(len(fetched_images), 1)"},{"line_number":329,"context_line":"        self.assertIn(self.test_data[\u0027id\u0027], fetched_images[0][\u0027id\u0027])"},{"line_number":330,"context_line":""},{"line_number":331,"context_line":"    @test.idempotent_id(\u0027622b925c-479f-4736-860d-adeaf13bc371\u0027)"}],"source_content_type":"text/x-python","patch_set":14,"id":"1aa78d24_7001f337","line":328,"range":{"start_line":328,"start_character":25,"end_line":328,"end_character":47},"updated":"2016-07-06 19:48:46.000000000","message":"Same comment - parameters: (expected, observed, message)","commit_id":"979406c0ddcced43b17b3af44ecf6961f3b75f3a"},{"author":{"_account_id":9152,"name":"Castulo J. Martinez","email":"castulo.martinez@intel.com","username":"cas"},"change_message_id":"8f5762c4a4079189897b5b3832d36d25f2563875","unresolved":false,"context_lines":[{"line_number":325,"context_line":"        # results"},{"line_number":326,"context_line":"        params \u003d {\u0027member_status\u0027: \u0027pending\u0027, \u0027visibility\u0027: \u0027shared\u0027}"},{"line_number":327,"context_line":"        fetched_images \u003d self.alt_img_client.list_images(params)[\u0027images\u0027]"},{"line_number":328,"context_line":"        self.assertEqual(len(fetched_images), 1)"},{"line_number":329,"context_line":"        self.assertIn(self.test_data[\u0027id\u0027], fetched_images[0][\u0027id\u0027])"},{"line_number":330,"context_line":""},{"line_number":331,"context_line":"    @test.idempotent_id(\u0027622b925c-479f-4736-860d-adeaf13bc371\u0027)"}],"source_content_type":"text/x-python","patch_set":14,"id":"1aa78d24_93c62998","line":328,"range":{"start_line":328,"start_character":25,"end_line":328,"end_character":47},"in_reply_to":"1aa78d24_7001f337","updated":"2016-07-06 20:06:14.000000000","message":"Done","commit_id":"979406c0ddcced43b17b3af44ecf6961f3b75f3a"},{"author":{"_account_id":97,"name":"Daryl Walleck","email":"daryl.walleck@rackspace.com","username":"dwalleck"},"change_message_id":"4532baaf93fb2f273e6822cbf6cfbbe3b9ff38de","unresolved":false,"context_lines":[{"line_number":197,"context_line":"                msg \u003d \"Failed to list images by %s\" % key"},{"line_number":198,"context_line":"                self.assertEqual(params[key], image[key], msg)"},{"line_number":199,"context_line":""},{"line_number":200,"context_line":"    def _list_sorted_by_image_size_and_assert(self, params):"},{"line_number":201,"context_line":"        # Retrieve the list of images that meet the filter"},{"line_number":202,"context_line":"        images_list \u003d self.client.list_images(params\u003dparams)[\u0027images\u0027]"},{"line_number":203,"context_line":"        # Validate that the list was fetched sorted accordingly"}],"source_content_type":"text/x-python","patch_set":15,"id":"1aa78d24_e23870d5","line":200,"updated":"2016-07-07 00:48:43.000000000","message":"This function should have a docstring","commit_id":"3ec90f940adff80829982c5127d40183e6b7a50d"},{"author":{"_account_id":9152,"name":"Castulo J. Martinez","email":"castulo.martinez@intel.com","username":"cas"},"change_message_id":"a6e97133f5123abf75c641bb23bcba4b65d38251","unresolved":false,"context_lines":[{"line_number":197,"context_line":"                msg \u003d \"Failed to list images by %s\" % key"},{"line_number":198,"context_line":"                self.assertEqual(params[key], image[key], msg)"},{"line_number":199,"context_line":""},{"line_number":200,"context_line":"    def _list_sorted_by_image_size_and_assert(self, params):"},{"line_number":201,"context_line":"        # Retrieve the list of images that meet the filter"},{"line_number":202,"context_line":"        images_list \u003d self.client.list_images(params\u003dparams)[\u0027images\u0027]"},{"line_number":203,"context_line":"        # Validate that the list was fetched sorted accordingly"}],"source_content_type":"text/x-python","patch_set":15,"id":"1aa78d24_16b679f8","line":200,"in_reply_to":"1aa78d24_e23870d5","updated":"2016-07-07 15:37:16.000000000","message":"I\u0027ll add a docstring to it.","commit_id":"3ec90f940adff80829982c5127d40183e6b7a50d"},{"author":{"_account_id":97,"name":"Daryl Walleck","email":"daryl.walleck@rackspace.com","username":"dwalleck"},"change_message_id":"4532baaf93fb2f273e6822cbf6cfbbe3b9ff38de","unresolved":false,"context_lines":[{"line_number":297,"context_line":"        images_list \u003d self.client.list_images(params\u003dparams)[\u0027images\u0027]"},{"line_number":298,"context_line":"        # Validating properties of fetched images"},{"line_number":299,"context_line":"        self.assertNotEmpty(images_list)"},{"line_number":300,"context_line":"        msg \u003d \"Failed to list images by tag\""},{"line_number":301,"context_line":"        for image in images_list:"},{"line_number":302,"context_line":"            self.assertIn(self.test_data[\u0027tags\u0027][0], image[\u0027tags\u0027], msg)"},{"line_number":303,"context_line":""}],"source_content_type":"text/x-python","patch_set":15,"id":"1aa78d24_6205a00f","line":300,"updated":"2016-07-07 00:48:43.000000000","message":"This message is a bit deceptive. It\u0027s not that the list images by tag request failed. The failure is that you did not find an expected image in the response","commit_id":"3ec90f940adff80829982c5127d40183e6b7a50d"},{"author":{"_account_id":9152,"name":"Castulo J. Martinez","email":"castulo.martinez@intel.com","username":"cas"},"change_message_id":"a6e97133f5123abf75c641bb23bcba4b65d38251","unresolved":false,"context_lines":[{"line_number":297,"context_line":"        images_list \u003d self.client.list_images(params\u003dparams)[\u0027images\u0027]"},{"line_number":298,"context_line":"        # Validating properties of fetched images"},{"line_number":299,"context_line":"        self.assertNotEmpty(images_list)"},{"line_number":300,"context_line":"        msg \u003d \"Failed to list images by tag\""},{"line_number":301,"context_line":"        for image in images_list:"},{"line_number":302,"context_line":"            self.assertIn(self.test_data[\u0027tags\u0027][0], image[\u0027tags\u0027], msg)"},{"line_number":303,"context_line":""}],"source_content_type":"text/x-python","patch_set":15,"id":"1aa78d24_6ff60090","line":300,"in_reply_to":"1aa78d24_6205a00f","updated":"2016-07-07 15:37:16.000000000","message":"I will modify the message and include information about the image and tags that are incorrect.","commit_id":"3ec90f940adff80829982c5127d40183e6b7a50d"},{"author":{"_account_id":97,"name":"Daryl Walleck","email":"daryl.walleck@rackspace.com","username":"dwalleck"},"change_message_id":"4532baaf93fb2f273e6822cbf6cfbbe3b9ff38de","unresolved":false,"context_lines":[{"line_number":299,"context_line":"        self.assertNotEmpty(images_list)"},{"line_number":300,"context_line":"        msg \u003d \"Failed to list images by tag\""},{"line_number":301,"context_line":"        for image in images_list:"},{"line_number":302,"context_line":"            self.assertIn(self.test_data[\u0027tags\u0027][0], image[\u0027tags\u0027], msg)"},{"line_number":303,"context_line":""},{"line_number":304,"context_line":"    @test.idempotent_id(\u0027eeadce49-04e0-43b7-aec7-52535d903e7a\u0027)"},{"line_number":305,"context_line":"    def test_list_images_param_sort(self):"}],"source_content_type":"text/x-python","patch_set":15,"id":"1aa78d24_472fd6a0","line":302,"updated":"2016-07-07 00:48:43.000000000","message":"Including asserts in loops can be tricky because if this test fails, you won\u0027t know which item in the list it failed on. Since you\u0027re already adding a custom assert message, you can add the image uuid or name to the message to make the failure more clear","commit_id":"3ec90f940adff80829982c5127d40183e6b7a50d"},{"author":{"_account_id":9152,"name":"Castulo J. Martinez","email":"castulo.martinez@intel.com","username":"cas"},"change_message_id":"a6e97133f5123abf75c641bb23bcba4b65d38251","unresolved":false,"context_lines":[{"line_number":299,"context_line":"        self.assertNotEmpty(images_list)"},{"line_number":300,"context_line":"        msg \u003d \"Failed to list images by tag\""},{"line_number":301,"context_line":"        for image in images_list:"},{"line_number":302,"context_line":"            self.assertIn(self.test_data[\u0027tags\u0027][0], image[\u0027tags\u0027], msg)"},{"line_number":303,"context_line":""},{"line_number":304,"context_line":"    @test.idempotent_id(\u0027eeadce49-04e0-43b7-aec7-52535d903e7a\u0027)"},{"line_number":305,"context_line":"    def test_list_images_param_sort(self):"}],"source_content_type":"text/x-python","patch_set":15,"id":"1aa78d24_afec68bb","line":302,"in_reply_to":"1aa78d24_472fd6a0","updated":"2016-07-07 15:37:16.000000000","message":"Done","commit_id":"3ec90f940adff80829982c5127d40183e6b7a50d"},{"author":{"_account_id":97,"name":"Daryl Walleck","email":"daryl.walleck@rackspace.com","username":"dwalleck"},"change_message_id":"665478e9b664467404f58154710652e8cb5bad25","unresolved":false,"context_lines":[{"line_number":208,"context_line":"        # Validate that the list was fetched sorted accordingly"},{"line_number":209,"context_line":"        msg \u003d \u0027No images were found that met the filter criteria.\u0027"},{"line_number":210,"context_line":"        self.assertNotEmpty(images_list, msg)"},{"line_number":211,"context_line":"        sorted_list \u003d list()"},{"line_number":212,"context_line":"        for image in images_list:"},{"line_number":213,"context_line":"            sorted_list.append(image[\u0027size\u0027])"},{"line_number":214,"context_line":"        msg \u003d \u0027The list of images was not sorted correctly.\u0027"}],"source_content_type":"text/x-python","patch_set":16,"id":"1aa78d24_2b1e9e0b","line":211,"updated":"2016-07-07 19:02:08.000000000","message":"I missed this before, but you can simplify these three lines with a list comprehension:\n\nsorted_list \u003d [image[\u0027size\u0027] for image in images_list]\n\nI\u0027m not sure it\u0027s worth holding this PR up for","commit_id":"1af9a0857a23a7cf6573585610009df2e478332e"},{"author":{"_account_id":9152,"name":"Castulo J. Martinez","email":"castulo.martinez@intel.com","username":"cas"},"change_message_id":"c14b25b80507e2bdb9315a4d165a8496a3887c6a","unresolved":false,"context_lines":[{"line_number":208,"context_line":"        # Validate that the list was fetched sorted accordingly"},{"line_number":209,"context_line":"        msg \u003d \u0027No images were found that met the filter criteria.\u0027"},{"line_number":210,"context_line":"        self.assertNotEmpty(images_list, msg)"},{"line_number":211,"context_line":"        sorted_list \u003d list()"},{"line_number":212,"context_line":"        for image in images_list:"},{"line_number":213,"context_line":"            sorted_list.append(image[\u0027size\u0027])"},{"line_number":214,"context_line":"        msg \u003d \u0027The list of images was not sorted correctly.\u0027"}],"source_content_type":"text/x-python","patch_set":16,"id":"1aa78d24_a1e2afd2","line":211,"in_reply_to":"1aa78d24_2b1e9e0b","updated":"2016-07-07 19:49:14.000000000","message":"You are right, I will update the code, thanks for the review","commit_id":"1af9a0857a23a7cf6573585610009df2e478332e"},{"author":{"_account_id":7350,"name":"Jordan Pittier","email":"jordan.pittier@gmail.com","username":"JordanP"},"change_message_id":"1411d304ad4ea0b0ab53cff0c5b8dd450f18099c","unresolved":false,"context_lines":[{"line_number":333,"context_line":"        params \u003d {\u0027member_status\u0027: \u0027pending\u0027, \u0027visibility\u0027: \u0027shared\u0027}"},{"line_number":334,"context_line":"        fetched_images \u003d self.alt_img_client.list_images(params)[\u0027images\u0027]"},{"line_number":335,"context_line":"        self.assertEqual(1, len(fetched_images))"},{"line_number":336,"context_line":"        self.assertIn(self.test_data[\u0027id\u0027], fetched_images[0][\u0027id\u0027])"},{"line_number":337,"context_line":""},{"line_number":338,"context_line":"    @test.idempotent_id(\u0027622b925c-479f-4736-860d-adeaf13bc371\u0027)"},{"line_number":339,"context_line":"    def test_get_image_schema(self):"}],"source_content_type":"text/x-python","patch_set":17,"id":"7a8ec9b2_215a56f2","line":336,"updated":"2016-09-19 09:13:43.000000000","message":"Shouldn\u0027t this be assertEqual ?","commit_id":"bb568a08685e6afa6fa9690afd7f899bc07df16a"},{"author":{"_account_id":9152,"name":"Castulo J. Martinez","email":"castulo.martinez@intel.com","username":"cas"},"change_message_id":"bd5c439ae0cee3cf2ca4305e7cec81b48bd699da","unresolved":false,"context_lines":[{"line_number":333,"context_line":"        params \u003d {\u0027member_status\u0027: \u0027pending\u0027, \u0027visibility\u0027: \u0027shared\u0027}"},{"line_number":334,"context_line":"        fetched_images \u003d self.alt_img_client.list_images(params)[\u0027images\u0027]"},{"line_number":335,"context_line":"        self.assertEqual(1, len(fetched_images))"},{"line_number":336,"context_line":"        self.assertIn(self.test_data[\u0027id\u0027], fetched_images[0][\u0027id\u0027])"},{"line_number":337,"context_line":""},{"line_number":338,"context_line":"    @test.idempotent_id(\u0027622b925c-479f-4736-860d-adeaf13bc371\u0027)"},{"line_number":339,"context_line":"    def test_get_image_schema(self):"}],"source_content_type":"text/x-python","patch_set":17,"id":"7a8ec9b2_0f09e7dd","line":336,"in_reply_to":"7a8ec9b2_215a56f2","updated":"2016-09-19 18:29:36.000000000","message":"You are right Jordan, since in this case we are expecting just one result being filtered, it would be more accurate to use assertEqual than assertIn, I will update the test. Thanks for reviewing.","commit_id":"bb568a08685e6afa6fa9690afd7f899bc07df16a"},{"author":{"_account_id":5196,"name":"Matthew Treinish","email":"mtreinish@kortar.org","username":"treinish"},"change_message_id":"68afc1c3b4bcf04e75957f473957da0c550f733c","unresolved":false,"context_lines":[{"line_number":317,"context_line":"        self._list_sorted_by_image_size_and_assert(params, desc\u003dTrue)"},{"line_number":318,"context_line":""},{"line_number":319,"context_line":"    @test.idempotent_id(\u00273fa50be4-8e38-4c02-a8db-7811bb780122\u0027)"},{"line_number":320,"context_line":"    def test_list_images_param_member_status(self):"},{"line_number":321,"context_line":"        # Share one of the images created with the alt user"},{"line_number":322,"context_line":"        self.image_member_client.create_image_member("},{"line_number":323,"context_line":"            image_id\u003dself.test_data[\u0027id\u0027],"}],"source_content_type":"text/x-python","patch_set":20,"id":"fa6399be_7d4b13b1","line":320,"updated":"2016-10-10 19:38:22.000000000","message":"So I\u0027m thinking we probably want to split this test out in a separate class. This is something that\u0027s come from defcore a few times but this is the only thing that requires the alt user so we probably shouldn\u0027t require all the tests in the class to depend on 2 users since they don\u0027t need it","commit_id":"5a0a3418030c10acaa8c4200b26367276981b681"},{"author":{"_account_id":6167,"name":"Ken\u0027ichi Ohmichi","email":"ken1ohmichi@gmail.com","username":"oomichi"},"change_message_id":"f6c1d0304a13e5cb421a8ebed2695afabd532a67","unresolved":false,"context_lines":[{"line_number":309,"context_line":"    @test.idempotent_id(\u00279faaa0c2-c3a5-43e1-8f61-61c54b409a49\u0027)"},{"line_number":310,"context_line":"    def test_list_images_param_sort_key_dir(self):"},{"line_number":311,"context_line":"        params \u003d {\u0027sort_key\u0027: \u0027size\u0027, \u0027sort_dir\u0027: \u0027desc\u0027}"},{"line_number":312,"context_line":"        self._list_sorted_by_image_size_and_assert(params, desc\u003dTrue)"},{"line_number":313,"context_line":""},{"line_number":314,"context_line":"    @test.idempotent_id(\u0027622b925c-479f-4736-860d-adeaf13bc371\u0027)"},{"line_number":315,"context_line":"    def test_get_image_schema(self):"}],"source_content_type":"text/x-python","patch_set":21,"id":"fa6399be_ac86edd8","line":312,"updated":"2016-10-19 18:02:29.000000000","message":"This test case seems almost the same as the previous test_list_images_param_sort().\nI guess we want to check the default \"sort_dir\" should be \"desc\" on the above test_list_images_param_sort.\n\nIf so, maybe it is nice to add one more test like\n\n def test_list_images_param_sort_key_dir_asc(self):\n     params \u003d {\u0027sort_key\u0027: \u0027size\u0027, \u0027sort_dir\u0027: \u0027asc\u0027}\n     self._list_sorted_by_image_size_and_assert(params, desc\u003dFalse)\n\nIt is nice to add the above patch later if you are interested.","commit_id":"75080d3a626e20343ffcc7b3969123722939be45"},{"author":{"_account_id":9152,"name":"Castulo J. Martinez","email":"castulo.martinez@intel.com","username":"cas"},"change_message_id":"f5a1ab6497793c8c2e80ec7cf270e804c878f578","unresolved":false,"context_lines":[{"line_number":309,"context_line":"    @test.idempotent_id(\u00279faaa0c2-c3a5-43e1-8f61-61c54b409a49\u0027)"},{"line_number":310,"context_line":"    def test_list_images_param_sort_key_dir(self):"},{"line_number":311,"context_line":"        params \u003d {\u0027sort_key\u0027: \u0027size\u0027, \u0027sort_dir\u0027: \u0027desc\u0027}"},{"line_number":312,"context_line":"        self._list_sorted_by_image_size_and_assert(params, desc\u003dTrue)"},{"line_number":313,"context_line":""},{"line_number":314,"context_line":"    @test.idempotent_id(\u0027622b925c-479f-4736-860d-adeaf13bc371\u0027)"},{"line_number":315,"context_line":"    def test_get_image_schema(self):"}],"source_content_type":"text/x-python","patch_set":21,"id":"fa6399be_f34efdbf","line":312,"in_reply_to":"fa6399be_ac86edd8","updated":"2016-10-19 22:09:30.000000000","message":"This patch is the last one of a series of patches to close this bug:https://bugs.launchpad.net/tempest/+bug/1086590\nAccording to the bug we would need to test all parameters used for listing images, so I made sure to include one test for each one of the parameters listed in the documentation http://developer.openstack.org/api-ref/image/v2/\nAccording to the doc there are two ways of sorting the list of images: \n\n+ By using the parameter \"sort\" which receives a combination of \"key:direction\".\n   E.g. params \u003d {\u0027sort\u0027: \u0027name:asc\u0027}\n\n+ By using the parameters \"sort_key\" and \"sort_dir\" together each one with its own value.\n   E.g. params\u003d {\u0027sort_key\u0027: \u0027size\u0027, \u0027sort_dir\u0027: \u0027desc\u0027}\n\nIn the end either using \"sort\" or using \"sort_key\" plus \"sort_dir\" could lead you to the same filtered list, but by adding both tests I\u0027m making sure all three parameters work as expected. \n\nIf you think there is value in adding one more test to validate sorting in the other direction (ascending) I could add that test but IMO I think that would be just testing another variation of the same parameters.","commit_id":"75080d3a626e20343ffcc7b3969123722939be45"},{"author":{"_account_id":6167,"name":"Ken\u0027ichi Ohmichi","email":"ken1ohmichi@gmail.com","username":"oomichi"},"change_message_id":"f6c1d0304a13e5cb421a8ebed2695afabd532a67","unresolved":false,"context_lines":[{"line_number":326,"context_line":"        self.assertEqual(\"images\", body[\u0027name\u0027])"},{"line_number":327,"context_line":""},{"line_number":328,"context_line":""},{"line_number":329,"context_line":"class ListSharedImagesTest(ListImagesTest):"},{"line_number":330,"context_line":"    \"\"\"Here we test the listing of a shared image information\"\"\""},{"line_number":331,"context_line":""},{"line_number":332,"context_line":"    credentials \u003d [\u0027primary\u0027, \u0027alt\u0027]"}],"source_content_type":"text/x-python","patch_set":21,"id":"fa6399be_af9c1f5e","line":329,"range":{"start_line":329,"start_character":27,"end_line":329,"end_character":41},"updated":"2016-10-19 18:02:29.000000000","message":"Why should we run the same tests of ListImagesTest here again?","commit_id":"75080d3a626e20343ffcc7b3969123722939be45"},{"author":{"_account_id":6167,"name":"Ken\u0027ichi Ohmichi","email":"ken1ohmichi@gmail.com","username":"oomichi"},"change_message_id":"3f8e7908b8439514934fc0c4c80a02ac9a7c4cdf","unresolved":false,"context_lines":[{"line_number":326,"context_line":"        self.assertEqual(\"images\", body[\u0027name\u0027])"},{"line_number":327,"context_line":""},{"line_number":328,"context_line":""},{"line_number":329,"context_line":"class ListSharedImagesTest(ListImagesTest):"},{"line_number":330,"context_line":"    \"\"\"Here we test the listing of a shared image information\"\"\""},{"line_number":331,"context_line":""},{"line_number":332,"context_line":"    credentials \u003d [\u0027primary\u0027, \u0027alt\u0027]"}],"source_content_type":"text/x-python","patch_set":21,"id":"fa6399be_7609fb2b","line":329,"range":{"start_line":329,"start_character":27,"end_line":329,"end_character":41},"in_reply_to":"fa6399be_53632941","updated":"2016-10-19 22:14:10.000000000","message":"Ah, you are right. My eyes were checking wrong places..","commit_id":"75080d3a626e20343ffcc7b3969123722939be45"},{"author":{"_account_id":9152,"name":"Castulo J. Martinez","email":"castulo.martinez@intel.com","username":"cas"},"change_message_id":"f5a1ab6497793c8c2e80ec7cf270e804c878f578","unresolved":false,"context_lines":[{"line_number":326,"context_line":"        self.assertEqual(\"images\", body[\u0027name\u0027])"},{"line_number":327,"context_line":""},{"line_number":328,"context_line":""},{"line_number":329,"context_line":"class ListSharedImagesTest(ListImagesTest):"},{"line_number":330,"context_line":"    \"\"\"Here we test the listing of a shared image information\"\"\""},{"line_number":331,"context_line":""},{"line_number":332,"context_line":"    credentials \u003d [\u0027primary\u0027, \u0027alt\u0027]"}],"source_content_type":"text/x-python","patch_set":21,"id":"fa6399be_53632941","line":329,"range":{"start_line":329,"start_character":27,"end_line":329,"end_character":41},"in_reply_to":"fa6399be_af9c1f5e","updated":"2016-10-19 22:09:30.000000000","message":"ListImagesTest doesn\u0027t have any test, it is the parent class for both ListUserImagesTest and ListSharedImagesTest, those two classes inherit from ListImagesTest because they use the same resource_setup. I split the class in two because test_list_images_param_member_status requires not only a primary user but an alt too. Matt Treinish suggested to split them so we would not have to have two users for all the tests but only for those that specifically needed two users.","commit_id":"75080d3a626e20343ffcc7b3969123722939be45"}]}
