How deepak4tuna-1/sfmob_auto works
This is a Python/Appium/pytest framework for validating Six Flags mobile behavior on Android and iOS. Its principal journey prepares the app state, launches the app, performs guest or logged-in setup, and exercises domain screens; API and API+UI validation are additional documented modes. Driver/device management, state-aware ordering, and reporting support execution around that journey. The tree omits tests and runners described in the README, so the graph focuses on present runtime modules and uses README evidence for documented but unsampled capabilities.
Main entry points: session_flow.py Session setup · auth_flow.py Authentication flow · base_api_client.py Reusable API client · pytest_html_report.py HTML reporting
Components 24
Execution and state
- Driver factory
core/driver_factory.py - State-aware ordering
core/execution/state_ordering.py - State plan metadata
core/execution/state_plan.py
Journeys and screens
- Base flow
core/base_flow.py - Session setup
flows/session_flow.py - App launch flow
flows/app_launch_flow.py - Authentication flow
flows/auth_flow.py - Launch screen
screens/app_launch/launch_screen.py - Login screen
screens/auth/login_screen.py - Home screen
screens/home/home_screen.py - Park selection
screens/park/park_selection_screen.py - I Want To screen
screens/i_want_to/i_want_to_screen.py - More screen
screens/more/more_screen.py
API and configuration
- Environment settings
config/settings.py - Reusable API client
api/base_api_client.py - Content API
api/content_api.py - FIMS API
api/fims_api.py - Park resolver
api/park_resolver.py
Reporting and artifacts
- HTML reporting
core/reporting/pytest_html_report.py - Artifact manager
core/artifact_manager.py - Screenshot capture
utils/screenshot_utils.py - Logging
utils/logger.py
Other components
- pytest run
- Android / iOS devices
Connections 26
- pytest run → Driver factory: starts sessions
- Driver factory → Android / iOS devices: drives UI
- pytest run → State-aware ordering: orders tests
- State-aware ordering → State plan metadata: reads plans
core/execution/state_ordering.py - pytest run → Session setup: prepares state
- Session setup → App launch flow: launches app
flows/session_flow.py - Session setup → Authentication flow: delegates sign-in
flows/session_flow.py - Session setup → Home screen: checks state
flows/session_flow.py - Session setup → Login screen: uses screen
flows/session_flow.py - Authentication flow → Login screen: enters credentials
flows/auth_flow.py - Authentication flow → Home screen: checks result
flows/auth_flow.py - App launch flow → Launch screen: handles launch
- Session setup → More screen: uses sign-out UI
flows/session_flow.py - pytest run → Reusable API client: runs API cases
- Reusable API client → Content API: supports requests
- Reusable API client → FIMS API: supports requests
- pytest run → Park resolver: resolves park data
- pytest run → I Want To screen: validates domain UI
- pytest run → Park selection: validates park UI
- pytest run → HTML reporting: produces report
- HTML reporting → Driver factory: collects device metadata
core/reporting/pytest_html_report.py - HTML reporting → Screenshot capture: attaches captures
core/reporting/pytest_html_report.py - Screenshot capture → Artifact manager: gets run directory
utils/screenshot_utils.py - Artifact manager → Environment settings: uses paths
core/artifact_manager.py - Artifact manager → Logging: gets run ID
core/artifact_manager.py - pytest run → Environment settings: configures execution