Skip to main content

Tools to ease creating larger test libraries for Robot Framework using Python.

Project description

Tools to ease creating larger test libraries for Robot Framework using Python. The Robot Framework hybrid and dynamic library API gives more flexibility for library than the static library API, but they also sets requirements for libraries which needs to be implemented in the library side. PythonLibCore eases the problem by providing simpler interface and handling all the requirements towards the Robot Framework library APIs.

Code is stable and version 1.0 is already used by SeleniumLibrary and WhiteLibrary. The version 2.0 support changes in the Robot Framework 3.2.

https://github.com/robotframework/PythonLibCore/workflows/CI/badge.svg?branch=master

Usage

There are two ways to use PythonLibCore, either by HybridCore or by using DynamicCore. HybridCore provides support for the hybrid library API and DynamicCore provides support for dynamic library API. Consult the Robot Framework User Guide, for choosing the correct API for library.

Regardless which library API is chosen, both have similar requirements.

  1. Library must inherit either the HybridCore or DynamicCore.

  2. Library keywords must be decorated with Robot Framework @keyword decorator.

  3. Provide a list of class instances implementing keywords to library_components argument in the HybridCore or DynamicCore __init__.

It is also possible implement keywords in the library main class, by marking method with @keyword as keywords. It is not requires pass main library instance in the library_components argument.

All keyword, also keywords implemented in the classes outside of the main library are available in the library instance as methods. This automatically publish library keywords in as methods in the Python public API.

The example in below demonstrates how the PythonLibCore can be used with a library.

Example

"""Main library."""

from robotlibcore import DynamicCore

from mystuff import Library1, Library2


class MyLibrary(DynamicCore):
    """General library documentation."""

    def __init__(self):
        libraries = [Library1(), Library2()]
        DynamicCore.__init__(self, libraries)

    @keyword
    def keyword_in_main(self):
        pass
"""Library components."""

from robotlibcore import keyword


class Library1(object):

    @keyword
    def example(self):
        """Keyword documentation."""
        pass

    @keyword
    def another_example(self, arg1, arg2='default'):
        pass

    def not_keyword(self):
        pass


class Library2(object):

    @keyword('Custom name')
    def this_name_is_not_used(self):
        pass

    @keyword(tags=['tag', 'another'])
    def tags(self):
        pass

Project details


Download files

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

Source Distribution

robotframework-pythonlibcore-2.1.0.tar.gz (6.0 kB view details)

Uploaded Source

Built Distribution

robotframework_pythonlibcore-2.1.0-py2.py3-none-any.whl (10.0 kB view details)

Uploaded Python 2 Python 3

File details

Details for the file robotframework-pythonlibcore-2.1.0.tar.gz.

File metadata

  • Download URL: robotframework-pythonlibcore-2.1.0.tar.gz
  • Upload date:
  • Size: 6.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.1.1 pkginfo/1.5.0.1 requests/2.23.0 setuptools/46.1.3 requests-toolbelt/0.9.1 tqdm/4.45.0 CPython/3.8.2

File hashes

Hashes for robotframework-pythonlibcore-2.1.0.tar.gz
Algorithm Hash digest
SHA256 8b210bf29cbb78069b41a3d0b90e4cc8dd23f509ea2daf450e3ef4a6ee758949
MD5 a8f6b913ffab177a7fe7d96282606e0d
BLAKE2b-256 b8ecfb5788396274fa9597d6916f65b095662856a07f0d7f1095db7559de33ae

See more details on using hashes here.

File details

Details for the file robotframework_pythonlibcore-2.1.0-py2.py3-none-any.whl.

File metadata

  • Download URL: robotframework_pythonlibcore-2.1.0-py2.py3-none-any.whl
  • Upload date:
  • Size: 10.0 kB
  • Tags: Python 2, Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.1.1 pkginfo/1.5.0.1 requests/2.23.0 setuptools/46.1.3 requests-toolbelt/0.9.1 tqdm/4.45.0 CPython/3.8.2

File hashes

Hashes for robotframework_pythonlibcore-2.1.0-py2.py3-none-any.whl
Algorithm Hash digest
SHA256 5dda5be2daa98495dc76e48be7a2f3f95a65465d1696b46238c926582a880a10
MD5 de039d7a3c0ca8426ce2232a53a619fd
BLAKE2b-256 e67bab7ce7c454e2e47d1d5fd0c9c4925e86011133dce769cfc4457ffe1fd157

See more details on using hashes here.

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