Fix subtask-factory lookup to not fail when preloaded from another file
Before this change, plugin failed to lookup a subtasks-factory when
a task with this subtasks-factory was preloaded using a task
reference [1]. While preloading a task, all the subtasks are copied
to the current task. Since the subtasks-factory property was a String,
it does not maintain the information regarding the location of the
subtasks-factory. Thus, fix this issue by using ConfigSourcedValue as
the type for subtasks-factory property, which helps in tracking the
location of the subtasks-factory. Add tests for the same.
[1]
file: `All-Projects:refs/meta/config:task.config`
```
[root "root task"]
applicable = status:open
preload-task = //common.config^simple task with subtasks
```
file: `All-Projects:refs/meta/config:task/common.config`
```
[task "simple task with subtasks"]
applicable = is:open
subtasks-factory = simple static tasks-factory
[tasks-factory "simple static tasks-factory"]
names-factory = names-factory static list
pass = True
[names-factory "names-factory static list"]
type = static
name = my a task
```
Change-Id: Ie173ad1e29c511bb028a49d4c9b54108461bbe67
4 files changed