Skip to main content

Task Object Storage package.

Project description

Transaction management for Robot Framework RPA using MongoDB.

Included are two packages: tos and TOSLibrary. The former is the actual task object storage implementation written in pure Python, without any Robot Framework dependencies. TOSLibrary is a Robot Framework keyword library built on top of tos. It is built as a lightweight dynamic proxy library, so all the changes in tos are immediately available in TOSLibrary keywords.

Quickstart guide

Requirements

  • MongoDB (version >4)

  • Python (version >3.7)

Installation

Latest stable version from PyPi with pip:

pip install task-object-storage

Latest development version from PyPi:

pip install task-object-storage --pre

Usage

You can import TOSLibrary into your Robot Framework suite with

*** Settings ***
Library  TOSLibrary  ${db_server}:${db_port}  ${db_name}

If you are using authentication in MongoDB, you can pass credentials:

*** Settings ***
Library  TOSLibrary  ${db_server}:${db_port}  ${db_name}  ${db_user}  ${db_passw}

You can also add prefix or suffix to the collection name: By passing valid collection_suffix or collection_prefix arguments to TOSLibrary, you can create a collection with a name your_prefix.task_objects.your_suffix

Additional MongoClient options can be passed to the library as a dictionary mongo_client_options=. For further details, see the PyMongo documentation: https://pymongo.readthedocs.io/en/4.3.3/api/pymongo/mongo_client.html

*** Settings ***
Library  TOSLibrary  ${db_server}:${db_port}  ${db_name}  ${db_user}  ${db_passw}  ${collection_suffix}  ${collection_prefix}

It is also possible to separate payloads of task objects to their own collection, and also optionally set a lifetime for them. See the full API documentation for further reference.

After initialization, the keywords are callable from Robot Framework.

This library instance can also be accessed inside Python keywords with

from robot.libraries.BuiltIn import BuiltIn

toslib = BuiltIn().get_library_instance("TOSLibrary")
toslib.keyword_name

The keywords can be also called with:

BuiltIn().run_keyword("<keyword name>")

To use task object storage in Python without any Robot Framework dependencies you should use tos package directly:

from tos.task_object_storage import TaskObjectStorage

tos = TaskObjectStorage(
        db_server=server,
        db_name=db_name,
        db_user=db_user,
        db_passw=db_passw,
        mongo_client_options=mongo_client_options,
)

If db_user and db_passw are empty strings, TaskObjectStorage will default to using no authentication.

Available keywords

See the full API documentation.

For developers

Release a new version by running:

scripts/build.sh release

You can also install the whl package found in the dist directory with

pip install <package-name>.whl

or put inside requirements.txt:

file:C:/path/to/<package-name>.whl  # on windows
file:/path/to/<package-name>.whl  # on linux

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distributions

No source distribution files available for this release.See tutorial on generating distribution archives.

Built Distribution

task_object_storage-1.3.0-py3-none-any.whl (25.1 kB view hashes)

Uploaded Python 3

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page