[Avocado-devel] Simple yaml_to_mux example
Cleber Rosa
crosa at redhat.com
Wed Mar 6 19:49:41 UTC 2019
On Mon, Mar 04, 2019 at 05:22:02PM +0100, Alan Martinovic wrote:
> Hey,
> I found the docs a bit to technical to soon.
Hi Alan,
Yes, it's hard to come up with the right balance of easy of use and
details, but I generally agree with you, the docs could offer a
better learning experience.
> Am trying to migrate to use a yaml instead of "avocado run -p"
> in my tests but got overwhelmed by the complexity.
>
I feel your pain.
> Just sharing the examples and findings while in the process of
> migrating.
>
> I'll be using the sleeptest.py.
>
> ```
> #sleeptest.py
> import time
> from avocado import Test
>
> class SleepTest(Test):
> def test(self):
> sleep_length = self.params.get('duration')
> self.log.debug("Sleeping for %.2f seconds", sleep_length)
> time.sleep(sleep_length)
> ```
>
> I want to get the "duration" parameter passed from an external file,
> so I'll generate a simple yaml file because it seems that the plugin
> yaml_to_mux takes yamls. Am using the "yaml_to_mux" because it
> seems the simplest.
>
> ```
> # variant.yaml
> duration: 10
> ```
>
> The yaml-to-mux needs to be installed first otherwise avocado gives errors.
>
> ```
> pip3 install avocado-framework-plugin-varianter-yaml-to-mux
> ```
>
> Running the tests takes the "duration: 3" from the yaml and passes it
> into the test execution.
> ```
> $ avocado run sleeptest.py --mux-yaml variant.yaml
> JOB ID : 4ec5259cd7c69a7cc3a7c0ef3d02984883eb7f5b
>
> JOB LOG :
> /home/user/avocado/job-results/job-2019-03-04T17.18-4ec5259/job.log
>
> (1/1) sleeptest.py:SleepTest.test;run-7e0b: PASS (3.03 s)
> RESULTS : PASS 1 | ERROR 0 | FAIL 0 | SKIP 0 | WARN 0 | INTERRUPT 0 |
> CANCEL 0 JOB TIME : 3.18 s
> ```
>
> The only thing different is this chunk ";run-7e0b:" added to the test.
> Don't know enough atm to say what than means.
>
Basically, that is part of a "Test ID":
https://avocado-framework.readthedocs.io/en/69.0/ReferenceGuide.html#test-id
And it includes a "Variant ID":
https://avocado-framework.readthedocs.io/en/69.0/ReferenceGuide.html#variant-ids
BTW, if you're interested in just passing parameters, but reading them from a
file, maybe you can take a look at the CIT varianter. It provides a simpler
configuration syntax:
https://avocado-framework.readthedocs.io/en/69.0/optional_plugins/varianter_cit.html
https://github.com/avocado-framework/avocado/blob/69lts/examples/varianter_cit/params.ini
> Be Well,
> Alan
Regards,
- Cleber.
More information about the Avocado-devel
mailing list