)]}'
{"/PATCHSET_LEVEL":[{"author":{"_account_id":8648,"name":"Radomir Dopieralski","email":"openstack@dopieralski.pl","username":"thesheep"},"change_message_id":"83253205c5dca618f1bb4e0cffad946bab0345c7","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":10,"id":"ec730229_dd8e0053","updated":"2023-11-30 15:23:04.000000000","message":"I see the horizon-integration-pytest job is failing, do we need to add more handling of delays?","commit_id":"b3ddd9d1685a56eaa14bcc69a74c2c69fdac3d5d"},{"author":{"_account_id":35153,"name":"Ashish Gupta","email":"ashigupt@redhat.com","username":"ashigupt","status":"Redhat"},"change_message_id":"43e2c2efed3b90c651086593a9f22623f82d42f1","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":10,"id":"0d9c8b87_0847238b","updated":"2023-11-30 06:01:49.000000000","message":"recheck","commit_id":"b3ddd9d1685a56eaa14bcc69a74c2c69fdac3d5d"},{"author":{"_account_id":35153,"name":"Ashish Gupta","email":"ashigupt@redhat.com","username":"ashigupt","status":"Redhat"},"change_message_id":"8fc2174f666141bbe75f08e13d0eb5c15a7901fe","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":10,"id":"81d5c716_82b123a4","updated":"2023-11-29 17:01:05.000000000","message":"recheck","commit_id":"b3ddd9d1685a56eaa14bcc69a74c2c69fdac3d5d"},{"author":{"_account_id":35133,"name":"Jan Jasek","email":"jjasek@redhat.com","username":"janjasek"},"change_message_id":"59bfd375a1c2c0297ad80ce1bb388691bdd3e2e0","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":10,"id":"68b9a735_6e918e3a","in_reply_to":"ec730229_dd8e0053","updated":"2023-11-30 15:35:16.000000000","message":"All the failing tests are Volume/Volume Snapshots tests. The tests failing because the patch I sent last week still wait for review and merge (like the other 3 patches).","commit_id":"b3ddd9d1685a56eaa14bcc69a74c2c69fdac3d5d"},{"author":{"_account_id":35153,"name":"Ashish Gupta","email":"ashigupt@redhat.com","username":"ashigupt","status":"Redhat"},"change_message_id":"e25150e8609e4834f2d26e8e35cbaa50709922a8","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":10,"id":"35eaf937_01ea5eaa","in_reply_to":"ec730229_dd8e0053","updated":"2023-11-30 15:28:45.000000000","message":"horizon-integration-pytest job is failing because we are yet to merge https://review.opendev.org/c/openstack/horizon/+/901545 from Jan which handles failures related to volumes","commit_id":"b3ddd9d1685a56eaa14bcc69a74c2c69fdac3d5d"}],"openstack_dashboard/test/selenium/integration/test_images.py":[{"author":{"_account_id":8648,"name":"Radomir Dopieralski","email":"openstack@dopieralski.pl","username":"thesheep"},"change_message_id":"3efc4495aeebcc31073335efa4eb3a9b2b8508ba","unresolved":true,"context_lines":[{"line_number":21,"context_line":""},{"line_number":22,"context_line":""},{"line_number":23,"context_line":"@pytest.fixture(params\u003d[1])"},{"line_number":24,"context_line":"def image_name(request):"},{"line_number":25,"context_line":"    count \u003d request.param"},{"line_number":26,"context_line":"    img_name_list \u003d [\u0027horizon_img_%s\u0027 % uuidutils.generate_uuid(dashed\u003dFalse)]"},{"line_number":27,"context_line":"    if count \u003e 1:"}],"source_content_type":"text/x-python","patch_set":3,"id":"75fa024c_0a67581e","line":24,"updated":"2023-11-28 14:16:29.000000000","message":"since this returns a list, please call it \"image_names\"","commit_id":"e4e2000fba83f3801bce5903c07858788d26df47"},{"author":{"_account_id":35153,"name":"Ashish Gupta","email":"ashigupt@redhat.com","username":"ashigupt","status":"Redhat"},"change_message_id":"7e35998363c01a18a0eb93e7d7fbd3cd4140b371","unresolved":false,"context_lines":[{"line_number":21,"context_line":""},{"line_number":22,"context_line":""},{"line_number":23,"context_line":"@pytest.fixture(params\u003d[1])"},{"line_number":24,"context_line":"def image_name(request):"},{"line_number":25,"context_line":"    count \u003d request.param"},{"line_number":26,"context_line":"    img_name_list \u003d [\u0027horizon_img_%s\u0027 % uuidutils.generate_uuid(dashed\u003dFalse)]"},{"line_number":27,"context_line":"    if count \u003e 1:"}],"source_content_type":"text/x-python","patch_set":3,"id":"a75b740e_8ec703a3","line":24,"in_reply_to":"75fa024c_0a67581e","updated":"2023-11-29 11:16:32.000000000","message":"Done","commit_id":"e4e2000fba83f3801bce5903c07858788d26df47"},{"author":{"_account_id":8648,"name":"Radomir Dopieralski","email":"openstack@dopieralski.pl","username":"thesheep"},"change_message_id":"3efc4495aeebcc31073335efa4eb3a9b2b8508ba","unresolved":true,"context_lines":[{"line_number":79,"context_line":""},{"line_number":80,"context_line":""},{"line_number":81,"context_line":"@pytest.fixture"},{"line_number":82,"context_line":"def temporary_file(tmp_path, name\u003d\u0027\u0027, suffix\u003d\u0027.qcow2\u0027, size\u003d5000):"},{"line_number":83,"context_line":"    \"\"\"Generate temporary file with provided parameters."},{"line_number":84,"context_line":""},{"line_number":85,"context_line":"    :param name: file name except the extension /suffix"}],"source_content_type":"text/x-python","patch_set":3,"id":"532c08a7_dbce0b81","line":82,"updated":"2023-11-28 14:16:29.000000000","message":"we can\u0027t pass those parameters to a fixture anyways, so maybe we should just put them as hardcoded values inside?","commit_id":"e4e2000fba83f3801bce5903c07858788d26df47"},{"author":{"_account_id":35153,"name":"Ashish Gupta","email":"ashigupt@redhat.com","username":"ashigupt","status":"Redhat"},"change_message_id":"7e35998363c01a18a0eb93e7d7fbd3cd4140b371","unresolved":false,"context_lines":[{"line_number":79,"context_line":""},{"line_number":80,"context_line":""},{"line_number":81,"context_line":"@pytest.fixture"},{"line_number":82,"context_line":"def temporary_file(tmp_path, name\u003d\u0027\u0027, suffix\u003d\u0027.qcow2\u0027, size\u003d5000):"},{"line_number":83,"context_line":"    \"\"\"Generate temporary file with provided parameters."},{"line_number":84,"context_line":""},{"line_number":85,"context_line":"    :param name: file name except the extension /suffix"}],"source_content_type":"text/x-python","patch_set":3,"id":"3cad07ec_9882cf53","line":82,"in_reply_to":"532c08a7_dbce0b81","updated":"2023-11-29 11:16:32.000000000","message":"Done","commit_id":"e4e2000fba83f3801bce5903c07858788d26df47"},{"author":{"_account_id":8648,"name":"Radomir Dopieralski","email":"openstack@dopieralski.pl","username":"thesheep"},"change_message_id":"cc496cfbea3322a9dc6eeb2f93a8bb0d595f3531","unresolved":true,"context_lines":[{"line_number":21,"context_line":""},{"line_number":22,"context_line":""},{"line_number":23,"context_line":"@pytest.fixture(params\u003d[1])"},{"line_number":24,"context_line":"def images_name(request):"},{"line_number":25,"context_line":"    count \u003d request.param"},{"line_number":26,"context_line":"    img_name_list \u003d [\u0027horizon_img_%s\u0027 % uuidutils.generate_uuid(dashed\u003dFalse)]"},{"line_number":27,"context_line":"    if count \u003e 1:"}],"source_content_type":"text/x-python","patch_set":7,"id":"638f130f_b52dd62e","line":24,"updated":"2023-11-29 13:22:44.000000000","message":"image_names","commit_id":"c900765cb0f41b6c9127aab8872f82c646cc7a56"},{"author":{"_account_id":8648,"name":"Radomir Dopieralski","email":"openstack@dopieralski.pl","username":"thesheep"},"change_message_id":"cdc106f8bbe411197b970ca391aeb500506c2738","unresolved":false,"context_lines":[{"line_number":21,"context_line":""},{"line_number":22,"context_line":""},{"line_number":23,"context_line":"@pytest.fixture(params\u003d[1])"},{"line_number":24,"context_line":"def images_name(request):"},{"line_number":25,"context_line":"    count \u003d request.param"},{"line_number":26,"context_line":"    img_name_list \u003d [\u0027horizon_img_%s\u0027 % uuidutils.generate_uuid(dashed\u003dFalse)]"},{"line_number":27,"context_line":"    if count \u003e 1:"}],"source_content_type":"text/x-python","patch_set":7,"id":"7ad21b80_3ca53d8a","line":24,"in_reply_to":"638f130f_b52dd62e","updated":"2023-11-30 15:23:24.000000000","message":"Done","commit_id":"c900765cb0f41b6c9127aab8872f82c646cc7a56"}],"openstack_dashboard/test/selenium/widgets.py":[{"author":{"_account_id":8648,"name":"Radomir Dopieralski","email":"openstack@dopieralski.pl","username":"thesheep"},"change_message_id":"3efc4495aeebcc31073335efa4eb3a9b2b8508ba","unresolved":true,"context_lines":[{"line_number":97,"context_line":"    return actual_table"},{"line_number":98,"context_line":""},{"line_number":99,"context_line":""},{"line_number":100,"context_line":"def get_image_table_definition(driver, sorting\u003dFalse):"},{"line_number":101,"context_line":"    names \u003d driver.find_elements_by_css_selector(\"td[class\u003d\u0027rsp-p1 word-wrap\u0027]\")"},{"line_number":102,"context_line":"    rows \u003d driver.find_elements_by_css_selector(\"tr[class\u003d\u0027ng-scope\u0027]\")"},{"line_number":103,"context_line":"    if sorting:"}],"source_content_type":"text/x-python","patch_set":3,"id":"8a9e5a9f_e754d940","line":100,"updated":"2023-11-28 14:16:29.000000000","message":"would this work for all angular-based tables? should we name it get_angular_table_definition?","commit_id":"e4e2000fba83f3801bce5903c07858788d26df47"},{"author":{"_account_id":35153,"name":"Ashish Gupta","email":"ashigupt@redhat.com","username":"ashigupt","status":"Redhat"},"change_message_id":"7e35998363c01a18a0eb93e7d7fbd3cd4140b371","unresolved":false,"context_lines":[{"line_number":97,"context_line":"    return actual_table"},{"line_number":98,"context_line":""},{"line_number":99,"context_line":""},{"line_number":100,"context_line":"def get_image_table_definition(driver, sorting\u003dFalse):"},{"line_number":101,"context_line":"    names \u003d driver.find_elements_by_css_selector(\"td[class\u003d\u0027rsp-p1 word-wrap\u0027]\")"},{"line_number":102,"context_line":"    rows \u003d driver.find_elements_by_css_selector(\"tr[class\u003d\u0027ng-scope\u0027]\")"},{"line_number":103,"context_line":"    if sorting:"}],"source_content_type":"text/x-python","patch_set":3,"id":"6034a8c3_9aa37e54","line":100,"in_reply_to":"8a9e5a9f_e754d940","updated":"2023-11-29 11:16:32.000000000","message":"I have a function with name get_table_definition at line 89 which should work for all other table , this particular function get_image_table_definition added is a bit specific to image table (and would work for key-pair as well in case we want to add a pagination test for that ) as selectors as bit different there due to name column","commit_id":"e4e2000fba83f3801bce5903c07858788d26df47"},{"author":{"_account_id":35133,"name":"Jan Jasek","email":"jjasek@redhat.com","username":"janjasek"},"change_message_id":"afe51158b44f6f2fea9c9665a561139cbb6135d7","unresolved":true,"context_lines":[{"line_number":100,"context_line":"def get_image_table_definition(driver, sorting\u003dFalse):"},{"line_number":101,"context_line":"    \"\"\" This function is specific to Image table definition \"\"\""},{"line_number":102,"context_line":"    names \u003d driver.find_elements_by_css_selector(\"td[class\u003d\u0027rsp-p1 word-wrap\u0027]\")"},{"line_number":103,"context_line":"    rows \u003d driver.find_elements_by_css_selector(\"tr[class\u003d\u0027ng-scope\u0027]\")"},{"line_number":104,"context_line":"    if sorting:"},{"line_number":105,"context_line":"        names.sort()"},{"line_number":106,"context_line":"    actual_table \u003d TableDefinition(next\u003dis_next_link_available(driver),"}],"source_content_type":"text/x-python","patch_set":8,"id":"aa8b6a9d_f535003b","line":103,"range":{"start_line":103,"start_character":4,"end_line":103,"end_character":71},"updated":"2023-11-29 13:52:12.000000000","message":"Do we really need this line?\nI can see that you use this \"rows\" list only to get count of the rows (images).\nIf I am right then the line\n\nnames \u003d driver.find_elements_by_css_selector(\"td[class\u003d\u0027rsp-p1 word-wrap\u0027]\")\n\nreturns list with names of all existing images and then if you need count of rows you can do just \"count \u003d len(names)\". Number of rows and names will be the same all the time because in HTML code the \"td[class\u003d\u0027rsp-p1 word-wrap\u0027]\" is inside of \"tr[class\u003d\u0027ng-scope\u0027]\".","commit_id":"b1a9743075263464f7fe3b4094266719e7508591"},{"author":{"_account_id":35153,"name":"Ashish Gupta","email":"ashigupt@redhat.com","username":"ashigupt","status":"Redhat"},"change_message_id":"555d5dc885aa06fa80ee83cbd7b121bf92fc8285","unresolved":false,"context_lines":[{"line_number":100,"context_line":"def get_image_table_definition(driver, sorting\u003dFalse):"},{"line_number":101,"context_line":"    \"\"\" This function is specific to Image table definition \"\"\""},{"line_number":102,"context_line":"    names \u003d driver.find_elements_by_css_selector(\"td[class\u003d\u0027rsp-p1 word-wrap\u0027]\")"},{"line_number":103,"context_line":"    rows \u003d driver.find_elements_by_css_selector(\"tr[class\u003d\u0027ng-scope\u0027]\")"},{"line_number":104,"context_line":"    if sorting:"},{"line_number":105,"context_line":"        names.sort()"},{"line_number":106,"context_line":"    actual_table \u003d TableDefinition(next\u003dis_next_link_available(driver),"}],"source_content_type":"text/x-python","patch_set":8,"id":"05e1fdcb_b54fb9d7","line":103,"range":{"start_line":103,"start_character":4,"end_line":103,"end_character":71},"in_reply_to":"aa8b6a9d_f535003b","updated":"2023-11-29 13:57:26.000000000","message":"Makes sense, Thanks I will change it","commit_id":"b1a9743075263464f7fe3b4094266719e7508591"}]}
