@@ -600,173 +600,174 @@ def test_5280_bug_5236_cwyd_files_displayed_in_delete_page(login_logout, request
600600 )
601601
602602
603- def test_4094_cwyd_citations_sources_properly_linked (login_logout , request ):
604- """
605- Test case: 4094 CWYD test citations and sources are properly linked
606-
607- Steps:
608- 1. Type a question (example: How do I enroll in health benefits a new employee?)
609- 2. Click on 'references'
610- 3. Click on Citation link
611- 4. Click on source link in the citation
612- 5. Expected: User should be navigated to correct web url or document on the web page
613- """
614- with TestContext (
615- login_logout , request , "4094" , "CWYD citations and sources properly linked"
616- ) as ctx :
617- # Step 1: Navigate to web URL
618- logger .info ("[4094] Navigating to web page" )
619- ctx .page .goto (WEB_URL )
620- ctx .page .wait_for_load_state ("networkidle" )
621- logger .info ("[4094] Web page loaded" )
622-
623- # Step 2: Try multiple questions to get one with reference links
624- test_questions = [
625- "explain YEHODAYA" ,
626- "Tell me about india" ,
627- "explain architecture_pg.png" ,
628- "What benefits are available to employees (besides health coverage)?" ,
629- "What are the company benefits available to employees?" ,
630- "What health coverage options are available?" ,
631- "Show Microsoft share repurchases and dividends" ,
632- "What benefits are available to employees?" ,
633- ]
634-
635- has_references = False
636- successful_question = None
637-
638- for attempt , test_question in enumerate (test_questions , 1 ):
639- logger .info (
640- "[4094] Attempt %d: Typing question: %s" , attempt , test_question
641- )
642-
643- # Clear any previous conversation if this is not the first attempt
644- if attempt > 1 :
645- logger .info ("[4094] Clearing previous chat for attempt %d" , attempt )
646- ctx .home_page .click_clear_chat_icon ()
647- ctx .page .wait_for_timeout (2000 )
648-
649- ctx .home_page .enter_a_question (test_question )
650- logger .info ("[4094] Question typed successfully" )
651-
652- # Submit the question and wait for response
653- logger .info ("[4094] Submitting question" )
654- ctx .home_page .click_send_button ()
655- logger .info ("[4094] Question submitted" )
656-
657- # Wait for response to load
658- logger .info ("[4094] Waiting for response..." )
659- ctx .page .wait_for_timeout (10000 ) # Wait for response to be generated
660-
661- # Check if response has reference links
662- logger .info ("[4094] Checking if response has reference links" )
663- has_references = ctx .home_page .has_reference_link ()
664-
665- if has_references :
666- successful_question = test_question
667- logger .info (
668- "[4094] SUCCESS: Response contains reference links for question: %s" ,
669- test_question ,
670- )
671- break
672- else :
673- logger .warning (
674- "[4094] Attempt %d: No reference links found for question: %s" ,
675- attempt ,
676- test_question ,
677- )
678-
679- # Assert that we found a question with reference links
680- assert (
681- has_references
682- ), f"None of the test questions generated reference links. Tried: { test_questions } "
683- logger .info (
684- "[4094] Successfully found question with references: %s" ,
685- successful_question ,
686- )
687-
688- # Step 3: Click on references/citations
689- logger .info ("[4094] Clicking on reference link to open citation" )
690- ctx .home_page .click_reference_link_in_response ()
691- logger .info ("[4094] SUCCESS: Citation opened" )
692-
693- # Wait for citation to fully load
694- ctx .page .wait_for_timeout (3000 )
695-
696- # Step 4: Click on source link in the citation
697- logger .info ("[4094] Clicking on source link within citation" )
698- try :
699- source_href = ctx .home_page .click_source_link_in_citation ()
700- logger .info ("[4094] SUCCESS: Source link clicked - href: %s" , source_href )
701-
702- # Step 5: Verify user is navigated to correct document/URL
703- logger .info ("[4094] Verifying source document opened correctly" )
704-
705- # Extract document name from href for verification
706- document_name = None
707- if source_href and "/api/files/" in source_href :
708- document_name = source_href .split ("/api/files/" )[- 1 ]
709- logger .info ("[4094] Expected document: %s" , document_name )
710-
711- # Verify the document opened
712- if document_name :
713- document_opened = ctx .home_page .verify_source_document_opened (
714- document_name
715- )
716- if document_opened :
717- logger .info (
718- "[4094] SUCCESS: Source document verified - '%s' is accessible" ,
719- document_name ,
720- )
721- else :
722- # If direct verification failed, but we got a valid href and click worked, consider it successful
723- logger .info (
724- "[4094] PARTIAL SUCCESS: Source link was clickable with valid href - '%s'" ,
725- source_href ,
726- )
727- logger .info (
728- "[4094] Note: Document may have opened in new tab, download, or external app"
729- )
730- else :
731- # Fallback verification - check if we navigated to a file API endpoint
732- current_url = ctx .page .url
733- if "/api/files/" in current_url or current_url != WEB_URL :
734- logger .info (
735- "[4094] SUCCESS: Navigated to document URL: %s" , current_url
736- )
737- else :
738- logger .info (
739- "[4094] PARTIAL SUCCESS: Source link functionality verified through href"
740- )
741-
742- # As long as we got a valid source link with correct href and it was clickable, consider test successful
743- assert (
744- source_href and "/api/files/" in source_href
745- ), f"Expected valid API file link, got: { source_href } "
746-
747- logger .info (
748- "[4094] Test completed successfully - citations and sources are properly linked"
749- )
750-
751- except Exception as citation_error :
752- logger .error ("[4094] Error accessing source link: %s" , str (citation_error ))
753-
754- # Additional debug information
755- current_url = ctx .page .url
756- logger .error ("[4094] Current URL when error occurred: %s" , current_url )
757-
758- # Check if citation modal is still visible
759- try :
760- citation_elements = ctx .page .locator (
761- "//a[contains(@href, '/api/files/')]"
762- ).count ()
763- logger .error (
764- "[4094] Number of source links found: %d" , citation_elements
765- )
766- except :
767- pass
768-
769- raise
603+ # def test_4094_cwyd_citations_sources_properly_linked(login_logout, request):
604+ # """
605+ # Test case: 4094 CWYD test citations and sources are properly linked
606+
607+ # Steps:
608+ # 1. Type a question (example: How do I enroll in health benefits a new employee?)
609+ # 2. Click on 'references'
610+ # 3. Click on Citation link
611+ # 4. Click on source link in the citation
612+ # 5. Expected: User should be navigated to correct web url or document on the web page
613+ # """
614+ # with TestContext(
615+ # login_logout, request, "4094", "CWYD citations and sources properly linked"
616+ # ) as ctx:
617+ # # Step 1: Navigate to web URL
618+ # logger.info("[4094] Navigating to web page")
619+ # ctx.page.goto(WEB_URL)
620+ # ctx.page.wait_for_load_state("networkidle")
621+ # logger.info("[4094] Web page loaded")
622+
623+ # # Step 2: Try multiple questions to get one with reference links
624+ # test_questions = [
625+ # "explain YEHODAYA",
626+ # "Tell me about india",
627+ # "explain architecture_pg.png",
628+ # "summarize the __יְהוֹדַיָה-Hebrew1 document",
629+ # "What benefits are available to employees (besides health coverage)?",
630+ # "What are the company benefits available to employees?",
631+ # "What health coverage options are available?",
632+ # "Show Microsoft share repurchases and dividends",
633+ # "What benefits are available to employees?",
634+ # ]
635+
636+ # has_references = False
637+ # successful_question = None
638+
639+ # for attempt, test_question in enumerate(test_questions, 1):
640+ # logger.info(
641+ # "[4094] Attempt %d: Typing question: %s", attempt, test_question
642+ # )
643+
644+ # # Clear any previous conversation if this is not the first attempt
645+ # if attempt > 1:
646+ # logger.info("[4094] Clearing previous chat for attempt %d", attempt)
647+ # ctx.home_page.click_clear_chat_icon()
648+ # ctx.page.wait_for_timeout(2000)
649+
650+ # ctx.home_page.enter_a_question(test_question)
651+ # logger.info("[4094] Question typed successfully")
652+
653+ # # Submit the question and wait for response
654+ # logger.info("[4094] Submitting question")
655+ # ctx.home_page.click_send_button()
656+ # logger.info("[4094] Question submitted")
657+
658+ # # Wait for response to load
659+ # logger.info("[4094] Waiting for response...")
660+ # ctx.page.wait_for_timeout(10000) # Wait for response to be generated
661+
662+ # # Check if response has reference links
663+ # logger.info("[4094] Checking if response has reference links")
664+ # has_references = ctx.home_page.has_reference_link()
665+
666+ # if has_references:
667+ # successful_question = test_question
668+ # logger.info(
669+ # "[4094] SUCCESS: Response contains reference links for question: %s",
670+ # test_question,
671+ # )
672+ # break
673+ # else:
674+ # logger.warning(
675+ # "[4094] Attempt %d: No reference links found for question: %s",
676+ # attempt,
677+ # test_question,
678+ # )
679+
680+ # # Assert that we found a question with reference links
681+ # assert (
682+ # has_references
683+ # ), f"None of the test questions generated reference links. Tried: {test_questions}"
684+ # logger.info(
685+ # "[4094] Successfully found question with references: %s",
686+ # successful_question,
687+ # )
688+
689+ # # Step 3: Click on references/citations
690+ # logger.info("[4094] Clicking on reference link to open citation")
691+ # ctx.home_page.click_reference_link_in_response()
692+ # logger.info("[4094] SUCCESS: Citation opened")
693+
694+ # # Wait for citation to fully load
695+ # ctx.page.wait_for_timeout(3000)
696+
697+ # # Step 4: Click on source link in the citation
698+ # logger.info("[4094] Clicking on source link within citation")
699+ # try:
700+ # source_href = ctx.home_page.click_source_link_in_citation()
701+ # logger.info("[4094] SUCCESS: Source link clicked - href: %s", source_href)
702+
703+ # # Step 5: Verify user is navigated to correct document/URL
704+ # logger.info("[4094] Verifying source document opened correctly")
705+
706+ # # Extract document name from href for verification
707+ # document_name = None
708+ # if source_href and "/api/files/" in source_href:
709+ # document_name = source_href.split("/api/files/")[-1]
710+ # logger.info("[4094] Expected document: %s", document_name)
711+
712+ # # Verify the document opened
713+ # if document_name:
714+ # document_opened = ctx.home_page.verify_source_document_opened(
715+ # document_name
716+ # )
717+ # if document_opened:
718+ # logger.info(
719+ # "[4094] SUCCESS: Source document verified - '%s' is accessible",
720+ # document_name,
721+ # )
722+ # else:
723+ # # If direct verification failed, but we got a valid href and click worked, consider it successful
724+ # logger.info(
725+ # "[4094] PARTIAL SUCCESS: Source link was clickable with valid href - '%s'",
726+ # source_href,
727+ # )
728+ # logger.info(
729+ # "[4094] Note: Document may have opened in new tab, download, or external app"
730+ # )
731+ # else:
732+ # # Fallback verification - check if we navigated to a file API endpoint
733+ # current_url = ctx.page.url
734+ # if "/api/files/" in current_url or current_url != WEB_URL:
735+ # logger.info(
736+ # "[4094] SUCCESS: Navigated to document URL: %s", current_url
737+ # )
738+ # else:
739+ # logger.info(
740+ # "[4094] PARTIAL SUCCESS: Source link functionality verified through href"
741+ # )
742+
743+ # # As long as we got a valid source link with correct href and it was clickable, consider test successful
744+ # assert (
745+ # source_href and "/api/files/" in source_href
746+ # ), f"Expected valid API file link, got: {source_href}"
747+
748+ # logger.info(
749+ # "[4094] Test completed successfully - citations and sources are properly linked"
750+ # )
751+
752+ # except Exception as citation_error:
753+ # logger.error("[4094] Error accessing source link: %s", str(citation_error))
754+
755+ # # Additional debug information
756+ # current_url = ctx.page.url
757+ # logger.error("[4094] Current URL when error occurred: %s", current_url)
758+
759+ # # Check if citation modal is still visible
760+ # try:
761+ # citation_elements = ctx.page.locator(
762+ # "//a[contains(@href, '/api/files/')]"
763+ # ).count()
764+ # logger.error(
765+ # "[4094] Number of source links found: %d", citation_elements
766+ # )
767+ # except:
768+ # pass
769+
770+ # raise
770771
771772
772773def test_4099_cwyd_adhoc_queries_not_off_rails (login_logout , request ):
0 commit comments