Skip to main content

robo-automation

robo-automation provides shared browser and pytest infrastructure for automation projects.

Most application test developers do not need to call its internal services directly. Higher-level libraries such as robo-appian use it automatically.

What it provides

  • browser and page lifecycle;
  • pytest fixtures;
  • configurable wait time;
  • logging and correlation;
  • diagnostics and artifacts;
  • performance monitoring;
  • reusable RoboPage and RoboLocator wrappers.

It intentionally contains no application-specific business logic.

Basic pytest use

When installed as a pytest plugin, the library can provide browser/page infrastructure automatically.

A higher-level library may replace the public page type while keeping the same browser lifecycle. For example:

application test
      ↓
robo-appian AppianPage
      ↓
robo-automation browser lifecycle
      ↓
Playwright

Configuration

Consumers can use the library without defining any configuration. Defaults are built in.

When a setting needs to change, precedence is:

consumer fixture override
        ↓
environment variable
        ↓
library default

Example: if the consumer sets:

PYTEST_LOG_LEVEL=ERROR

and does not override the logging fixture, the effective log level is ERROR.

Common public fixtures

Important configuration/runtime fixtures include:

robo_runtime_config
robo_logging_config
robo_diagnostics_config
robo_performance_config
robo_artifact_paths
wait_time
browser
context
robo_page

Application projects should override policy/configuration fixtures rather than reimplementing generic browser lifecycle.

Layering rule

robo-automation should contain a feature only when it is application-independent.

  • Generic browser/logging/diagnostics/performance → robo-automation
  • Appian behavior → robo-appian
  • Application workflow/login/business rules → consumer project

Advanced documentation

Framework maintainers can continue with the Architecture, Runtime Configuration, Performance and API guides on the public documentation site.

Error handling

Consumer code can catch RoboAutomationError when it has a real recovery path. Normal pytest tests should usually let the exception propagate so reports keep the full failure evidence. See https://dinilmithra.github.io/robo-automation-docs/getting-started/error-handling/.

Browser lifetime

The default robo_browser_scope = session keeps one browser and automation runtime per pytest worker. Applications that need a completely fresh browser process for each testcase can set this in pytest.ini:

[pytest]
robo_browser_scope = function

Both browser and automation-driver fixtures then close after every testcase. Contexts and pages remain scoped to each test. The Appian runtime fixture follows the same setting. Application logout should run in the page fixture finalizer, before the underlying browser resources close.

Browser visibility default

When HEAD_LESS is unset, browsers launch visibly (HEAD_LESS=N). Set HEAD_LESS=Y explicitly for headless execution. Existing environment values continue to override the default. Browser lifecycle and cleanup are unchanged.

See Browser visibility and fixture override recommendation for current .env/environment precedence and the proposed public headless fixture. The fixture override is a design recommendation, not an implemented API.

Setup help

From the project directory:

py -3.12 .\tools\setup.py --help

This setup supports -h and --help; it has no additional command-line options. Help lists supported choices and defaults without creating an environment or installing packages. Unknown options are rejected before setup begins.

Poetry ownership

Setup asks Poetry to create or reuse the project environment and runs Poetry lock/check/install for project dependencies. Existing environments are preserved. Pip is used only to bootstrap the pinned Poetry tool; project libraries are managed through the manifest and lockfile.

Compiled distribution (maintainers)

Use python scripts/github/build_compiled_wheel.py --plan to review the protection inventory and python scripts/github/build_compiled_wheel.py to build an audited native wheel. See compiled distributions for requirements, platform builds, readable entry-point exceptions and release instructions.

Documentation

User documentation and homepage assets are maintained in the separate public robo-automation-docs repository. This private project contains the library source. The public repository owns its Poetry documentation environment and Pages workflow. No documentation deployment token is required in this private repository.

Documentation site: https://dinilmithra.github.io/robo-automation-docs/ .

Internal documentation: technical-documentation.

Repository environment setup

From this repository, run python tools/setup.py --help to see every supported option, then python tools/setup.py with Python 3.12. Setup uses Poetry 2.5.1 and preserves the existing repository-specific installation and validation steps.

Setup security updates

Run python tools/setup.py with Python 3.12 to secure the project environment. Setup verifies pip is at least 26.2.2, upgrading older pip through the official SHA256-pinned wheel before downloading Poetry. Newer stable pip is preserved. Poetry 2.5.1 tooling requires certifi>=2026.10.19. Existing external Poetry tools with an outdated CA bundle are not used or modified; setup creates a secure bootstrap environment where allowed. Appian setup needs --bootstrap-poetry when no secure external Poetry installation is available.

