|
177 | 177 | from je_web_runner.utils.recorder.browser_recorder import save_recording as recorder_save_recording |
178 | 178 | from je_web_runner.utils.recorder.browser_recorder import start_recording as recorder_start |
179 | 179 | from je_web_runner.utils.recorder.browser_recorder import stop_recording as recorder_stop |
| 180 | +from je_web_runner.utils.chrome_profile.profile_manager import ( |
| 181 | + ChromeProfileError, |
| 182 | + StealthFlags, |
| 183 | + build_chrome_options as chrome_profile_build_options, |
| 184 | + build_playwright_persistent_context, |
| 185 | + build_stealth_chrome_driver, |
| 186 | + chrome_profile_session, |
| 187 | + cleanup_chrome_locks, |
| 188 | + minimise_chrome_windows, |
| 189 | + snapshot_chrome_profile, |
| 190 | + sync_chrome_profile_back, |
| 191 | +) |
| 192 | +from je_web_runner.utils.failure_triage.triage import ( |
| 193 | + FailureTriageError, |
| 194 | + TriageReport, |
| 195 | + TriageSignals, |
| 196 | + extract_signals_from_bundle, |
| 197 | + render_markdown as triage_render_markdown, |
| 198 | + save_report as triage_save_report, |
| 199 | + triage_bundle, |
| 200 | + triage_failure, |
| 201 | +) |
| 202 | +from je_web_runner.utils.flake_detector.detector import ( |
| 203 | + FlakeDetectorError, |
| 204 | + FlakeScore, |
| 205 | + QuarantineEntry, |
| 206 | + QuarantineRegistry, |
| 207 | + compute_flake_scores, |
| 208 | + flaky_paths as flake_detector_flaky_paths, |
| 209 | + flaky_quarantine, |
| 210 | + quarantine_flaky, |
| 211 | + quarantine_report_markdown, |
| 212 | + release_if_stable, |
| 213 | +) |
| 214 | +from je_web_runner.utils.locator_health.health_report import ( |
| 215 | + FallbackHitTracker, |
| 216 | + LocatorFinding, |
| 217 | + LocatorHealthError, |
| 218 | + LocatorHealthReport, |
| 219 | + UpgradeSuggestion as LocatorUpgradeSuggestion, |
| 220 | + apply_upgrades as locator_apply_upgrades, |
| 221 | + build_health_report as locator_build_health_report, |
| 222 | + fallback_hit_tracker, |
| 223 | + render_health_markdown as locator_render_health_markdown, |
| 224 | + save_health_report, |
| 225 | + scan_action_file as locator_scan_action_file, |
| 226 | + scan_project as locator_scan_project, |
| 227 | + suggest_upgrade as locator_suggest_upgrade, |
| 228 | + suggest_upgrades as locator_suggest_upgrades, |
| 229 | +) |
| 230 | +from je_web_runner.utils.device_cloud.real_device import ( |
| 231 | + CloudCredentials, |
| 232 | + CloudSession, |
| 233 | + DeviceCloudError, |
| 234 | + RealDeviceCaps, |
| 235 | + build_capabilities as device_cloud_build_capabilities, |
| 236 | + connect_real_device, |
| 237 | + fetch_session_info, |
| 238 | + load_credentials as device_cloud_load_credentials, |
| 239 | + session_summary_markdown, |
| 240 | + update_session_status, |
| 241 | +) |
| 242 | +from je_web_runner.utils.otel_bridge.trace_bridge import ( |
| 243 | + TraceBridgeError, |
| 244 | + TraceContext, |
| 245 | + bridged_span_playwright, |
| 246 | + bridged_span_selenium, |
| 247 | + clear_headers_playwright, |
| 248 | + clear_headers_selenium, |
| 249 | + current_otel_context, |
| 250 | + inject_headers_playwright, |
| 251 | + inject_headers_selenium, |
| 252 | + parse_traceparent, |
| 253 | + random_trace_context, |
| 254 | + trace_link, |
| 255 | +) |
| 256 | +from je_web_runner.utils.mutation_testing.mutator import ( |
| 257 | + Mutation, |
| 258 | + MutationResult, |
| 259 | + MutationScore, |
| 260 | + MutationTestingError, |
| 261 | + MutationType, |
| 262 | + apply_mutation, |
| 263 | + assert_min_score as mutation_assert_min_score, |
| 264 | + generate_mutations, |
| 265 | + render_mutation_markdown, |
| 266 | + run_mutation_testing, |
| 267 | + run_mutation_testing_on_file, |
| 268 | +) |
| 269 | +from je_web_runner.utils.otp_interceptor.interceptor import ( |
| 270 | + ImapProvider, |
| 271 | + InMemoryProvider as OtpInMemoryProvider, |
| 272 | + InterceptedMessage, |
| 273 | + MailHogProvider, |
| 274 | + MailpitProvider, |
| 275 | + OtpInterceptError, |
| 276 | + OtpProvider, |
| 277 | + WebhookSmsProvider, |
| 278 | + extract_otp_from_text, |
| 279 | + wait_for_otp, |
| 280 | +) |
| 281 | +from je_web_runner.utils.download_verify.verifier import ( |
| 282 | + DownloadAssertion, |
| 283 | + DownloadVerifyError, |
| 284 | + assert_csv_columns, |
| 285 | + assert_csv_row_count, |
| 286 | + assert_download, |
| 287 | + assert_file_sha256, |
| 288 | + assert_json_matches_schema, |
| 289 | + assert_pdf_contains, |
| 290 | + assert_pdf_matches, |
| 291 | + extract_pdf_text, |
| 292 | + read_csv_rows, |
| 293 | + read_excel_rows, |
| 294 | + read_json_file, |
| 295 | + sha256_of_file, |
| 296 | + wait_for_download, |
| 297 | +) |
| 298 | +from je_web_runner.utils.test_auto_repair.repair import ( |
| 299 | + RepairPlan, |
| 300 | + TestAutoRepairError, |
| 301 | + apply_repair, |
| 302 | + collect_git_diff, |
| 303 | + propose_repair, |
| 304 | + render_repair_markdown, |
| 305 | + repair_from_bundle, |
| 306 | +) |
| 307 | +from je_web_runner.utils.edge_case_generator.generator import ( |
| 308 | + EdgeCase, |
| 309 | + EdgeCaseCategory, |
| 310 | + EdgeCaseGeneratorError, |
| 311 | + EdgeCaseSuite, |
| 312 | + generate_edge_cases, |
| 313 | + generate_edge_cases_from_file, |
| 314 | + render_suite_markdown as edge_case_render_markdown, |
| 315 | + write_suite_to_dir as edge_case_write_suite, |
| 316 | +) |
| 317 | +from je_web_runner.utils.openapi_to_e2e.generator import ( |
| 318 | + GeneratedTest as OpenAPIGeneratedTest, |
| 319 | + GenerationResult as OpenAPIGenerationResult, |
| 320 | + OpenAPIGeneratorError, |
| 321 | + generate_tests_from_file as openapi_generate_from_file, |
| 322 | + generate_tests_from_spec as openapi_generate_from_spec, |
| 323 | + load_spec as openapi_load_spec, |
| 324 | + synthesize_example as openapi_synthesize_example, |
| 325 | + write_tests_to_dir as openapi_write_tests, |
| 326 | +) |
| 327 | +from je_web_runner.utils.cross_tab_sync.sync_assertions import ( |
| 328 | + CrossTabSyncError, |
| 329 | + PropagationResult, |
| 330 | + assert_state_propagates, |
| 331 | + broadcast_message, |
| 332 | + collect_broadcast_messages, |
| 333 | + get_storage_value, |
| 334 | + install_broadcast_recorder, |
| 335 | + post_message_to_page, |
| 336 | + set_storage_value, |
| 337 | + wait_for_broadcast, |
| 338 | + wait_for_storage, |
| 339 | +) |
| 340 | +from je_web_runner.utils.visual_ai.perceptual import ( |
| 341 | + HashResult as VisualHashResult, |
| 342 | + SimilarityResult as VisualSimilarityResult, |
| 343 | + VisualAIError, |
| 344 | + assert_visual_similar, |
| 345 | + average_hash as visual_average_hash, |
| 346 | + compare_images as visual_compare_images, |
| 347 | + difference_hash as visual_difference_hash, |
| 348 | + hamming_distance as visual_hamming_distance, |
| 349 | + hash_similarity as visual_hash_similarity, |
| 350 | + perceptual_hash as visual_perceptual_hash, |
| 351 | +) |
| 352 | +from je_web_runner.utils.test_scheduler.scheduler import ( |
| 353 | + Schedule, |
| 354 | + TestCandidate, |
| 355 | + TestSchedulerError, |
| 356 | + build_candidates_from_ledger, |
| 357 | + render_schedule_markdown, |
| 358 | + schedule_tests, |
| 359 | + value_density as scheduler_value_density, |
| 360 | + value_of as scheduler_value_of, |
| 361 | +) |
| 362 | +from je_web_runner.utils.walkthrough_docs.generator import ( |
| 363 | + Walkthrough, |
| 364 | + WalkthroughError, |
| 365 | + WalkthroughStep, |
| 366 | + build_walkthrough, |
| 367 | + collect_steps as walkthrough_collect_steps, |
| 368 | + narrate_steps as walkthrough_narrate_steps, |
| 369 | + render_confluence as walkthrough_render_confluence, |
| 370 | + render_markdown as walkthrough_render_markdown, |
| 371 | + save_walkthrough, |
| 372 | +) |
| 373 | +from je_web_runner.utils.live_dashboard.server import ( |
| 374 | + DashboardConfig, |
| 375 | + DashboardServer, |
| 376 | + LiveDashboardError, |
| 377 | + build_summary as dashboard_build_summary, |
| 378 | +) |
180 | 379 | __all__ = [ |
181 | 380 | "web_element_wrapper", "set_webdriver_options_argument", |
182 | 381 | "webdriver_wrapper_instance", "get_webdriver_manager", |
|
236 | 435 | "pw_wait_for_timeout", "pw_wait_for_url", |
237 | 436 | "pw_set_viewport_size", "pw_viewport_size", |
238 | 437 | "pw_mouse_click", "pw_mouse_move", "pw_mouse_down", "pw_mouse_up", |
239 | | - "pw_keyboard_press", "pw_keyboard_type", "pw_keyboard_down", "pw_keyboard_up" |
| 438 | + "pw_keyboard_press", "pw_keyboard_type", "pw_keyboard_down", "pw_keyboard_up", |
| 439 | + # Phase 1: chrome_profile |
| 440 | + "ChromeProfileError", "StealthFlags", |
| 441 | + "chrome_profile_build_options", "build_playwright_persistent_context", |
| 442 | + "build_stealth_chrome_driver", "chrome_profile_session", |
| 443 | + "cleanup_chrome_locks", "minimise_chrome_windows", |
| 444 | + "snapshot_chrome_profile", "sync_chrome_profile_back", |
| 445 | + # Phase 2: failure_triage |
| 446 | + "FailureTriageError", "TriageReport", "TriageSignals", |
| 447 | + "extract_signals_from_bundle", "triage_render_markdown", |
| 448 | + "triage_save_report", "triage_bundle", "triage_failure", |
| 449 | + # Phase 3: flake_detector |
| 450 | + "FlakeDetectorError", "FlakeScore", "QuarantineEntry", "QuarantineRegistry", |
| 451 | + "compute_flake_scores", "flake_detector_flaky_paths", "flaky_quarantine", |
| 452 | + "quarantine_flaky", "quarantine_report_markdown", "release_if_stable", |
| 453 | + # Phase 4: locator_health |
| 454 | + "FallbackHitTracker", "LocatorFinding", "LocatorHealthError", |
| 455 | + "LocatorHealthReport", "LocatorUpgradeSuggestion", |
| 456 | + "locator_apply_upgrades", "locator_build_health_report", |
| 457 | + "fallback_hit_tracker", "locator_render_health_markdown", |
| 458 | + "save_health_report", "locator_scan_action_file", "locator_scan_project", |
| 459 | + "locator_suggest_upgrade", "locator_suggest_upgrades", |
| 460 | + # Phase 5: device_cloud |
| 461 | + "CloudCredentials", "CloudSession", "DeviceCloudError", "RealDeviceCaps", |
| 462 | + "device_cloud_build_capabilities", "connect_real_device", |
| 463 | + "fetch_session_info", "device_cloud_load_credentials", |
| 464 | + "session_summary_markdown", "update_session_status", |
| 465 | + # Phase 6: otel_bridge |
| 466 | + "TraceBridgeError", "TraceContext", |
| 467 | + "bridged_span_playwright", "bridged_span_selenium", |
| 468 | + "clear_headers_playwright", "clear_headers_selenium", |
| 469 | + "current_otel_context", "inject_headers_playwright", |
| 470 | + "inject_headers_selenium", "parse_traceparent", |
| 471 | + "random_trace_context", "trace_link", |
| 472 | + # Phase 7: mutation_testing |
| 473 | + "Mutation", "MutationResult", "MutationScore", "MutationTestingError", |
| 474 | + "MutationType", "apply_mutation", "mutation_assert_min_score", |
| 475 | + "generate_mutations", "render_mutation_markdown", |
| 476 | + "run_mutation_testing", "run_mutation_testing_on_file", |
| 477 | + # Phase 8: otp_interceptor |
| 478 | + "ImapProvider", "OtpInMemoryProvider", "InterceptedMessage", |
| 479 | + "MailHogProvider", "MailpitProvider", "OtpInterceptError", |
| 480 | + "OtpProvider", "WebhookSmsProvider", |
| 481 | + "extract_otp_from_text", "wait_for_otp", |
| 482 | + # Phase 9: download_verify |
| 483 | + "DownloadAssertion", "DownloadVerifyError", |
| 484 | + "assert_csv_columns", "assert_csv_row_count", "assert_download", |
| 485 | + "assert_file_sha256", "assert_json_matches_schema", |
| 486 | + "assert_pdf_contains", "assert_pdf_matches", |
| 487 | + "extract_pdf_text", "read_csv_rows", "read_excel_rows", |
| 488 | + "read_json_file", "sha256_of_file", "wait_for_download", |
| 489 | + # Phase 11: test_auto_repair |
| 490 | + "RepairPlan", "TestAutoRepairError", |
| 491 | + "apply_repair", "collect_git_diff", "propose_repair", |
| 492 | + "render_repair_markdown", "repair_from_bundle", |
| 493 | + # Phase 12: edge_case_generator |
| 494 | + "EdgeCase", "EdgeCaseCategory", "EdgeCaseGeneratorError", |
| 495 | + "EdgeCaseSuite", |
| 496 | + "generate_edge_cases", "generate_edge_cases_from_file", |
| 497 | + "edge_case_render_markdown", "edge_case_write_suite", |
| 498 | + # Phase 13: openapi_to_e2e |
| 499 | + "OpenAPIGeneratedTest", "OpenAPIGenerationResult", |
| 500 | + "OpenAPIGeneratorError", |
| 501 | + "openapi_generate_from_file", "openapi_generate_from_spec", |
| 502 | + "openapi_load_spec", "openapi_synthesize_example", "openapi_write_tests", |
| 503 | + # Phase 14: cross_tab_sync |
| 504 | + "CrossTabSyncError", "PropagationResult", |
| 505 | + "assert_state_propagates", "broadcast_message", |
| 506 | + "collect_broadcast_messages", "get_storage_value", |
| 507 | + "install_broadcast_recorder", "post_message_to_page", |
| 508 | + "set_storage_value", "wait_for_broadcast", "wait_for_storage", |
| 509 | + # Phase 15: visual_ai |
| 510 | + "VisualHashResult", "VisualSimilarityResult", "VisualAIError", |
| 511 | + "assert_visual_similar", |
| 512 | + "visual_average_hash", "visual_compare_images", |
| 513 | + "visual_difference_hash", "visual_hamming_distance", |
| 514 | + "visual_hash_similarity", "visual_perceptual_hash", |
| 515 | + # Phase 16: test_scheduler |
| 516 | + "Schedule", "TestCandidate", "TestSchedulerError", |
| 517 | + "build_candidates_from_ledger", "render_schedule_markdown", |
| 518 | + "schedule_tests", |
| 519 | + "scheduler_value_density", "scheduler_value_of", |
| 520 | + # Phase 17: walkthrough_docs |
| 521 | + "Walkthrough", "WalkthroughError", "WalkthroughStep", |
| 522 | + "build_walkthrough", |
| 523 | + "walkthrough_collect_steps", "walkthrough_narrate_steps", |
| 524 | + "walkthrough_render_confluence", "walkthrough_render_markdown", |
| 525 | + "save_walkthrough", |
| 526 | + # Phase 19: live_dashboard |
| 527 | + "DashboardConfig", "DashboardServer", "LiveDashboardError", |
| 528 | + "dashboard_build_summary", |
240 | 529 | ] |
0 commit comments