Skip to main content

Robot Framework library for generating test data from templates

Project description

PyPI - License

TemplatedData

Introduction

TemplatedData is Robot Framework library for dynamically generated test data using robot variables and Jinja templating.

Requirements

Python 3.6+ and Robot Framework 3.2.1+.

TemplatedData will most likely work on other versions but it’s not tested on them.

Installation

You can install TemplateData by running:

pip install robotframework-templateddata

Usage

You need to import TemplatedData as library first:

*** Settings ***
Library    TemplatedData

TemplatedData will replace all occurences of robot variables (${var}) in file or variable using current robot context and scopes. All test data in below examples are saved under ‘test_data.txt’ files

Test data:

my variable is ${var}

Robot code:

${var}     Set Variable    ${10}
${data}    Get Templated Data From Path    test_data.txt
Log    ${data} # it should print `my variable is 10`

Default values

If the variable is not found it will be replaced with empty string. You can override that behaviour:

${data}    Get Templated Data From Path    test_data.txt    default_empty=${5}
Log    ${data} # it should print `my variable is 5`

You can also set default value of variable with : symbol.

Test data:

my variable is ${var} and ${var2:some string}

Robot code:

${var}     Set Variable    ${10}
${data}    Get Templated Data From Path    test_data.txt
Log    ${data} # it should print `my variable is 10 and some string`

Return value type

Return value can be either text/string (default) or json.

Test data:

{ "key": "${var}" }

Robot code:

${data}    Get Templated Data From Path    test_data.txt    var=value    return_type=json
Log    ${data} # it should print `{ "key": "value" }` and ${data} will be of type json

Jinja templating

TemplatedData can also render the Jinja templates using Robot Framework variables. To enable Jinja template pass jinja_template as argument to library import or method call:

 *** Settings ***
Library    TemplatedData  jinja_template=${True}

OR

*** Keywords ***
Load Data
    ${data}    Get Templated Data From Path    data.template    jinja_template=${True}

Test data (Jinja template):

{
    "accounts": [
        { "id": {{ ${account_id:5} }} },
        { "id2": "{{ ${account_id2} }}" }
        ],
    "users": [
{%- for user, amount in ${users.items()} %}
      {
        "name": "{{ user }}",
        "amount": {{ amount }}
      }{{ "," if not loop.last }}
{%- endfor %}
    ]
}

Robot code:

${data}    Get Templated Data From Path    data.template    jinja_template=${True}

Example data output:

 {
    "accounts": [
        { "id": 10 },
        { "id2": "10" }
        ],
    "users": [
      {
        "name": "bartek",
        "amount": 5
      },
      {
        "name": "tymoteusz",
        "amount": 10
      },
      {
        "name": "pawel",
        "amount": -1
      }
    ]
}

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-templateddata-1.4.0.tar.gz (8.0 kB view details)

Uploaded Source

Built Distribution

File details

Details for the file robotframework-templateddata-1.4.0.tar.gz.

File metadata

File hashes

Hashes for robotframework-templateddata-1.4.0.tar.gz
Algorithm Hash digest
SHA256 53e1900b2a7bda62acdf324d38933e1bf44f6d63f6116397cebeab7feeb3c92b
MD5 e67bd2e9d8646ac215c33f9d73ee6af0
BLAKE2b-256 7f607380b083186472b6c5c64ef5ac0858c3e048a9bd3c32051e7976d3fdf9ef

See more details on using hashes here.

File details

Details for the file robotframework_templateddata-1.4.0-py3-none-any.whl.

File metadata

File hashes

Hashes for robotframework_templateddata-1.4.0-py3-none-any.whl
Algorithm Hash digest
SHA256 2bdbfe9a84f42b0911eef48dd2a5ec7e64e5cac89a8c78471ae58216994a55f6
MD5 09a9ec5a1cd9164fe071cd82af2b7091
BLAKE2b-256 693f2dff73100aa546b282fd51c5cda4abaadb5875aba5218d6c262c2af913bb

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