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
RoboPageandRoboLocatorwrappers.
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)
| File | Actions Reset | |||
|---|---|---|---|---|
| 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 logRelease 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 logRelease 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 logRelease 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 logSecurity 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.
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 logA 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.