Project dependencies and lockfiles stay under Poetry management. If certifi is already locked below the security minimum, setup updates that lock through Poetry and stops if the project constraints cannot resolve a safe version. A project without certifi in its lockfile does not need to add it solely for the Poetry tool. Downloads or verification failures stop setup before it reports success.

Standalone setup

Environment creation, secure tooling bootstrap and Poetry validation are included in the project setup implementation. Run python tools/setup.py --help; a separate environment helper module is not required. Project setup options and existing environment names are preserved.

Metadata

Release files for robo-automation 0.1.20

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Built distributions (wheels)

Table of built distributions (wheels) for robo-automation 0.1.20
File Actions
robo_automation-0.1.20-cp312-cp312-win_amd64.whl CPython 3.12 CPython 3.12 Windows x86-64 Details for robo_automation-0.1.20-cp312-cp312-win_amd64.whl
robo_automation-0.1.20-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl CPython 3.12 CPython 3.12 Linux glibc 2.28+ x86-64, Linux glibc 2.17+ x86-64 Details for robo_automation-0.1.20-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
robo_automation-0.1.20-cp312-cp312-macosx_15_0_x86_64.whl CPython 3.12 CPython 3.12 macOS 15.0+ x86-64 Details for robo_automation-0.1.20-cp312-cp312-macosx_15_0_x86_64.whl
robo_automation-0.1.20-cp312-cp312-macosx_15_0_arm64.whl CPython 3.12 CPython 3.12 macOS 15.0+ ARM64 Details for robo_automation-0.1.20-cp312-cp312-macosx_15_0_arm64.whl

Total release size: 7.3 MB

Release files / robo_automation-0.1.20-cp312-cp312-win_amd64.whl

Download URL robo_automation-0.1.20-cp312-cp312-win_amd64.whl
Size 544.2 kB
Tags CPython 3.12 Windows x86-64
SHA-256 checksum
How to use checksums
8a2d3f4bc1ed41955dbc8e286df24ce6ce077662a78d95117167452e07329f3e
BLAKE2b-256 checksum
How to use checksums
d9684850459017a373c0daa448e68edc99c0a233cd1195d12631211ccd93ec5c
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.16

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 29, 2026.

Transparency log

Release files / robo_automation-0.1.20-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl

Download URL robo_automation-0.1.20-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
Size 4.2 MB
Tags CPython 3.12 Linux glibc 2.17+ x86-64 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
e83d68de2cb3068fcd0a86a08b44b9694f05487889608c29d510322d10db1772
BLAKE2b-256 checksum
How to use checksums
34cff872b6eacd7d5455423f6cbdb72fc59495331522fc3c0f5effb76d9f55e8
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.16

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 29, 2026.

Transparency log

Release files / robo_automation-0.1.20-cp312-cp312-macosx_15_0_x86_64.whl

Download URL robo_automation-0.1.20-cp312-cp312-macosx_15_0_x86_64.whl
Size 1.3 MB
Tags CPython 3.12 macOS 15.0+ x86-64
SHA-256 checksum
How to use checksums
0d1e69ea8805168a02af89a6749ccbe703d3168bf74cd2924f2b4c2df82a01b8
BLAKE2b-256 checksum
How to use checksums
9a2250c168ae37034d503cb1e1a4b90227b7adb8dc1038aa38097ef63fdeb3d0
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.16

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 29, 2026.

Transparency log

Release files / robo_automation-0.1.20-cp312-cp312-macosx_15_0_arm64.whl

Download URL robo_automation-0.1.20-cp312-cp312-macosx_15_0_arm64.whl
Size 1.3 MB
Tags CPython 3.12 macOS 15.0+ ARM64
SHA-256 checksum
How to use checksums
7f6502e1576b97f319d754ac0b5a754312bbb79b6828858d7a0dfcffb5113ebf
BLAKE2b-256 checksum
How to use checksums
a7d6acc6e9599496165d3532e6295e75f85f8ca13de7066f816416a6f606d523
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.16

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 29, 2026.

Transparency log

Security for robo-automation 0.1.20

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

Full provenance

All 4 files in this release have been uploaded with provenance metadata.

Select from 4 files

Attestation for robo_automation-0.1.20-cp312-cp312-win_amd64.whl

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 29, 2026.

Transparency log

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page