Robot Framework library for generating test data from templates
Project description
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
Built Distribution
Hashes for robotframework-templateddata-1.4.0.tar.gz
Algorithm | Hash digest | |
---|---|---|
SHA256 | 53e1900b2a7bda62acdf324d38933e1bf44f6d63f6116397cebeab7feeb3c92b |
|
MD5 | e67bd2e9d8646ac215c33f9d73ee6af0 |
|
BLAKE2b-256 | 7f607380b083186472b6c5c64ef5ac0858c3e048a9bd3c32051e7976d3fdf9ef |
Hashes for robotframework_templateddata-1.4.0-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 2bdbfe9a84f42b0911eef48dd2a5ec7e64e5cac89a8c78471ae58216994a55f6 |
|
MD5 | 09a9ec5a1cd9164fe071cd82af2b7091 |
|
BLAKE2b-256 | 693f2dff73100aa546b282fd51c5cda4abaadb5875aba5218d6c262c2af913bb |