issues/381/user_tool.py (116 lines of code) (raw):

import sys, os base_path = os.path.abspath(os.path.join(os.path.dirname(__file__), '..')) sys.path.insert(0, base_path) from playwright.sync_api import sync_playwright, expect import re, time import imaplib import email import random import string from utils.trace_cleaner import trace_cleaner NEWDOT_URL = "https://dev.new.expensify.com:8082/" EMAIL = "pehlajrajput1+345@gmail.com" PASSWORD = "" def new_dot_login(page, email): page.goto(NEWDOT_URL) page.locator('input[type="email"]').fill(email) page.wait_for_timeout(2000) page.get_by_role("button", name="Continue").nth(0).click() page.wait_for_timeout(10000) page.locator('input[data-testid="validateCode"]').fill("123456") def zip_error(page, assertion_errors): try: page.get_by_label("My settings").click() page.wait_for_timeout(1000) page.get_by_label("England's Lane, London,").click() page.wait_for_timeout(1000) page.get_by_label("Address line 1").get_by_role("textbox").fill("Maliebaan 87") page.wait_for_timeout(1000) page.get_by_text("Maliebaan").first.click() page.wait_for_timeout(1000) page.get_by_role("textbox", name="Zip / Postcode").fill("1012 JS") page.wait_for_timeout(1000) page.get_by_role("button", name="Save").click() page.wait_for_timeout(1000) expect(page.get_by_text("Incorrect zip code format.")).not_to_be_visible() except AssertionError as e: assertion_errors.append(f"Error: Zip code validation failed for 'Maliebaan 87': {str(e)}") try: page.get_by_label("87 Maliebaan, Utrecht,").click() page.wait_for_timeout(1000) page.get_by_label("Address line 1").get_by_role("textbox").fill("tokyo") page.wait_for_timeout(1000) page.get_by_text("Tokyo Metro Marunouchi Line").click() page.wait_for_timeout(1000) page.get_by_role("textbox", name="Zip / Postcode").fill("100-0001") page.wait_for_timeout(1000) page.get_by_role("button", name="Save").click() page.wait_for_timeout(1000) expect(page.get_by_text("Incorrect zip code format.")).not_to_be_visible() except AssertionError as e: assertion_errors.append(f"Error: Zip code validation failed for 'Tokyo Metro Marunouchi Line': {str(e)}") try: page.get_by_label("Tokyo Metro Marunouchi Line,").click() page.wait_for_timeout(1000) page.get_by_label("Address line 1").get_by_role("textbox").fill("engla") page.wait_for_timeout(1000) page.get_by_text("England's Lane").click() page.wait_for_timeout(1000) page.get_by_role("textbox", name="Zip / Postcode").fill("SW1A 1AA") page.wait_for_timeout(1000) page.get_by_role("button", name="Save").click() page.wait_for_timeout(1000) expect(page.get_by_text("Incorrect zip code format.")).not_to_be_visible() except AssertionError as e: assertion_errors.append(f"Error: Zip code validation failed for 'SW1A 1AA': {str(e)}") try: page.get_by_label("England's Lane, London,").click() page.get_by_role("textbox", name="Zip / Postcode").fill(",") page.wait_for_timeout(1000) page.get_by_role("button", name="Save").click() page.wait_for_timeout(1000) expect(page.get_by_text("Incorrect zip code format.")).to_be_visible() except AssertionError as e: assertion_errors.append(f"Error: Zip code validation failed for ',': {str(e)}") try: page.get_by_label("Back").click() page.get_by_label("England's Lane, London,").click() page.wait_for_timeout(1000) page.get_by_label("Address line 1").get_by_role("textbox").click() page.get_by_label("Address line 1").get_by_role("textbox").fill("2574 Fairfield Road") page.wait_for_timeout(1000) page.get_by_text("Fairfield Road").first.click() page.wait_for_timeout(1000) page.get_by_role("textbox", name="Zip / Postcode").fill("234GEs") page.wait_for_timeout(1000) page.get_by_role("button", name="Save").click() page.wait_for_timeout(1000) expect(page.get_by_text("Incorrect zip code format.")).to_be_visible() except AssertionError as e: assertion_errors.append(f"Error: Zip code validation failed for 'England's Lane, London': {str(e)}") def test_expensify_0000(): assertion_errors = [] # List to store assertion errors with sync_playwright() as p: browser = p.chromium.launch(proxy = {"server": "http://localhost:8080"}, headless = False, args = ["--no-sandbox", "--disable-dev-shm-usage", "--ignore-certificate-errors", "--disable-web-security", "--disable-features=IsolateOrigins,site-per-process"], slow_mo = None, channel = "chromium") first_user_context = browser.new_context(ignore_https_errors=True) first_user_context.tracing.start(screenshots=True, snapshots=True, sources=True) page = first_user_context.new_page() page.wait_for_timeout(2000) try: new_dot_login(page, "pehlajrajput1+345@gmail.com") zip_error(page, assertion_errors) finally: first_user_context.tracing.stop() first_user_context.tracing.export_trace("/app/expensify/user_tool/output_browser1.zip") trace_cleaner("/app/expensify/user_tool/output_browser1.zip") browser.close() if assertion_errors: print("\nAssertion Errors:") for error in assertion_errors: print(f"- {error}") raise AssertionError("One or more assertions failed. Check the logs above.") if __name__ == "__main__": try: test_expensify_0000() except AssertionError as e: print(str(e))