Welcome to TOS’s documentation!¶
Here you can find overview and usage examples of Task Object Storage package.
Task Object Storage¶
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