Add ability to create includes in pxu files
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
PlainBox (Toolkit) |
Fix Released
|
Medium
|
Sylvain Pineau |
Bug Description
Use case:
I have 15 test lists in a provider. Everyone has some identical sections, such as mandatory_include and bootstrap_include.
I need to add a new test case to mandatory_include.
Currently, this means I need to edit 15 different files just to add a single line of text to call the new job I created.
It would be MUCH nicer if I could do the following:
Have a test list that has a mandatory_include section that lists all the items that should fall under there.
It is HERE I would add my new job name.
Have every other test list with something like:
include: mandatory_
and then they would contain OTHER jobs that are different between lists.
THEN at run time, checkbox-ng would read the my_test_list.pxu file, see the "include:" directive and then aggregate the two lists so that now I have a test list that includes the mandatory_include section from my mandatory_
There are issues to be resolved here...
The biggest one initially is precedence: what if I have mandatory_include in testlist.pxu AND in mandatory_
Also duplicate filtering, and probably others I'm overlooking right now.
BUT at least initially, this could be implemented with the caveat that it's on the test developer to not have two mandatory_include sections.
Also, it could be further broken down, perhaps like this:
mandatory_include:
include: attachment_list
info/job1
info/job2
include:
include: arm_test_list
generic/test1
generic/test2
Note that is a pie in the sky thing.
Related branches
- Sylvain Pineau (community): Approve
- Paul Larson: Approve
-
Diff: 487 lines (+254/-65)5 files modifiedplainbox/plainbox/impl/commands/inv_special.py (+5/-1)
plainbox/plainbox/impl/session/assistant.py (+3/-5)
plainbox/plainbox/impl/session/manager.py (+1/-1)
plainbox/plainbox/impl/unit/test_testplan.py (+125/-1)
plainbox/plainbox/impl/unit/testplan.py (+120/-57)
affects: | plainbox-provider-checkbox → checkbox-ng |
Changed in checkbox-ng: | |
status: | New → In Progress |
assignee: | nobody → Sylvain Pineau (sylvain-pineau) |
importance: | Undecided → Medium |
affects: | checkbox-ng → plainbox |
Changed in plainbox: | |
milestone: | none → 0.29 |
status: | In Progress → Fix Committed |
Changed in plainbox: | |
status: | Fix Committed → Fix Released |
Also, I only used mandatory include as an arbitrary example. it could also be something lke this:
network_tests.pxu = network tests.
mandatory.pxu = mandatory tests.
storage.pxu = storage tests.
Then I could have something like this:
functional.pxu
include: mandatory.pxu, storage.pxu, network_tests.pxu
include:
info/a
info/b
miscellanea/c
and full.pxu
include: mandatory.pxu, storage.pxu, network_tests.pxu, stress.pxu