)]}'
{"run-tests-crc.sh":[{"author":{"_account_id":28006,"name":"teim-ci","display_name":"teim-ci","email":"ci@seanmooney.info","username":"ci-sean-mooney","status":"this is a third-party ci account run by sean-k-mooney on irc\nhosted at zuul.teim.app"},"tag":"autogenerated:zuul:automatic-ci","change_message_id":"11f143c713b311f485a3fe115735f0be7ed97a4b","unresolved":false,"context_lines":[{"line_number":1,"context_line":"#!/bin/bash"},{"line_number":2,"context_line":"# Script to run Playwright tests against CRC OpenStack"},{"line_number":3,"context_line":""},{"line_number":4,"context_line":"export OS_AUTH_URL\u003d\"${OS_AUTH_URL:-https://keystone-public-openstack.apps.10.4.209.38.nip.io}\""},{"line_number":5,"context_line":"export OS_USERNAME\u003d\"${OS_USERNAME:-admin}\""},{"line_number":6,"context_line":"export OS_PASSWORD\u003d\"${OS_PASSWORD:-youropenstackisnowmuchmoresecure}\""},{"line_number":7,"context_line":"export OS_PROJECT_NAME\u003d\"${OS_PROJECT_NAME:-admin}\""}],"source_content_type":"text/x-sh","patch_set":3,"id":"fde5e405_e6b52b82","line":4,"updated":"2026-07-22 07:55:03.000000000","message":"The new run-tests-crc.sh script hardcodes a specific internal IP address (10.4.209.38.nip.io) as the default for OS_AUTH_URL and WATCHER_DASHBOARD_URL, along with an infrastructure-specific password. These defaults leak deployment details into a public repository and make the script useless for o...\n\n**Severity**: WARNING | **Confidence**: 0.9\n\n**Impact**: The hardcoded IP exposes internal infrastructure topology. Other contributors cannot use this script without overriding every variable. The defaults are misleading since they reference a host that is not publicly accessible.\n\n**Suggestion**:\nUse generic defaults consistent with tox.ini (e.g., http://localhost/identity and http://localhost/dashboard), or remove the URL/password defaults entirely and require explicit environment variables. If this script is personal-only, consider not committing it or adding it to .gitignore.","commit_id":"98a92d38ad2aef73b471a84f00037e1128811da8"}],"tox.ini":[{"author":{"_account_id":28006,"name":"teim-ci","display_name":"teim-ci","email":"ci@seanmooney.info","username":"ci-sean-mooney","status":"this is a third-party ci account run by sean-k-mooney on irc\nhosted at zuul.teim.app"},"tag":"autogenerated:zuul:automatic-ci","change_message_id":"b479387abbdbf3ceba9a36482eec28e23c3f4bc2","unresolved":false,"context_lines":[{"line_number":36,"context_line":""},{"line_number":37,"context_line":"[testenv:integration{,-playwright}]"},{"line_number":38,"context_line":"# Run integration tests using Playwright"},{"line_number":39,"context_line":"# Set PLAYWRIGHT_BROWSER to choose browser: chromium, firefox, or webkit (default)"},{"line_number":40,"context_line":"# Example: PLAYWRIGHT_BROWSER\u003dfirefox tox -e integration-playwright"},{"line_number":41,"context_line":"# Note: webkit provides Safari-like testing on Linux"},{"line_number":42,"context_line":"# Set PLAYWRIGHT_VIDEO to enable video recording: off (default), on, retain-on-failure"}],"source_content_type":"text/x-properties","patch_set":1,"id":"541aadd3_fbffc60b","line":39,"updated":"2026-07-21 13:04:23.000000000","message":"The default browser was changed from webkit to chromium in this patch, but two comments in tox.ini still state webkit is the default, creating misleading documentation.\n\n**Severity**: SUGGESTION | **Confidence**: 0.9\n\n**Benefit**: Developers following the comments will install the wrong browser binary and may be confused when the default does not match documentation.\n\n**Recommendation**:\nUpdate line 39 to say \u0027chromium (default)\u0027 instead of \u0027webkit (default)\u0027. Update line 93 to say \u0027python -m playwright install chromium\u0027 instead of \u0027webkit\u0027.","commit_id":"714489a9dc2a635ce72265f67135cd339f43857a"}],"watcher_dashboard/test/integration/test_filters.py":[{"author":{"_account_id":28006,"name":"teim-ci","display_name":"teim-ci","email":"ci@seanmooney.info","username":"ci-sean-mooney","status":"this is a third-party ci account run by sean-k-mooney on irc\nhosted at zuul.teim.app"},"tag":"autogenerated:zuul:automatic-ci","change_message_id":"b479387abbdbf3ceba9a36482eec28e23c3f4bc2","unresolved":false,"context_lines":[{"line_number":138,"context_line":"        target_goal_name \u003d \"server_consolidation\""},{"line_number":139,"context_line":""},{"line_number":140,"context_line":"        # Create templates with server_consolidation goal"},{"line_number":141,"context_line":"        template_names_target \u003d []"},{"line_number":142,"context_line":"        for i in range(2):"},{"line_number":143,"context_line":"            name \u003d f\"test_filter_sc_{uuid.uuid4().hex[:8]}\""},{"line_number":144,"context_line":"            self.create_audit_template("}],"source_content_type":"text/x-python","patch_set":1,"id":"0c85ff49_6de56a66","line":141,"updated":"2026-07-21 13:04:23.000000000","message":"The variable \u0027template_names_target\u0027 is created and appended to in test_filters_audit_templates_by_goal (line 141) and test_filters_audit_templates_by_strategy (line 240), but is never read afterwards, making it dead code.\n\n**Severity**: SUGGESTION | **Confidence**: 0.9\n\n**Benefit**: Dead code adds confusion for future maintainers who may think the variable is used for verification. It gives a false impression that created template names are being tracked for a purpose.\n\n**Recommendation**:\nRemove the \u0027template_names_target\u0027 variable declarations (lines 141 and 240) and the corresponding \u0027.append(name)\u0027 calls (lines 149 and 248), or use the variable for an assertion verifying the created templates appear in results.","commit_id":"714489a9dc2a635ce72265f67135cd339f43857a"},{"author":{"_account_id":28006,"name":"teim-ci","display_name":"teim-ci","email":"ci@seanmooney.info","username":"ci-sean-mooney","status":"this is a third-party ci account run by sean-k-mooney on irc\nhosted at zuul.teim.app"},"tag":"autogenerated:zuul:automatic-ci","change_message_id":"b479387abbdbf3ceba9a36482eec28e23c3f4bc2","unresolved":false,"context_lines":[{"line_number":326,"context_line":"        )"},{"line_number":327,"context_line":"        self.take_screenshot(\"templates_verified\")"},{"line_number":328,"context_line":""},{"line_number":329,"context_line":"    # NOTE: Test for audits filter by audit template is NOT implemented"},{"line_number":330,"context_line":"    # because the Audit model does not include audit_template_uuid field."},{"line_number":331,"context_line":"    # The UI has a \"Audit Template \u003d\" filter dropdown, but it cannot work"},{"line_number":332,"context_line":"    # properly without this field in the API response."}],"source_content_type":"text/x-python","patch_set":1,"id":"997cdbdb_a2a3366b","line":329,"updated":"2026-07-21 13:04:23.000000000","message":"Lines 329-475 contain a large commented-out test method (test_audits_filter_by_audit_template) with extensive inline comments explaining a backend bug. This is 146 lines of dead code that should not be committed to the repository.\n\n**Severity**: WARNING | **Confidence**: 0.9\n\n**Impact**: 146 lines of commented-out code significantly increases file noise and maintenance burden. Future contributors may waste time reading dead code, and the code will rot as the surrounding codebase evolves.\n\n**Suggestion**:\nRemove the commented-out test code entirely. The NOTE block (lines 329-334) with the bug reference (https://bugs.launchpad.net/watcher-dashboard/+bug/2161426) is valuable context—keep a brief comment referencing the bug, but delete the commented-out implementation. The test can be re-added when the backend bug is fixed.","commit_id":"714489a9dc2a635ce72265f67135cd339f43857a"},{"author":{"_account_id":28006,"name":"teim-ci","display_name":"teim-ci","email":"ci@seanmooney.info","username":"ci-sean-mooney","status":"this is a third-party ci account run by sean-k-mooney on irc\nhosted at zuul.teim.app"},"tag":"autogenerated:zuul:automatic-ci","change_message_id":"b479387abbdbf3ceba9a36482eec28e23c3f4bc2","unresolved":false,"context_lines":[{"line_number":512,"context_line":"            audit_uuids.append(audit_uuid)"},{"line_number":513,"context_line":""},{"line_number":514,"context_line":"        # Wait for audits to complete via API (not UI)"},{"line_number":515,"context_line":"        import time"},{"line_number":516,"context_line":""},{"line_number":517,"context_line":"        for audit_uuid in audit_uuids:"},{"line_number":518,"context_line":"            start_time \u003d time.time()"}],"source_content_type":"text/x-python","patch_set":1,"id":"2c94aee9_c5adb90e","line":515,"updated":"2026-07-21 13:04:23.000000000","message":"The \u0027time\u0027 module is imported inline within two test methods (lines 515 and 637) instead of at the module top level as required by PEP 8. This pattern also duplicates the top-level import already present in playwright_base.py.\n\n**Severity**: SUGGESTION | **Confidence**: 0.9\n\n**Benefit**: Inline imports violate PEP 8 and the OpenStack style guide. They create inconsistency with the rest of the codebase and may confuse readers about available dependencies.\n\n**Recommendation**:\nMove \u0027import time\u0027 to the top of test_filters.py alongside the existing imports (uuid, django.test, playwright_base), and remove the two inline import statements.","commit_id":"714489a9dc2a635ce72265f67135cd339f43857a"},{"author":{"_account_id":28006,"name":"teim-ci","display_name":"teim-ci","email":"ci@seanmooney.info","username":"ci-sean-mooney","status":"this is a third-party ci account run by sean-k-mooney on irc\nhosted at zuul.teim.app"},"tag":"autogenerated:zuul:automatic-ci","change_message_id":"b479387abbdbf3ceba9a36482eec28e23c3f4bc2","unresolved":false,"context_lines":[{"line_number":528,"context_line":"                )"},{"line_number":529,"context_line":""},{"line_number":530,"context_line":"        # Get the UUID of the first audit (target for filtering)"},{"line_number":531,"context_line":"        target_audit_uuid \u003d self._get_audit_uuid_via_api(audit_names[0])"},{"line_number":532,"context_line":""},{"line_number":533,"context_line":"        # Navigate to Action Plans page"},{"line_number":534,"context_line":"        self.page.goto(f\"{self.dashboard_url}/admin/action_plans/\")"}],"source_content_type":"text/x-python","patch_set":1,"id":"739f8942_39894ae1","line":531,"updated":"2026-07-21 13:04:23.000000000","message":"In test_filters_action_plans_by_audit, line 531 calls self._get_audit_uuid_via_api(audit_names[0]) to re-fetch the first audit\u0027s UUID, but that UUID was already retrieved and stored in audit_uuids[0] at line 511.\n\n**Severity**: SUGGESTION | **Confidence**: 0.9\n\n**Benefit**: Makes an unnecessary API call to the Watcher service, slightly increasing test execution time and adding a potential point of failure if the API is temporarily unavailable.\n\n**Recommendation**:\nReplace line 531 \u0027target_audit_uuid \u003d self._get_audit_uuid_via_api(audit_names[0])\u0027 with \u0027target_audit_uuid \u003d audit_uuids[0]\u0027 to reuse the already-fetched UUID.","commit_id":"714489a9dc2a635ce72265f67135cd339f43857a"},{"author":{"_account_id":28006,"name":"teim-ci","display_name":"teim-ci","email":"ci@seanmooney.info","username":"ci-sean-mooney","status":"this is a third-party ci account run by sean-k-mooney on irc\nhosted at zuul.teim.app"},"tag":"autogenerated:zuul:automatic-ci","change_message_id":"c456aba34044859836da2b168235470a0aaf98a4","unresolved":false,"context_lines":[{"line_number":323,"context_line":"        )"},{"line_number":324,"context_line":"        self.take_screenshot(\"templates_verified\")"},{"line_number":325,"context_line":""},{"line_number":326,"context_line":"    # NOTE: Test for audits filter by audit template is NOT implemented"},{"line_number":327,"context_line":"    # because the Audit model does not include audit_template_uuid field."},{"line_number":328,"context_line":"    # The UI has a \"Audit Template \u003d\" filter dropdown, but it cannot work"},{"line_number":329,"context_line":"    # properly without this field in the API response."}],"source_content_type":"text/x-python","patch_set":2,"id":"93c7a547_a3bb03db","line":326,"updated":"2026-07-21 15:14:46.000000000","message":"The new test_filters.py contains approximately 150 lines (lines 326-472) of a fully commented-out test method (test_audits_filter_by_audit_template). While the explanatory NOTE at lines 326-331 documenting why the test is skipped is valuable, the commented-out implementation code is dead weight t...\n\n**Severity**: SUGGESTION | **Confidence**: 0.8\n\n**Benefit**: Commented-out code creates maintenance noise and can mislead future contributors into thinking the code is temporarily disabled rather than intentionally omitted. It also adds ~140 lines to review for no executable value.\n\n**Recommendation**:\nKeep the explanatory NOTE comment (lines 326-331) with the bug reference, and delete the commented-out test body (lines 333-472). When the backend bug is fixed, the test can be written fresh based on the working API at that time.","commit_id":"44c1343e247e06040b3742cc2b0a81cbb1a0e582"},{"author":{"_account_id":28647,"name":"David","display_name":"morenod","email":"dsanzmor@redhat.com","username":"morenod"},"change_message_id":"02646968fcdb2ddbba5d1160902f5c68cdd6d17c","unresolved":false,"context_lines":[{"line_number":323,"context_line":"        )"},{"line_number":324,"context_line":"        self.take_screenshot(\"templates_verified\")"},{"line_number":325,"context_line":""},{"line_number":326,"context_line":"    # NOTE: Test for audits filter by audit template is NOT implemented"},{"line_number":327,"context_line":"    # because the Audit model does not include audit_template_uuid field."},{"line_number":328,"context_line":"    # The UI has a \"Audit Template \u003d\" filter dropdown, but it cannot work"},{"line_number":329,"context_line":"    # properly without this field in the API response."}],"source_content_type":"text/x-python","patch_set":2,"id":"663e2005_e5492407","line":326,"in_reply_to":"93c7a547_a3bb03db","updated":"2026-07-21 15:53:26.000000000","message":"It is commented so we can merge this code without depending on the bug to be fixed. we will uncomment when fixed","commit_id":"44c1343e247e06040b3742cc2b0a81cbb1a0e582"},{"author":{"_account_id":28006,"name":"teim-ci","display_name":"teim-ci","email":"ci@seanmooney.info","username":"ci-sean-mooney","status":"this is a third-party ci account run by sean-k-mooney on irc\nhosted at zuul.teim.app"},"tag":"autogenerated:zuul:automatic-ci","change_message_id":"11f143c713b311f485a3fe115735f0be7ed97a4b","unresolved":false,"context_lines":[{"line_number":503,"context_line":"        audit_uuids \u003d []"},{"line_number":504,"context_line":"        for i in range(2):"},{"line_number":505,"context_line":"            audit_name \u003d f\"test_filter_ap_audit_{uuid.uuid4().hex[:8]}\""},{"line_number":506,"context_line":"            self.create_audit(template_name, audit_name)"},{"line_number":507,"context_line":"            audit_names.append(audit_name)"},{"line_number":508,"context_line":"            audit_uuid \u003d self._get_audit_uuid_via_api(audit_name)"},{"line_number":509,"context_line":"            audit_uuids.append(audit_uuid)"}],"source_content_type":"text/x-python","patch_set":3,"id":"379ff1bf_f6755588","line":506,"updated":"2026-07-22 07:55:03.000000000","message":"In test_filters_action_plans_by_audit and test_filters_actions_by_action_plan, the create_audit() method already resolves and returns the audit UUID, but the tests discard the return value and call _get_audit_uuid_via_api() again. This is a redundant API call that can return None on transient fai...\n\n**Severity**: SUGGESTION | **Confidence**: 0.8\n\n**Benefit**: Each redundant API call adds latency and a potential failure point. If _get_audit_uuid_via_api returns None (e.g., API propagation delay), the subsequent watcher_client.audit.get(None) call will produce an opaque error instead of a clear test failure.\n\n**Recommendation**:\nCapture the return value: \u0027audit_uuid \u003d self.create_audit(template_name, audit_name)\u0027 and append directly to audit_uuids, eliminating the separate _get_audit_uuid_via_api call.","commit_id":"98a92d38ad2aef73b471a84f00037e1128811da8"},{"author":{"_account_id":28006,"name":"teim-ci","display_name":"teim-ci","email":"ci@seanmooney.info","username":"ci-sean-mooney","status":"this is a third-party ci account run by sean-k-mooney on irc\nhosted at zuul.teim.app"},"tag":"autogenerated:zuul:automatic-ci","change_message_id":"fadf70e5c70f8c0838ce12a3f806451ea83d7371","unresolved":false,"context_lines":[{"line_number":323,"context_line":"        )"},{"line_number":324,"context_line":"        self.take_screenshot(\"templates_verified\")"},{"line_number":325,"context_line":""},{"line_number":326,"context_line":"    # NOTE: Test for audits filter by audit template is NOT implemented"},{"line_number":327,"context_line":"    # because the Audit model does not include audit_template_uuid field."},{"line_number":328,"context_line":"    # The UI has a \"Audit Template \u003d\" filter dropdown, but it cannot work"},{"line_number":329,"context_line":"    # properly without this field in the API response."}],"source_content_type":"text/x-python","patch_set":5,"id":"5dc3aea7_f6d5cbcd","line":326,"updated":"2026-07-22 08:10:18.000000000","message":"Lines 326-472 contain a fully commented-out test method (test_audits_filter_by_audit_template) with debug print statements and incomplete logic. This is 20% of the file\u0027s total line count and represents dead code that adds maintenance burden.\n\n**Severity**: WARNING | **Confidence**: 0.9\n\n**Impact**: 147 lines of dead code inflate the file, confuse readers, and create ongoing maintenance noise. The useful information (backend bug reference and explanation) could be conveyed in 5-10 lines.\n\n**Suggestion**:\nRemove the commented-out test method. Keep only the NOTE comment block (lines 326-331) that references the backend bug and explains why the test is not implemented. When the backend bug is fixed, the test can be written fresh.","commit_id":"158114069b3c0b966df8e2870027ac9686ba159a"},{"author":{"_account_id":28006,"name":"teim-ci","display_name":"teim-ci","email":"ci@seanmooney.info","username":"ci-sean-mooney","status":"this is a third-party ci account run by sean-k-mooney on irc\nhosted at zuul.teim.app"},"tag":"autogenerated:zuul:automatic-ci","change_message_id":"fadf70e5c70f8c0838ce12a3f806451ea83d7371","unresolved":false,"context_lines":[{"line_number":637,"context_line":"            timeout \u003d 120"},{"line_number":638,"context_line":"            while time.time() - start_time \u003c timeout:"},{"line_number":639,"context_line":"                audit \u003d self.watcher_client.audit.get(audit_uuid)"},{"line_number":640,"context_line":"                if audit.state \u003d\u003d \u0027SUCCEEDED\u0027:"},{"line_number":641,"context_line":"                    # Get the action plan for this audit"},{"line_number":642,"context_line":"                    all_aps \u003d self.watcher_client.action_plan.list(detail\u003dTrue)"},{"line_number":643,"context_line":"                    audit_aps \u003d ["}],"source_content_type":"text/x-python","patch_set":5,"id":"093441ca_e5ada1ba","line":640,"updated":"2026-07-22 08:10:18.000000000","message":"In test_filters_actions_by_action_plan, when an audit transitions to SUCCEEDED state, the code queries action plans exactly once and breaks regardless of whether any were found. If the action plan has not yet been generated at the moment the audit state changes, the UUID is silently skipped.\n\n**Severity**: HIGH | **Confidence**: 0.8\n\n**Risk**: When the action plan is not yet generated at the moment the audit reaches SUCCEEDED, the test will fail the assertGreater at line 655 with a confusing \u0027No action plans were generated from audits\u0027 error, even though the action plans do exist — they just weren\u0027t ready yet. This leads to intermitten...\n\n**Priority**: Before merge\n**Why This Matters**: When the action plan is not yet generated at the moment the audit reaches SUCCEEDED, the test will fail the assertGreater at line 655 with a confusing \u0027No action plans were generated from audits\u0027 error, even though the action plans do exist — they just weren\u0027t ready yet. This leads to intermitten...\n\n**Recommendation**:\nAdd a secondary retry loop for action plan availability after the audit reaches SUCCEEDED. For example, continue polling for action plans within the timeout window rather than breaking immediately. Alternatively, restructure to wait for all audits to complete first, then query action plans once (as test_filters_action_plans_by_audit does).","commit_id":"158114069b3c0b966df8e2870027ac9686ba159a"},{"author":{"_account_id":28006,"name":"teim-ci","display_name":"teim-ci","email":"ci@seanmooney.info","username":"ci-sean-mooney","status":"this is a third-party ci account run by sean-k-mooney on irc\nhosted at zuul.teim.app"},"tag":"autogenerated:zuul:automatic-ci","change_message_id":"fcd7d83959a24eb16a7f7f5d0d67cfda9ef2e324","unresolved":false,"context_lines":[{"line_number":330,"context_line":"    # This is a backend bug that should be fixed in Watcher API."},{"line_number":331,"context_line":"    # Bug: https://bugs.launchpad.net/watcher-dashboard/+bug/2161426"},{"line_number":332,"context_line":"    #"},{"line_number":333,"context_line":"    #     # def test_audits_filter_by_audit_template(self):"},{"line_number":334,"context_line":"    #         \"\"\"Test that audits can be filtered by audit template."},{"line_number":335,"context_line":"    #"},{"line_number":336,"context_line":"    #         This test verifies that the filter functionality on the Audits"}],"source_content_type":"text/x-python","patch_set":6,"id":"11cd2414_5b1fa07a","line":333,"updated":"2026-07-22 08:23:56.000000000","message":"The file contains approximately 140 lines of commented-out test code (lines 333-472) for a disabled test_audits_filter_by_audit_template method. This dead code clutters the file and creates maintenance risk, as future developers may be unsure whether to maintain or remove it.\n\n**Severity**: WARNING | **Confidence**: 0.9\n\n**Impact**: 140 lines of commented-out code increases the file size by ~20%, makes the file harder to navigate, and creates confusion about whether the code is work-in-progress or permanently disabled. It sets a poor precedent for code hygiene in the test suite.\n\n**Suggestion**:\nRemove the commented-out test method body (lines 333-472). Keep only the NOTE comment (lines 326-331) explaining why the test is not implemented, with the bug reference. If a draft of the test is needed for future work, it can be tracked via the Launchpad bug or a follow-up change.","commit_id":"33e7d2b70ff8c8dda0d1f719094ece16abda57a8"},{"author":{"_account_id":28006,"name":"teim-ci","display_name":"teim-ci","email":"ci@seanmooney.info","username":"ci-sean-mooney","status":"this is a third-party ci account run by sean-k-mooney on irc\nhosted at zuul.teim.app"},"tag":"autogenerated:zuul:automatic-ci","change_message_id":"f7c232e3a1e8b05472d6f373e65a45ed75cc924a","unresolved":false,"context_lines":[{"line_number":323,"context_line":"        )"},{"line_number":324,"context_line":"        self.take_screenshot(\"templates_verified\")"},{"line_number":325,"context_line":""},{"line_number":326,"context_line":"    # NOTE: Test for audits filter by audit template is NOT implemented"},{"line_number":327,"context_line":"    # because the Audit model does not include audit_template_uuid field."},{"line_number":328,"context_line":"    # The UI has a \"Audit Template \u003d\" filter dropdown, but it cannot work"},{"line_number":329,"context_line":"    # properly without this field in the API response."}],"source_content_type":"text/x-python","patch_set":7,"id":"614f1fad_2a17fbde","line":326,"updated":"2026-07-24 11:11:33.000000000","message":"Lines 326-472 contain an entire commented-out test function (test_audits_filter_by_audit_template) including full implementation, docstrings, and assertions. This constitutes ~20% of the file\u0027s total 726 lines and is dead code that adds noise and maintenance burden.\n\n**Severity**: WARNING | **Confidence**: 0.9\n\n**Impact**: 146 lines of commented-out code makes the file harder to read, review, and maintain. It creates confusion about whether the code is intended to be uncommented, and increases the cost of future modifications to the file. The bug reference URL and a brief NOTE comment are sufficient to document the...\n\n**Suggestion**:\nRemove the commented-out code block (lines 333-472). Keep the NOTE comment (lines 326-331) that references the bug. If the implementation details are valuable for future reference, link to them in the bug report instead.","commit_id":"31639bccd8e33ca011cb626a2fc43ca19d54e4a1"},{"author":{"_account_id":28006,"name":"teim-ci","display_name":"teim-ci","email":"ci@seanmooney.info","username":"ci-sean-mooney","status":"this is a third-party ci account run by sean-k-mooney on irc\nhosted at zuul.teim.app"},"tag":"autogenerated:zuul:automatic-ci","change_message_id":"f7c232e3a1e8b05472d6f373e65a45ed75cc924a","unresolved":false,"context_lines":[{"line_number":503,"context_line":"        audit_uuids \u003d []"},{"line_number":504,"context_line":"        for i in range(2):"},{"line_number":505,"context_line":"            audit_name \u003d f\"test_filter_ap_audit_{uuid.uuid4().hex[:8]}\""},{"line_number":506,"context_line":"            self.create_audit(template_name, audit_name)"},{"line_number":507,"context_line":"            audit_names.append(audit_name)"},{"line_number":508,"context_line":"            audit_uuid \u003d self._get_audit_uuid_via_api(audit_name)"},{"line_number":509,"context_line":"            audit_uuids.append(audit_uuid)"}],"source_content_type":"text/x-python","patch_set":7,"id":"36fc567b_124c9f3e","line":506,"updated":"2026-07-24 11:11:33.000000000","message":"In test_filters_action_plans_by_audit and test_filters_actions_by_action_plan, create_audit() is called but its return value (the audit UUID) is ignored, and then _get_audit_uuid_via_api() is called separately to retrieve the same UUID. This is a redundant extra API call and misses an opportunity...\n\n**Severity**: SUGGESTION | **Confidence**: 0.8\n\n**Benefit**: Each redundant _get_audit_uuid_via_api call adds an unnecessary Watcher API round-trip. Additionally, _get_audit_uuid_via_api can return None (per base class line 497), and the test does not check for None before appending to audit_uuids, which could lead to confusing failures later when None is...\n\n**Recommendation**:\nUse the return value from create_audit() directly: \u0027audit_uuid \u003d self.create_audit(template_name, audit_name)\u0027 instead of ignoring it and calling _get_audit_uuid_via_api separately. This eliminates redundant API calls and makes the data flow clearer.","commit_id":"31639bccd8e33ca011cb626a2fc43ca19d54e4a1"},{"author":{"_account_id":28006,"name":"teim-ci","display_name":"teim-ci","email":"ci@seanmooney.info","username":"ci-sean-mooney","status":"this is a third-party ci account run by sean-k-mooney on irc\nhosted at zuul.teim.app"},"tag":"autogenerated:zuul:automatic-ci","change_message_id":"212eb264bf5379f0c91a1a1e3d11290b130fa230","unresolved":false,"context_lines":[{"line_number":323,"context_line":"        )"},{"line_number":324,"context_line":"        self.take_screenshot(\"templates_verified\")"},{"line_number":325,"context_line":""},{"line_number":326,"context_line":"    # NOTE: Test for audits filter by audit template is NOT implemented"},{"line_number":327,"context_line":"    # because the Audit model does not include audit_template_uuid field."},{"line_number":328,"context_line":"    # The UI has a \"Audit Template \u003d\" filter dropdown, but it cannot work"},{"line_number":329,"context_line":"    # properly without this field in the API response."}],"source_content_type":"text/x-python","patch_set":8,"id":"d8c8182c_9c4ad18e","line":326,"updated":"2026-07-24 11:43:25.000000000","message":"The file contains approximately 147 lines of commented-out code for a test that was not implemented due to a backend API bug. While a NOTE explains the reason, this volume of dead code creates maintenance noise and should be tracked via the linked bug report instead.\n\n**Severity**: SUGGESTION | **Confidence**: 0.9\n\n**Benefit**: 147 lines of dead code in a 724-line file increases cognitive load for reviewers and future maintainers. It can become stale, diverge from the actual API as it evolves, and be mistakenly uncommented without understanding the original constraints.\n\n**Recommendation**:\nRemove the commented-out test code entirely. The NOTE at lines 326-331 with the bug reference (https://bugs.launchpad.net/watcher-dashboard/+bug/2161426) is sufficient to document why this test is not implemented. The full test implementation can be referenced from the bug report or a future patch when the backend issue is resolved.","commit_id":"35271ae1cf1e1d8fe2a66cb975fd63190f904014"}]}
