Howdy!
I've searched for an answer to this and can't find it. Please forgive me if it's documented and I missed it.
I have a keyword that supports named arguments, with default values specified in the keyword. I am using it as a test template. And I'm having trouble figuring out how to use it in the case where I want all default values.
This is a relatively academic question in that I don't actually have a use case requiring this case at this time. So far all my actual tests require at least one overridden argument.
But for the sake of argument, let's say I have the following keyword:
Greet Team
[arguments] ${scrum_master}=pebbles
... ${product_owner}=bambam
Log hi SM ${scrum_master} & PO ${product_owner}
Now, if I use it as a test template, I can specify a test like so:
*** settings ***
Test Template Greet Team
*** test cases ***
Passing scrum master var scrum_master=wilma
This works dandy. I see "wilma" is the Scrum Master, and the default, "bambam" is the product owner. Similarly I can override just the product_owner, or both variables:
Passing product owner vars product_owner=shazam
Passing both vars product_owner=joebob scrum_master=sallymae
However, let's imagine I want a test where I use both defaults. I tried:
Using all defaults
This does not work; the error message says that no keywords were specified.
Using all defaults ${EMPTY}
This does not work. The result is that the Scrum Master is set to nothing (it logs: hi SM & PO bambam)
Using all defaults ${NULL}
This does not work. The result is that the Scrum Master is set to "None" (it logs: hi SM None & PO bambam)
So what's the magic incantation I can use to create a test case that calls the keyword but does not override the defaults for the ${scrum_master} or ${product_owner} variables?
If the answer is "You can't," that's OK. I just want to know the limitations.
Thanks!
Elisabeth